com.sun.xml.bind.v2.model.impl
Class GetterSetterPropertySeed<TypeT,ClassDeclT,FieldT,MethodT>

java.lang.Object
  extended by com.sun.xml.bind.v2.model.impl.GetterSetterPropertySeed<TypeT,ClassDeclT,FieldT,MethodT>
All Implemented Interfaces:
AnnotationSource, Locatable, PropertySeed<TypeT,ClassDeclT,FieldT,MethodT>

 class GetterSetterPropertySeed<TypeT,ClassDeclT,FieldT,MethodT>
extends Object
implements PropertySeed<TypeT,ClassDeclT,FieldT,MethodT>

PropertyInfo implementation backed by a getter and a setter. We allow the getter or setter to be null, in which case the bean can only participate in unmarshalling (or marshalling)


Field Summary
protected  MethodT getter
           
protected  MethodT setter
           
 
Constructor Summary
GetterSetterPropertySeed(ClassInfoImpl<TypeT,ClassDeclT,FieldT,MethodT> parent, MethodT getter, MethodT setter)
           
 
Method Summary
 Location getLocation()
          Gets the location object that this object points to.
 String getName()
          The name of the property is a spec defined concept --- although it doesn't do so explicitly in anywhere.
 TypeT getRawType()
          Gets the actual data type of the field.
 Locatable getUpstream()
          Use the enclosing class as the upsream Location.
 boolean hasAnnotation(Class<? extends Annotation> annotationType)
          Returns true if the property has the specified annotation.
<A extends Annotation>
A
readAnnotation(Class<A> annotation)
          Gets the value of the specified annotation from the given property.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

getter

protected final MethodT getter

setter

protected final MethodT setter
Constructor Detail

GetterSetterPropertySeed

GetterSetterPropertySeed(ClassInfoImpl<TypeT,ClassDeclT,FieldT,MethodT> parent,
                         MethodT getter,
                         MethodT setter)
Method Detail

getRawType

public TypeT getRawType()
Description copied from interface: PropertySeed
Gets the actual data type of the field.

The data of the property is stored by using this type.

The difference between the RuntimePropertyInfo.getIndividualType() and this method is clear when the property is a multi-value property. The RuntimePropertyInfo.getIndividualType() method returns the type of the item, but this method returns the actual collection type.

Specified by:
getRawType in interface PropertySeed<TypeT,ClassDeclT,FieldT,MethodT>

readAnnotation

public <A extends Annotation> A readAnnotation(Class<A> annotation)
Description copied from interface: AnnotationSource
Gets the value of the specified annotation from the given property.

When this method is used for a property that consists of a getter and setter, it returns the annotation on either of those methods. If both methods have the same annotation, it is an error.

Specified by:
readAnnotation in interface AnnotationSource
Returns:
null if the annotation is not present.

hasAnnotation

public boolean hasAnnotation(Class<? extends Annotation> annotationType)
Description copied from interface: AnnotationSource
Returns true if the property has the specified annotation.

Short for readAnnotation(annotationType)!=null, but this method is typically faster.

Specified by:
hasAnnotation in interface AnnotationSource

getName

public String getName()
Description copied from interface: PropertySeed
The name of the property is a spec defined concept --- although it doesn't do so explicitly in anywhere.

Specified by:
getName in interface PropertySeed<TypeT,ClassDeclT,FieldT,MethodT>
See Also:
PropertyInfo.getName()

getUpstream

public Locatable getUpstream()
Use the enclosing class as the upsream Location.

Specified by:
getUpstream in interface Locatable
Returns:
can be null.

getLocation

public Location getLocation()
Description copied from interface: Locatable
Gets the location object that this object points to. This operation could be inefficient and costly.

Specified by:
getLocation in interface Locatable