com.sun.msv.datatype.xsd
Class ListType

java.lang.Object
  extended by com.sun.msv.datatype.xsd.XSDatatypeImpl
      extended by com.sun.msv.datatype.xsd.ConcreteType
          extended by com.sun.msv.datatype.xsd.ListType
All Implemented Interfaces:
DatabindableDatatype, XSDatatype, java.io.Serializable, Datatype

public final class ListType
extends ConcreteType

List type. type of the value object is ListValueType.

Author:
Kohsuke KAWAGUCHI
See Also:
Serialized Form

Field Summary
 XSDatatypeImpl itemType
          atomic base type
 
Fields inherited from class com.sun.msv.datatype.xsd.XSDatatypeImpl
ERR_DUPLICATE_FACET, ERR_EMPTY_UNION, ERR_ENUMERATION, ERR_ENUMERATION_WITH_ARG, ERR_FACET_MUST_BE_NON_NEGATIVE_INTEGER, ERR_FACET_MUST_BE_POSITIVE_INTEGER, ERR_INAPPROPRIATE_FOR_TYPE, ERR_INCONSISTENT_FACETS_1, ERR_INCONSISTENT_FACETS_2, ERR_INVALID_BASE_TYPE, ERR_INVALID_ITEMTYPE, ERR_INVALID_MEMBER_TYPE, ERR_INVALID_VALUE_FOR_THIS_TYPE, ERR_INVALID_WHITESPACE_VALUE, ERR_LENGTH, ERR_LOOSENED_FACET, ERR_MAXLENGTH, ERR_MINLENGTH, ERR_NOT_APPLICABLE_FACET, ERR_OUT_OF_RANGE, ERR_OVERRIDING_FIXED_FACET, ERR_PARSE_ERROR, ERR_PATTERN_1, ERR_PATTERN_MANY, ERR_SCALE_IS_GREATER_THAN_PRECISION, ERR_TOO_MUCH_PRECISION, ERR_TOO_MUCH_SCALE, ERR_X_AND_Y_ARE_EXCLUSIVE, whiteSpace
 
Fields inherited from interface com.sun.msv.datatype.xsd.XSDatatype
APPLICABLE, DERIVATION_BY_LIST, DERIVATION_BY_RESTRICTION, DERIVATION_BY_UNION, FACET_ENUMERATION, FACET_FRACTIONDIGITS, FACET_LENGTH, FACET_MAXEXCLUSIVE, FACET_MAXINCLUSIVE, FACET_MAXLENGTH, FACET_MINEXCLUSIVE, FACET_MININCLUSIVE, FACET_MINLENGTH, FACET_PATTERN, FACET_TOTALDIGITS, FACET_WHITESPACE, FIXED, NOT_ALLOWED, VARIETY_ATOMIC, VARIETY_LIST, VARIETY_UNION, XMLSCHEMA_NSURI
 
Fields inherited from interface org.relaxng.datatype.Datatype
ID_TYPE_ID, ID_TYPE_IDREF, ID_TYPE_IDREFS, ID_TYPE_NULL
 
Constructor Summary
ListType(java.lang.String nsUri, java.lang.String newTypeName, XSDatatypeImpl itemType)
          derives a new datatype from atomic datatype by list
 
Method Summary
 java.lang.Object _createValue(java.lang.String content, ValidationContext context)
          converts a whitespace-processed lexical value into the corresponding value object
 java.lang.String convertToLexicalValue(java.lang.Object value, SerializationContext context)
          converts value object back to the corresponding value in the lexical space.
 int countLength(java.lang.Object value)
          count the number of item in value type.
 java.lang.String displayName()
          gets the displayable name of this type.
 XSDatatype getBaseType()
          gets the base type of this type.
 int getIdType()
          A property for RELAX NG DTD compatibility datatypes.
 java.lang.Class getJavaObjectType()
          gets the type of the objects that are created by the createJavaObject method.
 int getVariety()
          Variety of the ListType is VARIETY_LIST.
 boolean isContextDependent()
          The list type is context-dependent if its item type is so.
 int isFacetApplicable(java.lang.String facetName)
          returns if the specified facet is applicable to this datatype.
 boolean isFinal(int derivationType)
          checks if this type is declared as final for the specified kind of derivation.
 
Methods inherited from class com.sun.msv.datatype.xsd.ConcreteType
_createJavaObject, getConcreteType, serializeJavaObject
 
