[prev in list] [next in list] [prev in thread] [next in thread] 

List:       bcel-dev
Subject:    svn commit: r153590 - in jakarta/bcel/trunk/src/java/org/apache/bcel: ./
From:       dbrosius () apache ! org
Date:       2005-02-13 3:15:10
Message-ID: 20050213031511.94515.qmail () minotaur ! apache ! org
[Download RAW message or body]

Author: dbrosius
Date: Sat Feb 12 19:15:08 2005
New Revision: 153590

URL: http://svn.apache.org/viewcvs?view=rev&rev=153590
Log:
Initial implementation for Annotations. This code is currently not used, as the break \
out of Attributes for Annotations is commented out in Attributes.read. The \
ElementValue class will be derived from to support the different ElementValue types, \
for now it's an icky 'union' class. The "Parameter' type of Annotations are to be \
added next.

Added:
    jakarta/bcel/trunk/src/java/org/apache/bcel/classfile/AnnotationEntry.java
    jakarta/bcel/trunk/src/java/org/apache/bcel/classfile/Annotations.java
    jakarta/bcel/trunk/src/java/org/apache/bcel/classfile/ElementValue.java
    jakarta/bcel/trunk/src/java/org/apache/bcel/classfile/ElementValuePair.java
    jakarta/bcel/trunk/src/java/org/apache/bcel/classfile/RuntimeInvisibleAnnotations.java
  jakarta/bcel/trunk/src/java/org/apache/bcel/classfile/RuntimeVisibleAnnotations.java
 Modified:
    jakarta/bcel/trunk/src/java/org/apache/bcel/Constants.java
    jakarta/bcel/trunk/src/java/org/apache/bcel/classfile/Attribute.java
    jakarta/bcel/trunk/src/java/org/apache/bcel/classfile/DescendingVisitor.java
    jakarta/bcel/trunk/src/java/org/apache/bcel/classfile/EmptyVisitor.java
    jakarta/bcel/trunk/src/java/org/apache/bcel/classfile/Visitor.java

Modified: jakarta/bcel/trunk/src/java/org/apache/bcel/Constants.java
URL: http://svn.apache.org/viewcvs/jakarta/bcel/trunk/src/java/org/apache/bcel/Constants.java?view=diff&r1=153589&r2=153590
 ==============================================================================
--- jakarta/bcel/trunk/src/java/org/apache/bcel/Constants.java (original)
+++ jakarta/bcel/trunk/src/java/org/apache/bcel/Constants.java Sat Feb 12 19:15:08 \
2005 @@ -698,27 +698,30 @@
 
   /** Attributes and their corresponding names.
    */
-  public static final byte ATTR_UNKNOWN              = -1;
-  public static final byte ATTR_SOURCE_FILE          = 0;
-  public static final byte ATTR_CONSTANT_VALUE       = 1;
-  public static final byte ATTR_CODE                 = 2;
-  public static final byte ATTR_EXCEPTIONS           = 3;
-  public static final byte ATTR_LINE_NUMBER_TABLE    = 4;
-  public static final byte ATTR_LOCAL_VARIABLE_TABLE = 5;
-  public static final byte ATTR_INNER_CLASSES        = 6;
-  public static final byte ATTR_SYNTHETIC            = 7;
-  public static final byte ATTR_DEPRECATED           = 8;
-  public static final byte ATTR_PMG                  = 9;
-  public static final byte ATTR_SIGNATURE            = 10;
-  public static final byte ATTR_STACK_MAP            = 11;
+  public static final byte ATTR_UNKNOWN                       = -1;
+  public static final byte ATTR_SOURCE_FILE                   = 0;
+  public static final byte ATTR_CONSTANT_VALUE                = 1;
+  public static final byte ATTR_CODE                          = 2;
+  public static final byte ATTR_EXCEPTIONS                    = 3;
+  public static final byte ATTR_LINE_NUMBER_TABLE             = 4;
+  public static final byte ATTR_LOCAL_VARIABLE_TABLE          = 5;
+  public static final byte ATTR_INNER_CLASSES                 = 6;
+  public static final byte ATTR_SYNTHETIC                     = 7;
+  public static final byte ATTR_DEPRECATED                    = 8;
+  public static final byte ATTR_PMG                           = 9;
+  public static final byte ATTR_SIGNATURE                     = 10;
+  public static final byte ATTR_STACK_MAP                     = 11;
+  public static final byte ATTR_RUNTIMEVISIBLE_ANNOTATIONS    = 12;
+  public static final byte ATTR_RUNTIMEINVISIBLE_ANNOTATIONS  = 13;
 
