Class CReferencePropertyInfo
- All Implemented Interfaces:
CCustomizable,AnnotationSource,PropertyInfo<NType,,NClass> ReferencePropertyInfo<NType,NClass>
ReferencePropertyInfo for the compiler.- Author:
- Kohsuke Kawaguchi
-
Field Summary
Fields inherited from class com.sun.tools.xjc.model.CPropertyInfo
baseType, defaultValue, inlineBinaryData, javadoc, locator, realization -
Constructor Summary
ConstructorsConstructorDescriptionCReferencePropertyInfo(String name, boolean collection, boolean required, boolean isMixed, XSComponent source, CCustomizations customizations, Locator locator, boolean dummy, boolean content, boolean isMixedExtended) -
Method Summary
Modifier and TypeMethodDescription<V> Vaccept(CPropertyVisitor<V> visitor) <R,P> R accept(CPropertyVisitor2<R, P> visitor, P p) collectElementNames(Map<QName, CPropertyInfo> table) Puts the element names that this property possesses to the map, so that we can find two properties that own the same element name, which is an error.If this property supports the wildcard, returns its DOM handler.Returns the information about the possible elements in this property.Expected MIME type, if any.The effective value ofXmlSchemaTypeannotation, if any.If this property supports the wildcard, returns its mode.Deprecated.id()A reference property can never be ID/IDREF because they always point to other element classes.booleanReturns true if this property is nillable (meaning the absence of the value is treated as nil='true')booleanChecks if the wrapper element is required.booleanbooleanisDummy()booleanisMixed()Returns true if this property can holdStrings to represent mixed content model.booleanbooleanReturns true if this property needs to represent null just for the purpose of representing an absence of the property.booleanReturns true if this element is mandatory.booleanReference properties refer to elements, and none of the Java primitive type maps to an element.final PropertyKindkind()Gets the kind of this property.ref()List ofTypeInfos that this property references.voidsetWildcard(WildcardMode mode) Methods inherited from class com.sun.tools.xjc.model.CPropertyInfo
displayName, getCustomizations, getLocator, getName, getName, getSchemaComponent, hasAnnotation, inlineBinaryData, isCollection, needsExplicitTypeName, parent, readAnnotation, setNameMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface com.sun.xml.bind.v2.model.annotation.AnnotationSource
hasAnnotation, readAnnotationMethods inherited from interface com.sun.xml.bind.v2.model.core.PropertyInfo
displayName, getName, inlineBinaryData, isCollection, parent
-
Constructor Details
-
CReferencePropertyInfo
public CReferencePropertyInfo(String name, boolean collection, boolean required, boolean isMixed, XSComponent source, CCustomizations customizations, Locator locator, boolean dummy, boolean content, boolean isMixedExtended)
-
-
Method Details
-
ref
Description copied from interface:PropertyInfoList ofTypeInfos that this property references. This allows the caller to traverse the reference graph without getting into the details of each different property type.- Specified by:
refin interfacePropertyInfo<NType,NClass> - Specified by:
refin interfaceReferencePropertyInfo<NType,NClass> - Specified by:
refin classCPropertyInfo- Returns:
- non-null read-only collection.
-
getElements
Description copied from interface:ReferencePropertyInfoReturns the information about the possible elements in this property.As of 2004/08/17, the spec only allows you to use different element names when a property is a collection, but I think there's really no reason to limit it there --- if the user wants to use a different tag name for different objects, I don't see why this can be limited to collections.
So this is a generalization of the spec. We always allow a property to have multiple types and use different tag names for it, depending on the actual type.
In most of the cases, this collection only contains 1 item. So the runtime system is encouraged to provide a faster code-path that is optimized toward such cases.
- Specified by:
getElementsin interfaceReferencePropertyInfo<NType,NClass> - Returns:
- Always non-null. Contains at least one entry.
-
isMixed
public boolean isMixed()Description copied from interface:ReferencePropertyInfoReturns true if this property can holdStrings to represent mixed content model.- Specified by:
isMixedin interfaceReferencePropertyInfo<NType,NClass>
-
isDummy
public boolean isDummy() -
isContent
public boolean isContent() -
isMixedExtendedCust
public boolean isMixedExtendedCust() -
getXmlName
Deprecated.We'll never use a wrapper element in XJC. Always return null.- Specified by:
getXmlNamein interfaceReferencePropertyInfo<NType,NClass> - Returns:
- must be null if not collection. If the property is a collection, this can be null (in which case there'll be no wrapper), or it can be non-null (in which case there'll be a wrapper)
-
isUnboxable
public boolean isUnboxable()Reference properties refer to elements, and none of the Java primitive type maps to an element. Thus a reference property is always unboxable.- Overrides:
isUnboxablein classCPropertyInfo
-
isOptionalPrimitive
public boolean isOptionalPrimitive()Description copied from class:CPropertyInfoReturns true if this property needs to represent null just for the purpose of representing an absence of the property.- Overrides:
isOptionalPrimitivein classCPropertyInfo
-
accept
- Specified by:
acceptin classCPropertyInfo
-
accept
- Specified by:
acceptin classCPropertyInfo
-
getAdapter
- Specified by:
getAdapterin interfacePropertyInfo<NType,NClass> - Specified by:
getAdapterin interfaceReferencePropertyInfo<NType,NClass> - Specified by:
getAdapterin classCPropertyInfo- Returns:
- null if the property is not adapted.
-
kind
Description copied from interface:PropertyInfoGets the kind of this property.- Specified by:
kindin interfacePropertyInfo<NType,NClass> - Returns:
- always non-null.
-
id
A reference property can never be ID/IDREF because they always point to other element classes. -
getWildcard
Description copied from interface:ReferencePropertyInfoIf this property supports the wildcard, returns its mode.- Specified by:
getWildcardin interfaceReferencePropertyInfo<NType,NClass> - Returns:
- null if the wildcard is not allowed on this element.
-
setWildcard
-
getDOMHandler
Description copied from interface:ReferencePropertyInfoIf this property supports the wildcard, returns its DOM handler.- Specified by:
getDOMHandlerin interfaceReferencePropertyInfo<NType,NClass> - Returns:
- null if the wildcard is not allowed on this element.
-
getExpectedMimeType
Description copied from interface:PropertyInfoExpected MIME type, if any.- Specified by:
getExpectedMimeTypein interfacePropertyInfo<NType,NClass>
-
isCollectionNillable
public boolean isCollectionNillable()Description copied from interface:ReferencePropertyInfoReturns true if this property is nillable (meaning the absence of the value is treated as nil='true')This method is only used when this property is a collection.
- Specified by:
isCollectionNillablein interfaceReferencePropertyInfo<NType,NClass>
-
isCollectionRequired
public boolean isCollectionRequired()Description copied from interface:ReferencePropertyInfoChecks if the wrapper element is required.- Specified by:
isCollectionRequiredin interfaceReferencePropertyInfo<NType,NClass> - Returns:
- Always false if
ReferencePropertyInfo.getXmlName()==null.
-
getSchemaType
Description copied from interface:PropertyInfoThe effective value ofXmlSchemaTypeannotation, if any.If the property doesn't have
XmlSchemaTypeannotation, this method returns null.Since a type name is a property of a Java type, not a Java property, A schema type name of a Java type should be primarily obtained by using
NonElement.getTypeName(). This method is to correctly implement the ugly semantics ofXmlSchemaType(namely when this returns non-null, it overrides the type names of all types that are in this property.)- Specified by:
getSchemaTypein interfacePropertyInfo<NType,NClass>
-
isRequired
public boolean isRequired()Description copied from interface:ReferencePropertyInfoReturns true if this element is mandatory.- Specified by:
isRequiredin interfaceReferencePropertyInfo<NType,NClass>
-
collectElementNames
Description copied from class:CPropertyInfoPuts the element names that this property possesses to the map, so that we can find two properties that own the same element name, which is an error.- Overrides:
collectElementNamesin classCPropertyInfo- Returns:
- null if no conflict was found. Otherwise return the QName that has the collision.
-