Class ClassInfoImpl<T,C,F,M>
- All Implemented Interfaces:
Locatable,ClassInfo<T,,C> Element<T,,C> MaybeElement<T,,C> NonElement<T,,C> TypeInfo<T,C>
ClassInfo that doesn't depend on a particular
reflection library.- Author:
- Kohsuke Kawaguchi (kk@kohsuke.org)
-
Field Summary
FieldsModifier and TypeFieldDescriptionIf this class has a declared (not inherited) attribute wildcard, keep the reference to it.protected ModelBuilder<T,C, F, M> Reference to theModelBuilder, only until we linkTypeInfos all together, because we don't want to keepModelBuildertoo long.protected final CTypeInfoSetto which this class belongs.Fields inherited from interface com.sun.xml.bind.v2.model.core.NonElement
ANYTYPE_NAME -
Method Summary
Modifier and TypeMethodDescriptionbooleanAClassInfocan be referenced byXmlIDREFif it has an ID property.protected voidThis hook is used byRuntimeClassInfoImplto look forXmlLocation.createAccessorSeed(M getter, M setter) Creates a newGetterSetterPropertySeedobject.createAttributeProperty(com.sun.xml.bind.v2.model.impl.PropertySeed<T, C, F, M> seed) createElementProperty(com.sun.xml.bind.v2.model.impl.PropertySeed<T, C, F, M> seed) createFieldSeed(F f) Creates a newFieldPropertySeedobject.createMapProperty(com.sun.xml.bind.v2.model.impl.PropertySeed<T, C, F, M> seed) createReferenceProperty(com.sun.xml.bind.v2.model.impl.PropertySeed<T, C, F, M> seed) createValueProperty(com.sun.xml.bind.v2.model.impl.PropertySeed<T, C, F, M> seed) final booleanReturns true iff this class declares a wildcard attribute.ClassInfoImpl<T,C, F, M> Obtains the information about the base class.final CgetClazz()Gets the declaration this object is wrapping.final QNameGets the element name of the class, if the class is bound to an element.Gets the location object that this object points to.final StringgetName()Gets the fully-qualified name of the class.List<? extends PropertyInfo<T,C>> Returns all the properties newly declared in this class.getProperty(String name) Gets the property that has the specified name.ClassInfoImpl<T,C, F, M> getScope()Deprecated.If this element can substitute another element, return that element.final TgetType()Gets the underlying Java type that object represents.final QNameGets the primary XML type ANYTYPE_NAME of the class.Gets the upstreamLocationinformation.final booleanReturns true if this bean class has an attribute wildcard.booleanIf the class has properties, return true.final booleanTrue if there's a known sub-type of this class inTypeInfoSet.final booleanReturns true if this class or its ancestor hasXmlValueproperty.final booleanReturns true iff this class inherits a wildcard attribute from its ancestor classes.booleanIf this class is abstract and thus shall never be directly instanciated.final booleanIf the class is bound to an element, return true.final booleanisFinal()If this class is marked as final and no further extension/restriction is allowed.booleanReturns true if the properties of this class is ordered in XML.final booleanReturns true if thisNonElementmaps to text in XML, without any attribute nor child elements.nav()protected final QNameparseElementName(C clazz) Parses anXmlRootElementannotation on a class and determine the element name.protected final QNameparseTypeName(C clazz) protected final QNameparseTypeName(C clazz, javax.xml.bind.annotation.XmlType t) Parses a (potentially-null)XmlTypeannotation on a class and determine the actual value.<A extends Annotation>
AreadAnnotation(Class<A> a) protected final AnnotationReader<T,C, F, M> reader()toString()Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitMethods inherited from interface com.sun.xml.bind.v2.model.annotation.Locatable
getUpstream
-
Field Details
-
clazz
-
attributeWildcard
If this class has a declared (not inherited) attribute wildcard, keep the reference to it. This parameter is initialized at the construction time and never change. -
owner
TypeInfoSetto which this class belongs. -
builder
Reference to theModelBuilder, only until we linkTypeInfos all together, because we don't want to keepModelBuildertoo long.
-
-
Method Details
-
getBaseClass
Description copied from interface:ClassInfoObtains the information about the base class.- Specified by:
getBaseClassin interfaceClassInfo<T,C> - Returns:
- null
if this info extends from
Object.
-
getSubstitutionHead
If this element can substitute another element, return that element.Substitutability of elements are transitive. The substitution hierarchy is the same as the inheritance hierarchy.
- Specified by:
getSubstitutionHeadin interfaceElement<T,C> - Returns:
- null if no such element exists.
-
getClazz
Description copied from interface:ClassInfoGets the declaration this object is wrapping. -
getScope
Deprecated.you shouldn't be invoking this method onClassInfoImpl.When a bean binds to an element, it's always throughXmlRootElement, so this method always return null. -
getType
Description copied from interface:TypeInfoGets the underlying Java type that object represents. -
canBeReferencedByIDREF
public boolean canBeReferencedByIDREF()AClassInfocan be referenced byXmlIDREFif it has an ID property.- Specified by:
canBeReferencedByIDREFin interfaceTypeInfo<T,C>
-
getName
Description copied from interface:ClassInfoGets the fully-qualified name of the class. -
readAnnotation
-
asElement
Description copied from interface:MaybeElement- Specified by:
asElementin interfaceMaybeElement<T,C> - Returns:
- null if
MaybeElement.isElement()==false, non-null ifMaybeElement.isElement()==true.
-
getProperties
Description copied from interface:ClassInfoReturns all the properties newly declared in this class.This excludes properties defined in the super class.
If the properties are
ordered, it will be returned in the order that appear in XML. Otherwise it will be returned in no particular order.Properties marked with
XmlTransientwill not show up in this list. As far as JAXB is concerned, they are considered non-existent.- Specified by:
getPropertiesin interfaceClassInfo<T,C> - Returns:
- always non-null, but can be empty.
-
hasValueProperty
public final boolean hasValueProperty()Description copied from interface:ClassInfoReturns true if this class or its ancestor hasXmlValueproperty.- Specified by:
hasValuePropertyin interfaceClassInfo<T,C>
-
getProperty
Description copied from interface:ClassInfoGets the property that has the specified name.This is just a convenience method for:
for( PropertyInfo p : getProperties() ) { if(p.getName().equals(name)) return p; } return null;- Specified by:
getPropertyin interfaceClassInfo<T,C> - Returns:
- null if the property was not found.
- See Also:
-
checkFieldXmlLocation
This hook is used byRuntimeClassInfoImplto look forXmlLocation. -
hasProperties
public boolean hasProperties()Description copied from interface:ClassInfoIf the class has properties, return true. This is only true if the Collection object returned byClassInfo.getProperties()is not empty.- Specified by:
hasPropertiesin interfaceClassInfo<T,C>
-
createReferenceProperty
-
createAttributeProperty
-
createValueProperty
-
createElementProperty
-
createMapProperty
-
createFieldSeed
Creates a newFieldPropertySeedobject.Derived class can override this method to create a sub-class.
-
createAccessorSeed
protected com.sun.xml.bind.v2.model.impl.PropertySeed<T,C, createAccessorSeedF, M> (M getter, M setter) Creates a newGetterSetterPropertySeedobject. -
isElement
public final boolean isElement()Description copied from interface:MaybeElementIf the class is bound to an element, return true.Note that when this is true, the class is bound to both an element and a type.
- Specified by:
isElementin interfaceMaybeElement<T,C>
-
isAbstract
public boolean isAbstract()Description copied from interface:ClassInfoIf this class is abstract and thus shall never be directly instanciated.- Specified by:
isAbstractin interfaceClassInfo<T,C>
-
isOrdered
public boolean isOrdered()Description copied from interface:ClassInfoReturns true if the properties of this class is ordered in XML. False if it't not.In RELAX NG context, ordered properties mean
<group>and unordered properties mean<interleave>. -
isFinal
public final boolean isFinal()Description copied from interface:ClassInfoIf this class is marked as final and no further extension/restriction is allowed. -
hasSubClasses
public final boolean hasSubClasses()Description copied from interface:ClassInfoTrue if there's a known sub-type of this class inTypeInfoSet.- Specified by:
hasSubClassesin interfaceClassInfo<T,C>
-
hasAttributeWildcard
public final boolean hasAttributeWildcard()Description copied from interface:ClassInfoReturns true if this bean class has an attribute wildcard.This is true if the class declares an attribute wildcard, or it is inherited from its super classes.
- Specified by:
hasAttributeWildcardin interfaceClassInfo<T,C> - See Also:
-
inheritsAttributeWildcard
public final boolean inheritsAttributeWildcard()Description copied from interface:ClassInfoReturns true iff this class inherits a wildcard attribute from its ancestor classes.- Specified by:
inheritsAttributeWildcardin interfaceClassInfo<T,C>
-
declaresAttributeWildcard
public final boolean declaresAttributeWildcard()Description copied from interface:ClassInfoReturns true iff this class declares a wildcard attribute.- Specified by:
declaresAttributeWildcardin interfaceClassInfo<T,C>
-
getElementName
Description copied from interface:MaybeElementGets the element name of the class, if the class is bound to an element.- Specified by:
getElementNamein interfaceElement<T,C> - Specified by:
getElementNamein interfaceMaybeElement<T,C> - Returns:
- non-null iff
MaybeElement.isElement().
-
getTypeName
Description copied from interface:NonElementGets the primary XML type ANYTYPE_NAME of the class.A Java type can be mapped to multiple XML types, but one of them is considered "primary" and used when we generate a schema.
- Specified by:
getTypeNamein interfaceNonElement<T,C> - Returns:
- null if the object doesn't have an explicit type ANYTYPE_NAME (AKA anonymous.)
-
isSimpleType
public final boolean isSimpleType()Description copied from interface:NonElementReturns true if thisNonElementmaps to text in XML, without any attribute nor child elements.- Specified by:
isSimpleTypein interfaceNonElement<T,C>
-
getLocation
Description copied from interface:LocatableGets the location object that this object points to. This operation could be inefficient and costly.- Specified by:
getLocationin interfaceLocatable
-
getFactoryMethod
-
toString
-
getUpstream
Description copied from interface:LocatableGets the upstreamLocationinformation.- Specified by:
getUpstreamin interfaceLocatable- Returns:
- can be null.
-
reader
-
parseElementName
Parses anXmlRootElementannotation on a class and determine the element name.- Returns:
- null if none was found.
-
parseTypeName
-
parseTypeName
Parses a (potentially-null)XmlTypeannotation on a class and determine the actual value.- Parameters:
clazz- The class on which the XmlType annotation is checked.t- TheXmlTypeannotation on the clazz. This value is taken as a parameter to improve the performance for the case where 't' is pre-computed.
-
ClassInfoImpl.