-  public static final short KNOWN_ATTRIBUTES = 12;
+  public static final short KNOWN_ATTRIBUTES = 14;
 
   public static final String[] ATTRIBUTE_NAMES = {
     "SourceFile", "ConstantValue", "Code", "Exceptions",
     "LineNumberTable", "LocalVariableTable",
     "InnerClasses", "Synthetic", "Deprecated",
-    "PMGClass", "Signature", "StackMap"
+    "PMGClass", "Signature", "StackMap", 
+    "RuntimeVisibleAnnotations", "RuntimeInvisibleAnnotations"
   };
 
   /** Constants used in the StackMap attribute.

Added: jakarta/bcel/trunk/src/java/org/apache/bcel/classfile/AnnotationEntry.java
URL: http://svn.apache.org/viewcvs/jakarta/bcel/trunk/src/java/org/apache/bcel/classfile/AnnotationEntry.java?view=auto&rev=153590
 ==============================================================================
--- jakarta/bcel/trunk/src/java/org/apache/bcel/classfile/AnnotationEntry.java \
                (added)
+++ jakarta/bcel/trunk/src/java/org/apache/bcel/classfile/AnnotationEntry.java Sat \
Feb 12 19:15:08 2005 @@ -0,0 +1,85 @@
+/*
+ * Copyright  2000-2004 The Apache Software Foundation
+ *
+ *  Licensed under the Apache License, Version 2.0 (the "License");
+ *  you may not use this file except in compliance with the License.
+ *  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing, software
+ *  distributed under the License is distributed on an "AS IS" BASIS,
+ *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *  See the License for the specific language governing permissions and
+ *  limitations under the License.
+ *
+ */
+package org.apache.bcel.classfile;
+
+import java.io.DataInputStream;
+import java.io.IOException;
+
+import org.apache.bcel.Constants;
+
+
+/**
+ * represents one annotation in the annotation table
+ * 
+ * @version $Id: AnnotationEntry
+ * @author  <A HREF="mailto:dbrosius@qis.net">D. Brosius</A>
+ */
+public class AnnotationEntry implements Node, Constants
+{
+	private int type_index;
+	private int num_element_value_pairs;
+	private ElementValuePair[] element_value_pairs;
+	private ConstantPool constant_pool;
+	
+	/**
+	 * Construct object from file stream.
+	 * @param file Input stream
+	 * @throws IOException
+	 */
+	AnnotationEntry(DataInputStream file, ConstantPool constant_pool)
+	       throws IOException
+	{
+		type_index = (file.readUnsignedShort());
+		num_element_value_pairs = (file.readUnsignedShort());
+
+		element_value_pairs = new ElementValuePair[num_element_value_pairs];
+	    for(int i=0; i < num_element_value_pairs; i++)
+	    	element_value_pairs[i] = new ElementValuePair(file, constant_pool);
+	    this.constant_pool = constant_pool;
+	}
+	
+	  /**
+	   * Called by objects that are traversing the nodes of the tree implicitely
+	   * defined by the contents of a Java class. I.e., the hierarchy of methods,
+	   * fields, attributes, etc. spawns a tree of objects.
+	   *
+	   * @param v Visitor object
+	   */
+	  public void accept(Visitor v) {
+	    v.visitAnnotationEntry(this);
+	  }
+	  
+	  /**
+	   * @return the annotation type name
+	   */   
+	  public String getAnnotationType() {
+	      ConstantUtf8  c;
+
+	      c = (ConstantUtf8)constant_pool.getConstant(type_index, CONSTANT_Utf8);
+	      return c.getBytes();  	
+	  }
+	  
+	  /**
+	   * @returns the number of element value pairs in this annotation entry
+	   */
+	  public final int getNumElementValuePairs() { return num_element_value_pairs; }
+	  
+	  /**
+	   * @return the element value pairs in this annotation entry
+	   */
+	  public ElementValuePair[] getElementValuePairs() { return element_value_pairs; }
+}

Added: jakarta/bcel/trunk/src/java/org/apache/bcel/classfile/Annotations.java
URL: http://svn.apache.org/viewcvs/jakarta/bcel/trunk/src/java/org/apache/bcel/classfile/Annotations.java?view=auto&rev=153590
 ==============================================================================
