RuntimeVisibleAnnotations.java

  1. /*
  2.  * Licensed to the Apache Software Foundation (ASF) under one or more
  3.  * contributor license agreements.  See the NOTICE file distributed with
  4.  * this work for additional information regarding copyright ownership.
  5.  * The ASF licenses this file to You under the Apache License, Version 2.0
  6.  * (the "License"); you may not use this file except in compliance with
  7.  * the License.  You may obtain a copy of the License at
  8.  *
  9.  *      http://www.apache.org/licenses/LICENSE-2.0
  10.  *
  11.  *  Unless required by applicable law or agreed to in writing, software
  12.  *  distributed under the License is distributed on an "AS IS" BASIS,
  13.  *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  14.  *  See the License for the specific language governing permissions and
  15.  *  limitations under the License.
  16.  */
  17. package org.apache.bcel.classfile;

  18. import java.io.DataInput;
  19. import java.io.DataOutputStream;
  20. import java.io.IOException;

  21. import org.apache.bcel.Const;

  22. /**
  23.  * An annotation that is represented in the class file and is provided to the JVM.
  24.  *
  25.  * @since 6.0
  26.  */
  27. public class RuntimeVisibleAnnotations extends Annotations {

  28.     /**
  29.      * Constructs a new instance.
  30.      *
  31.      * @param nameIndex Index pointing to the name <em>Code</em>
  32.      * @param length Content length in bytes
  33.      * @param input Input stream
  34.      * @param constantPool Array of constants
  35.      * @throws IOException Thrown when an I/O exception of some sort has occurred.
  36.      */
  37.     public RuntimeVisibleAnnotations(final int nameIndex, final int length, final DataInput input, final ConstantPool constantPool) throws IOException {
  38.         super(Const.ATTR_RUNTIME_VISIBLE_ANNOTATIONS, nameIndex, length, input, constantPool, true);
  39.     }

  40.     /**
  41.      * Creates a deep copy of this attribute.
  42.      *
  43.      * @return deep copy of this attribute.
  44.      */
  45.     @Override
  46.     public Attribute copy(final ConstantPool constantPool) {
  47.         return (Attribute) clone();
  48.     }

  49.     @Override
  50.     public final void dump(final DataOutputStream dos) throws IOException {
  51.         super.dump(dos);
  52.         writeAnnotations(dos);
  53.     }
  54. }