- java.lang.Object
-
- com.sun.tools.xjc.model.CPropertyInfo
-
- com.sun.tools.xjc.model.CReferencePropertyInfo
-
- All Implemented Interfaces:
CCustomizable,AnnotationSource,PropertyInfo<NType,NClass>,ReferencePropertyInfo<NType,NClass>
public final class CReferencePropertyInfo extends CPropertyInfo implements ReferencePropertyInfo<NType,NClass>
ReferencePropertyInfofor 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
Constructors Constructor Description CReferencePropertyInfo(String name, boolean collection, boolean required, boolean isMixed, XSComponent source, CCustomizations customizations, Locator locator, boolean dummy, boolean content, boolean isMixedExtended)
-
Method Summary
All Methods Instance Methods Concrete Methods Deprecated Methods Modifier and Type Method Description <V> Vaccept(CPropertyVisitor<V> visitor)<R,P>
Raccept(CPropertyVisitor2<R,P> visitor, P p)QNamecollectElementNames(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.CAdaptergetAdapter()NClassgetDOMHandler()If this property supports the wildcard, returns its DOM handler.Set<CElement>getElements()Returns the information about the possible elements in this property.jakarta.activation.MimeTypegetExpectedMimeType()Expected MIME type, if any.QNamegetSchemaType()The effective value ofXmlSchemaTypeannotation, if any.WildcardModegetWildcard()If this property supports the wildcard, returns its mode.QNamegetXmlName()Deprecated.IDid()A reference property can never be ID/IDREF because they always point to other element classes.booleanisCollectionNillable()Returns true if this property is nillable (meaning the absence of the value is treated as nil='true')booleanisCollectionRequired()Checks if the wrapper element is required.booleanisContent()booleanisDummy()booleanisMixed()Returns true if this property can holdStrings to represent mixed content model.booleanisMixedExtendedCust()booleanisOptionalPrimitive()Returns true if this property needs to represent null just for the purpose of representing an absence of the property.booleanisRequired()Returns true if this element is mandatory.booleanisUnboxable()Reference properties refer to elements, and none of the Java primitive type maps to an element.PropertyKindkind()Gets the kind of this property.Set<? extends CTypeInfo>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, setName
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface org.glassfish.jaxb.core.v2.model.annotation.AnnotationSource
hasAnnotation, readAnnotation
-
Methods inherited from interface org.glassfish.jaxb.core.v2.model.core.PropertyInfo
displayName, getName, inlineBinaryData, isCollection, parent
-
-
-
-
Constructor Detail
-
CReferencePropertyInfo
public CReferencePropertyInfo(String name, boolean collection, boolean required, boolean isMixed, XSComponent source, CCustomizations customizations, Locator locator, boolean dummy, boolean content, boolean isMixedExtended)
-
-
Method Detail
-
ref
public Set<? extends CTypeInfo> 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
public Set<CElement> 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 public QName 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
public <V> V accept(CPropertyVisitor<V> visitor)
- Specified by:
acceptin classCPropertyInfo
-
accept
public <R,P> R accept(CPropertyVisitor2<R,P> visitor, P p)
- Specified by:
acceptin classCPropertyInfo
-
getAdapter
public CAdapter 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
public final PropertyKind kind()
Description copied from interface:PropertyInfoGets the kind of this property.- Specified by:
kindin interfacePropertyInfo<NType,NClass>- Returns:
- always non-null.
-
id
public ID id()
A reference property can never be ID/IDREF because they always point to other element classes.- Specified by:
idin interfacePropertyInfo<NType,NClass>- Returns:
- always non-null
- See Also:
XmlID,XmlIDREF
-
getWildcard
public WildcardMode 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
public void setWildcard(WildcardMode mode)
-
getDOMHandler
public NClass 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
public jakarta.activation.MimeType 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
public QName 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
public QName collectElementNames(Map<QName,CPropertyInfo> table)
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.
-
-