--- jakarta/bcel/trunk/src/java/org/apache/bcel/classfile/Annotations.java (added)
+++ jakarta/bcel/trunk/src/java/org/apache/bcel/classfile/Annotations.java Sat Feb 12 \
19:15:08 2005 @@ -0,0 +1,108 @@
+/*
+ * Copyright  2000-2004 The Apache Software Foundation
+ *
+ *  Licensed under the Apache License, Version 2.0 (the "License");
+ *  you may not use this file except in compliance with the License.
+ *  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing, software
+ *  distributed under the License is distributed on an "AS IS" BASIS,
+ *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *  See the License for the specific language governing permissions and
+ *  limitations under the License.
+ *
+ */
+package org.apache.bcel.classfile;
+
+import java.io.DataInputStream;
+import java.io.IOException;
+
+import  org.apache.bcel.Constants;
+
+/**
+ * base class for annotations
+ * 
+ * @version $Id: Annotations
+ * @author  <A HREF="mailto:dbrosius@qis.net">D. Brosius</A>
+ */
+public abstract class Annotations extends Attribute {
+
+	private int               annotation_table_length; 
+	private AnnotationEntry[] annotation_table;        // Table of annotations
+
+	/**
+	 * @param annotation_type the subclass type of the annotation
+	 * @param name_index Index pointing to the name <em>Code</em>
+	 * @param length Content length in bytes
+	 * @param file Input stream
+	 * @param constant_pool Array of constants
+	 */
+	Annotations(byte annotation_type, int name_index, int length, DataInputStream file,
+       ConstantPool constant_pool) throws IOException
+    {
+	    this(annotation_type, name_index, length, (AnnotationEntry[]) null, \
constant_pool);    +	    
+	    annotation_table_length = (file.readUnsignedShort());
+	    annotation_table = new AnnotationEntry[annotation_table_length];
+
+	    for(int i=0; i < annotation_table_length; i++)
+	    	annotation_table[i] = new AnnotationEntry(file, constant_pool);
+	}
+	
+	/**
+	 * @param annotation_type the subclass type of the annotation
+	 * @param name_index Index pointing to the name <em>Code</em>
+	 * @param length Content length in bytes
+	 * @param annotation_table the actual annotations
+	 * @param constant_pool Array of constants
+	 */
+	 public Annotations(byte annotation_type, int name_index, int length, \
AnnotationEntry[] annotation_table, ConstantPool constant_pool) +	 {
+	    super(annotation_type, name_index, length, constant_pool);
+	    setAnnotationTable(annotation_table);
+
+	 }
+	 	  
+	  /**
+	   * Called by objects that are traversing the nodes of the tree implicitely
+	   * defined by the contents of a Java class. I.e., the hierarchy of methods,
+	   * fields, attributes, etc. spawns a tree of objects.
+	   *
+	   * @param v Visitor object
+	   */
+	  public void accept(Visitor v) {
+	    v.visitAnnotation(this);
+	  }
+	  
+	  /**
+	   * @param annotation_table the entries to set in this annotation
+	   */
+	  public final void setAnnotationTable(AnnotationEntry[] annotation_table)
+	  {
+	    this.annotation_table = annotation_table;
+	    annotation_table_length = (annotation_table == null)? 0 :
+	    	annotation_table.length;
+	  }
+
+	  /**
+	   * @returns the annotation entry table
+	   */
+	  public final AnnotationEntry[] GetAnnotationTable()
+	  {
+	    return annotation_table;
+	  }
+	  
+	  /**
+	   * returns the array of annotation entries in this annotation
+	   */
+	  public AnnotationEntry[] getAnnotationEntries() {
+	  	return annotation_table;
+	  }
+	  
+	  /**
+	   * @returns the number of annotation entries in this annotation
+	   */
+	  public final int getNumAnnotation() { return annotation_table_length; }
+}

Modified: jakarta/bcel/trunk/src/java/org/apache/bcel/classfile/Attribute.java
URL: http://svn.apache.org/viewcvs/jakarta/bcel/trunk/src/java/org/apache/bcel/classfile/Attribute.java?view=diff&r1=153589&r2=153590
 ==============================================================================
--- jakarta/bcel/trunk/src/java/org/apache/bcel/classfile/Attribute.java (original)
+++ jakarta/bcel/trunk/src/java/org/apache/bcel/classfile/Attribute.java Sat Feb 12 \
19:15:08 2005 @@ -183,6 +183,12 @@
     case Constants.ATTR_STACK_MAP:
       return new StackMap(name_index, length, file, constant_pool);
 