Methods inherited from class com.sun.msv.datatype.xsd.XSDatatypeImpl
checkValid, createJavaObject, createStreamingValidator, createValue, getAncestorBuiltinType, getApplicableFacetNames, getFacetObject, getName, getNamespaceUri, isAlwaysValid, isDerivedTypeOf, isDerivedTypeOf, isValid, localize, localize, localize, localize, localize, sameValue, valueHashCode
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

itemType

public final XSDatatypeImpl itemType
atomic base type

Constructor Detail

ListType

public ListType(java.lang.String nsUri,
                java.lang.String newTypeName,
                XSDatatypeImpl itemType)
         throws DatatypeException
derives a new datatype from atomic datatype by list

Throws:
DatatypeException
Method Detail

displayName

public final java.lang.String displayName()
Description copied from interface: XSDatatype
gets the displayable name of this type. This method always return something. It is useful to provide a message to the user.

This method is an ad-hoc method and there is no corresponding property in the spec.

Specified by:
displayName in interface XSDatatype

getVariety

public final int getVariety()
Variety of the ListType is VARIETY_LIST. So this method always returns VARIETY_LIST.

Specified by:
getVariety in interface XSDatatype
Returns:
VARIETY_ATOMIC, VARIETY_LIST, or VARIETY_UNION.

getBaseType

public final XSDatatype getBaseType()
Description copied from interface: XSDatatype
gets the base type of this type. This method returns null if this object represents the simple ur-type.

This method is intended to capture the semantics of the base type definition property of the simple type component, but there is an important difference.

Specifically, if you derive a type D from another type B, then calling D.getBaseType() does not necessarily return B. Instead, it may return an intermediate object (that represents a facet). Calling the getBaseType method recursively will eventually return B.

Specified by:
getBaseType in interface XSDatatype

isContextDependent

public boolean isContextDependent()
The list type is context-dependent if its item type is so.

Specified by:
isContextDependent in interface Datatype
Overrides:
isContextDependent in class XSDatatypeImpl

getIdType

public int getIdType()
Description copied from class: XSDatatypeImpl
A property for RELAX NG DTD compatibility datatypes. ID_TYPE_NULL is returned by default.

Specified by:
getIdType in interface Datatype
Overrides:
getIdType in class XSDatatypeImpl

isFinal

public final boolean isFinal(int derivationType)
Description copied from interface: XSDatatype
checks if this type is declared as final for the specified kind of derivation.

In the terminology of the spec, this method can be used to examine the final property of this component.

Specified by:
isFinal in interface XSDatatype
Overrides:
isFinal in class ConcreteType
Parameters:
derivationType - one of pre-defined values (DERIVATION_BY_XXX).

isFacetApplicable

public final int isFacetApplicable(java.lang.String facetName)
Description copied from interface: XSDatatype
returns if the specified facet is applicable to this datatype.

Specified by:
isFacetApplicable in interface XSDatatype
Returns:
APPLICABLE
if the facet is applicable
FIXED
if the facet is already fixed (that is,not applicable)
NOT_ALLOWED
if the facet is not applicable to this datatype at all. this value is also returned for unknown facets.

_createValue

public java.lang.Object _createValue(java.lang.String content,
                                     ValidationContext context)
Description copied from class: XSDatatypeImpl
converts a whitespace-processed lexical value into the corresponding value object


getJavaObjectType

public java.lang.Class getJavaObjectType()
Description copied from interface: DatabindableDatatype
gets the type of the objects that are created by the createJavaObject method.

Specified by:
getJavaObjectType in interface DatabindableDatatype

countLength

public final int countLength(java.lang.Object value)
count the number of item in value type. Actual semantics of this method varies.


convertToLexicalValue

public java.lang.String convertToLexicalValue(java.lang.Object value,
                                              SerializationContext context)
Description copied from interface: XSDatatype
converts value object back to the corresponding value in the lexical space.

This method does the reverse operation of the createValue method. The returned string is not necessarily the canonical representation. Also note that the implementation may accept invalid values without throwing IllegalArgumentException. To make sure that the result is actually a valid representation, call the isValid method.

Be careful not to confuse this method with The serializeJavaObject method, which is defined in the DatabindableDatatype method.

Specified by:
convertToLexicalValue in interface XSDatatype
context - Context information that will be possibly used for the conversion. Currently, this object is used only by QName, but may be extended in the future.