00001 package de.fub.bytecode.generic;
00002
00003 import de.fub.bytecode.classfile.*;
00004 import java.util.Vector;
00005
00006
00007
00008
00009
00010
00011
00012
00013 public abstract class FieldGenOrMethodGen extends AccessFlags
00014 implements NamedAndTyped, Cloneable
00015 {
00016 protected String name;
00017 protected Type type;
00018 protected ConstantPoolGen cp;
00019 private Vector attribute_vec = new Vector();
00020
00021 protected FieldGenOrMethodGen() {}
00022
00023
00024
00025
00026
00027
00028
00029
00030 public void addAttribute(Attribute a) { attribute_vec.addElement(a); }
00031 public Object clone() {
00032 try {
00033 return super.clone();
00034 } catch(CloneNotSupportedException e) {
00035 System.err.println(e);
00036 return null;
00037 }
00038 }
00039
00040
00041
00042 public Attribute[] getAttributes() {
00043 Attribute[] attributes = new Attribute[attribute_vec.size()];
00044 attribute_vec.copyInto(attributes);
00045 return attributes;
00046 }
00047 public ConstantPoolGen getConstantPool() { return cp; }
00048
00049
00050 public String getName() { return name; }
00051
00052
00053 public abstract String getSignature();
00054 public Type getType() { return type; }
00055
00056
00057
00058 public void removeAttribute(Attribute a) { attribute_vec.removeElement(a); }
00059 public void setConstantPool(ConstantPoolGen cp) { this.cp = cp; }
00060 public void setName(String name) { this.name = name; }
00061 public void setType(Type type) { this.type = type; }
00062 }