+//    case Constants.ATTR_RUNTIMEVISIBLE_ANNOTATIONS:
+//        return new RuntimeVisibleAnnotations(name_index, length, file, \
constant_pool); +        
+//    case Constants.ATTR_RUNTIMEINVISIBLE_ANNOTATIONS:
+//      return new RuntimeInvisibleAnnotations(name_index, length, file, \
constant_pool); +      
     default: // Never reached
       throw new IllegalStateException("Ooops! default case reached.");
     }

Modified: jakarta/bcel/trunk/src/java/org/apache/bcel/classfile/DescendingVisitor.java
                
URL: http://svn.apache.org/viewcvs/jakarta/bcel/trunk/src/java/org/apache/bcel/classfile/DescendingVisitor.java?view=diff&r1=153589&r2=153590
 ==============================================================================
--- jakarta/bcel/trunk/src/java/org/apache/bcel/classfile/DescendingVisitor.java \
                (original)
+++ jakarta/bcel/trunk/src/java/org/apache/bcel/classfile/DescendingVisitor.java Sat \
Feb 12 19:15:08 2005 @@ -91,6 +91,22 @@
     stack.pop();
   }
 
+  public void visitAnnotation(Annotations annotation) {
+  	stack.push(annotation);
+  	annotation.accept(visitor);
+  	
+  	AnnotationEntry[] entries = annotation.getAnnotationEntries();
+  	for (int i=0; i < entries.length; i++)
+  		entries[i].accept(this);
+  	stack.pop();
+  }
+  
+  public void visitAnnotationEntry(AnnotationEntry annotationEntry) {
+  	stack.push(annotationEntry);
+  	annotationEntry.accept(visitor);
+  	stack.pop();
+  }
+
   public void visitField(Field field) {
     stack.push(field);
     field.accept(visitor);

Added: jakarta/bcel/trunk/src/java/org/apache/bcel/classfile/ElementValue.java
URL: http://svn.apache.org/viewcvs/jakarta/bcel/trunk/src/java/org/apache/bcel/classfile/ElementValue.java?view=auto&rev=153590
 ==============================================================================
--- jakarta/bcel/trunk/src/java/org/apache/bcel/classfile/ElementValue.java (added)
+++ jakarta/bcel/trunk/src/java/org/apache/bcel/classfile/ElementValue.java Sat Feb \
12 19:15:08 2005 @@ -0,0 +1,87 @@
+/*
+ * Copyright  2000-2004 The Apache Software Foundation
+ *
+ *  Licensed under the Apache License, Version 2.0 (the "License");
+ *  you may not use this file except in compliance with the License.
+ *  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing, software
+ *  distributed under the License is distributed on an "AS IS" BASIS,
+ *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *  See the License for the specific language governing permissions and
+ *  limitations under the License.
+ *
+ */
+package org.apache.bcel.classfile;
+
+import java.io.DataInputStream;
+import java.io.IOException;
+
+/**
+ * an ElementValuePair's element value. This class will be broken out into
+ * different subclasses. This is a temporary implementation.
+ * 
+ * @version $Id: ElementValue
+ * @author  <A HREF="mailto:dbrosius@qis.net">D. Brosius</A>
+ */
+
+public class ElementValue
+{
+	private byte tag;
+	private int const_value_index;
+	private int type_name_index;
+	private int const_name_index;
+	private int class_info_index;
+	private AnnotationEntry annotation;
+	private int num_values;
+	private ElementValue[] values;
+	/**
+	 * Construct object from file stream.
+	 * @param file Input stream
+	 * @param constant_pool the constant pool
+	 * @throws IOException
+	 */
+	ElementValue(DataInputStream file, ConstantPool constant_pool)
+	       throws IOException
+	{
+		tag = (file.readByte());
+		switch (tag) {
+			case 'B':
+			case 'C':
+			case 'D':
+			case 'F':
+			case 'I':
+			case 'J':
+			case 'S':
+			case 'Z':
+			case 's':
+				const_value_index = (file.readUnsignedShort());
+			break;
+			
+			case 'e':
+				type_name_index = (file.readUnsignedShort());
+				const_name_index = (file.readUnsignedShort());
+			break;
+			
+			case 'c':
+				class_info_index = (file.readUnsignedShort());
+			break;
+			
+			case '@':
+				annotation = new AnnotationEntry(file, constant_pool);
+			break;
+			
+			case '[':
+				num_values = (file.readUnsignedShort());
+				values = new ElementValue[num_values];
+				for (int i = 0; i < num_values; i++)
+					values[i] = new ElementValue(file, constant_pool);
+			break;
+			
+			default:
+				throw new IOException("Invalid ElementValue tag: " + tag );				
+		}
+	}
+}

Added: jakarta/bcel/trunk/src/java/org/apache/bcel/classfile/ElementValuePair.java
URL: http://svn.apache.org/viewcvs/jakarta/bcel/trunk/src/java/org/apache/bcel/classfile/ElementValuePair.java?view=auto&rev=153590
 ==============================================================================
--- jakarta/bcel/trunk/src/java/org/apache/bcel/classfile/ElementValuePair.java \
                (added)
+++ jakarta/bcel/trunk/src/java/org/apache/bcel/classfile/ElementValuePair.java Sat \
Feb 12 19:15:08 2005 @@ -0,0 +1,46 @@
+/*
+ * Copyright  2000-2004 The Apache Software Foundation
+ *
+ *  Licensed under the Apache License, Version 2.0 (the "License");
+ *  you may not use this file except in compliance with the License.
+ *  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing, software
+ *  distributed under the License is distributed on an "AS IS" BASIS,
+ *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *  See the License for the specific language governing permissions and
+ *  limitations under the License.
+ *
+ */
+package org.apache.bcel.classfile;
+
+import java.io.DataInputStream;
+import java.io.IOException;
+
+
+/**
+ * an annotation's element value pair
+ * 
+ * @version $Id: ElementValuePair
+ * @author  <A HREF="mailto:dbrosius@qis.net">D. Brosius</A>
+ */
+public class ElementValuePair
+{
+	private int element_name_index;
+	private ElementValue value;
+
+	/**
+	 * Construct object from file stream.
+	 * @param file Input stream
+	 * @param constant_pool the constant pool
+	 * @throws IOException
+	 */
+	ElementValuePair(DataInputStream file, ConstantPool constant_pool)
+	       throws IOException
+	{
+		element_name_index = (file.readUnsignedShort());
+		value = new ElementValue(file, constant_pool);
+	}
+}

Modified: jakarta/bcel/trunk/src/java/org/apache/bcel/classfile/EmptyVisitor.java
URL: http://svn.apache.org/viewcvs/jakarta/bcel/trunk/src/java/org/apache/bcel/classfile/EmptyVisitor.java?view=diff&r1=153589&r2=153590
 ==============================================================================
--- jakarta/bcel/trunk/src/java/org/apache/bcel/classfile/EmptyVisitor.java \
                (original)
+++ jakarta/bcel/trunk/src/java/org/apache/bcel/classfile/EmptyVisitor.java Sat Feb \
12 19:15:08 2005 @@ -31,6 +31,8 @@
 public class EmptyVisitor implements Visitor {
   protected EmptyVisitor() { }
 
+  public void visitAnnotation(Annotations obj) {}
+  public void visitAnnotationEntry(AnnotationEntry obj) {}
   public void visitCode(Code obj) {}
   public void visitCodeException(CodeException obj) {}
   public void visitConstantClass(ConstantClass obj) {}

Added: jakarta/bcel/trunk/src/java/org/apache/bcel/classfile/RuntimeInvisibleAnnotations.java
                
URL: http://svn.apache.org/viewcvs/jakarta/bcel/trunk/src/java/org/apache/bcel/classfile/RuntimeInvisibleAnnotations.java?view=auto&rev=153590
 ==============================================================================
--- jakarta/bcel/trunk/src/java/org/apache/bcel/classfile/RuntimeInvisibleAnnotations.java \
                (added)
+++ jakarta/bcel/trunk/src/java/org/apache/bcel/classfile/RuntimeInvisibleAnnotations.java \
Sat Feb 12 19:15:08 2005 @@ -0,0 +1,54 @@
+/*
+ * Copyright  2000-2005 The Apache Software Foundation
+ *
+ *  Licensed under the Apache License, Version 2.0 (the "License"); 
+ *  you may not use this file except in compliance with the License.
+ *  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing, software
+ *  distributed under the License is distributed on an "AS IS" BASIS,
+ *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *  See the License for the specific language governing permissions and
+ *  limitations under the License. 
+ *
+ */ 
+package org.apache.bcel.classfile;
+
+import java.io.DataInputStream;
+import java.io.IOException;
+
+import org.apache.bcel.Constants;
+
+/**
+ * represents an annotation that is represented in the class file
+ * but is not provided to the JVM.
+ * 
+ * @version $Id: RuntimeInvisibleAnnotations
+ * @author  <A HREF="mailto:dbrosius@qis.net">D. Brosius</A>
+ */
+public class RuntimeInvisibleAnnotations extends Annotations
+{
+	/**
+	 * @param name_index Index pointing to the name <em>Code</em>
+	 * @param length Content length in bytes
+	 * @param file Input stream
+	 * @param constant_pool Array of constants
+	 */
+	RuntimeInvisibleAnnotations(int name_index, int length, DataInputStream file,
+       ConstantPool constant_pool) throws IOException
+    {
+	    super(Constants.ATTR_RUNTIMEINVISIBLE_ANNOTATIONS, name_index, length, file, \
constant_pool);     +	}
+
+	/**
+	 * @return deep copy of this attribute
+	 */
+	public Attribute copy(ConstantPool constant_pool) {
+	    Annotations c = (Annotations)clone();
+	  
+	    return c;
+	}	 
+
+}

Added: jakarta/bcel/trunk/src/java/org/apache/bcel/classfile/RuntimeVisibleAnnotations.java
                
URL: http://svn.apache.org/viewcvs/jakarta/bcel/trunk/src/java/org/apache/bcel/classfile/RuntimeVisibleAnnotations.java?view=auto&rev=153590
 ==============================================================================
--- jakarta/bcel/trunk/src/java/org/apache/bcel/classfile/RuntimeVisibleAnnotations.java \
                (added)
+++ jakarta/bcel/trunk/src/java/org/apache/bcel/classfile/RuntimeVisibleAnnotations.java \
Sat Feb 12 19:15:08 2005 @@ -0,0 +1,54 @@
+/*
+ * Copyright  2000-2005 The Apache Software Foundation
+ *
+ *  Licensed under the Apache License, Version 2.0 (the "License"); 
+ *  you may not use this file except in compliance with the License.
+ *  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing, software
+ *  distributed under the License is distributed on an "AS IS" BASIS,
+ *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *  See the License for the specific language governing permissions and
+ *  limitations under the License. 
+ *
+ */ 
+package org.apache.bcel.classfile;
+
+import java.io.DataInputStream;
+import java.io.IOException;
+
+import org.apache.bcel.Constants;
+
+/**
+ * represents an annotation that is represented in the class file
+ * and is provided to the JVM.
+ * 
+ * @version $Id: RuntimeVisibleAnnotations
+ * @author  <A HREF="mailto:dbrosius@qis.net">D. Brosius</A>
+ */
+public class RuntimeVisibleAnnotations extends Annotations
+{
+	/**
+	 * @param name_index Index pointing to the name <em>Code</em>
+	 * @param length Content length in bytes
+	 * @param file Input stream
+	 * @param constant_pool Array of constants
+	 */
+	RuntimeVisibleAnnotations(int name_index, int length, DataInputStream file,
+       ConstantPool constant_pool) throws IOException
+    {
+	    super(Constants.ATTR_RUNTIMEVISIBLE_ANNOTATIONS, name_index, length, file, \
constant_pool);     +	}
+
+	/**
+	 * @return deep copy of this attribute
+	 */
+	public Attribute copy(ConstantPool constant_pool) {
+	    Annotations c = (Annotations)clone();
+	  
+	    return c;
+	}	 
+
+}

Modified: jakarta/bcel/trunk/src/java/org/apache/bcel/classfile/Visitor.java
URL: http://svn.apache.org/viewcvs/jakarta/bcel/trunk/src/java/org/apache/bcel/classfile/Visitor.java?view=diff&r1=153589&r2=153590
 ==============================================================================
--- jakarta/bcel/trunk/src/java/org/apache/bcel/classfile/Visitor.java (original)
+++ jakarta/bcel/trunk/src/java/org/apache/bcel/classfile/Visitor.java Sat Feb 12 \
19:15:08 2005 @@ -29,6 +29,8 @@
  * @author  <A HREF="mailto:m.dahm@gmx.de">M. Dahm</A>
  */
 public interface Visitor {
+  public void visitAnnotation(Annotations obj);
+  public void visitAnnotationEntry(AnnotationEntry obj);
   public void visitCode(Code obj);    
   public void visitCodeException(CodeException obj);    
   public void visitConstantClass(ConstantClass obj);    



---------------------------------------------------------------------
To unsubscribe, e-mail: bcel-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: bcel-dev-help@jakarta.apache.org


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic