javassist
Class CtField

java.lang.Object
  extended by javassist.CtMember
      extended by javassist.CtField

public class CtField
extends CtMember

An instance of CtField represents a field.

See Also:
CtClass.getDeclaredFields()

Nested Class Summary
static class CtField.Initializer
          Instances of this class specify how to initialize a field.
 
Constructor Summary
CtField(CtClass type, java.lang.String name, CtClass declaring)
          Creates a CtField object.
CtField(CtField src, CtClass declaring)
          Creates a copy of the given field.
 
Method Summary
 java.lang.Object getAnnotation(java.lang.Class clz)
          Returns the annotation if the class has the specified annotation class.
 java.lang.Object[] getAnnotations()
          Returns the annotations associated with this field.
 byte[] getAttribute(java.lang.String name)
          Obtains an attribute with the given name.
 java.lang.Object[] getAvailableAnnotations()
          Returns the annotations associated with this field.
 java.lang.Object getConstantValue()
          Returns the value of this field if it is a constant field.
 CtClass getDeclaringClass()
          Returns the class declaring the field.
 FieldInfo getFieldInfo()
          Returns the FieldInfo representing the field in the class file.
 FieldInfo getFieldInfo2()
          Returns the FieldInfo representing the field in the class file (read only).
 int getModifiers()
          Returns the encoded modifiers of the field.
 java.lang.String getName()
          Returns the name of the field.
 java.lang.String getSignature()
          Returns the character string representing the type of the field.
 CtClass getType()
          Returns the type of the field.
 boolean hasAnnotation(java.lang.Class clz)
          Returns true if the class has the specified annotation class.
static CtField make(java.lang.String src, CtClass declaring)
          Compiles the given source code and creates a field.
 void setAttribute(java.lang.String name, byte[] data)
          Adds an attribute.
 void setModifiers(int mod)
          Sets the encoded modifiers of the field.
 void setName(java.lang.String newName)
          Changes the name of the field.
 void setType(CtClass clazz)
          Sets the type of the field.
 java.lang.String toString()
          Returns a String representation of the object.
 
Methods inherited from class javassist.CtMember
visibleFrom
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

CtField

public CtField(CtClass type,
               java.lang.String name,
               CtClass declaring)
        throws CannotCompileException
Creates a CtField object. The created field must be added to a class with CtClass.addField(). An initial value of the field is specified by a CtField.Initializer object.

If getter and setter methods are needed, call CtNewMethod.getter() and CtNewMethod.setter().

Parameters:
type - field type
name - field name
declaring - the class to which the field will be added.
Throws:
CannotCompileException
See Also:
CtClass.addField(CtField), CtNewMethod.getter(String,CtField), CtNewMethod.setter(String,CtField), CtField.Initializer

CtField

public CtField(CtField src,
               CtClass declaring)
        throws CannotCompileException
Creates a copy of the given field. The created field must be added to a class with CtClass.addField(). An initial value of the field is specified by a CtField.Initializer object.

If getter and setter methods are needed, call CtNewMethod.getter() and CtNewMethod.setter().

Parameters:
src - the original field
declaring - the class to which the field will be added.
Throws:
CannotCompileException
See Also:
CtNewMethod.getter(String,CtField), CtNewMethod.setter(String,CtField), CtField.Initializer
Method Detail

toString

public java.lang.String toString()
Returns a String representation of the object.

Overrides:
toString in class CtMember

make

public static CtField make(java.lang.String src,
                           CtClass declaring)
                    throws CannotCompileException
Compiles the given source code and creates a field. Examples of the source code are:

Note that the source code ends with ';' (semicolon).

Parameters:
src - the source text.
declaring - the class to which the created field is added.
Throws:
CannotCompileException

getFieldInfo

public FieldInfo getFieldInfo()
Returns the FieldInfo representing the field in the class file.


getFieldInfo2

public FieldInfo getFieldInfo2()
Returns the FieldInfo representing the field in the class file (read only). Normal applications do not need calling this method. Use getFieldInfo().

The FieldInfo object obtained by this method is read only. Changes to this object might not be reflected on a class file generated by toBytecode(), toClass(), etc in CtClass.

This method is available even if the CtClass containing this field is frozen. However, if the class is frozen, the FieldInfo might be also pruned.

See Also:
getFieldInfo(), CtClass.isFrozen(), CtClass.prune()

getDeclaringClass

public CtClass getDeclaringClass()
Returns the class declaring the field.

Overrides:
getDeclaringClass in class CtMember

getName

public java.lang.String getName()
Returns the name of the field.

Specified by:
getName in class CtMember
See Also:
CtConstructor.getName()

setName

public void setName(java.lang.String newName)
Changes the name of the field.


getModifiers

public int getModifiers()
Returns the encoded modifiers of the field.

Specified by:
getModifiers in class CtMember
Returns:
modifiers encoded with javassist.Modifier.
See Also:
Modifier

setModifiers

public void setModifiers(int mod)
Sets the encoded modifiers of the field.

Specified by:
setModifiers in class CtMember
See Also:
Modifier

hasAnnotation

public boolean hasAnnotation(java.lang.Class clz)
Returns true if the class has the specified annotation class.

Specified by:
hasAnnotation in class CtMember
Parameters:
clz - the annotation class.
Returns:
true if the annotation is found, otherwise false.
Since:
3.11

getAnnotation

public java.lang.Object getAnnotation(java.lang.Class clz)
                               throws java.lang.ClassNotFoundException
Returns the annotation if the class has the specified annotation class. For example, if an annotation @Author is associated with this field, an Author object is returned. The member values can be obtained by calling methods on the Author object.

Specified by:
getAnnotation in class CtMember
Parameters:
clz - the annotation class.
Returns:
the annotation if found, otherwise null.
Throws:
java.lang.ClassNotFoundException
Since:
3.11

getAnnotations

public java.lang.Object[] getAnnotations()
                                  throws java.lang.ClassNotFoundException
Returns the annotations associated with this field.

Specified by:
getAnnotations in class CtMember
Returns:
an array of annotation-type objects.
Throws:
java.lang.ClassNotFoundException
Since:
3.1
See Also:
getAvailableAnnotations()

getAvailableAnnotations

public java.lang.Object[] getAvailableAnnotations()
Returns the annotations associated with this field. If any annotations are not on the classpath, they are not included in the returned array.

Specified by:
getAvailableAnnotations in class CtMember
Returns:
an array of annotation-type objects.
Since:
3.3
See Also:
getAnnotations()

getSignature

public java.lang.String getSignature()
Returns the character string representing the type of the field. If two fields have the same type, getSignature() returns the same string.

Note that the returned string is not the type signature contained in the SignatureAttirbute. It is a descriptor. To obtain a type signature, call the following methods:

Specified by:
getSignature in class CtMember
See Also:
Descriptor, SignatureAttribute

getType

public CtClass getType()
                throws NotFoundException
Returns the type of the field.

Throws:
NotFoundException

setType

public void setType(CtClass clazz)
Sets the type of the field.


getConstantValue

public java.lang.Object getConstantValue()
Returns the value of this field if it is a constant field. This method works only if the field type is a primitive type or String type. Otherwise, it returns null. A constant field is static and final.

Returns:
a Integer, Long, Float, Double, Boolean, or String object representing the constant value. null if it is not a constant field or if the field type is not a primitive type or String.

getAttribute

public byte[] getAttribute(java.lang.String name)
Obtains an attribute with the given name. If that attribute is not found in the class file, this method returns null.

Note that an attribute is a data block specified by the class file format. See AttributeInfo.

Specified by:
getAttribute in class CtMember
Parameters:
name - attribute name

setAttribute

public void setAttribute(java.lang.String name,
                         byte[] data)
Adds an attribute. The attribute is saved in the class file.

Note that an attribute is a data block specified by the class file format. See AttributeInfo.

Specified by:
setAttribute in class CtMember
Parameters:
name - attribute name
data - attribute value


Javassist, a Java-bytecode translator toolkit.
Copyright (C) 1999-2010 Shigeru Chiba. All Rights Reserved.