Class ListType

All Implemented Interfaces:
DatabindableDatatype, Discrete, XSDatatype, Serializable, org.relaxng.datatype.Datatype

public final class ListType extends ConcreteType implements Discrete
List type. type of the value object is ListValueType.
See Also:
  • Field Details

  • Constructor Details

    • ListType

      public ListType(String nsUri, String newTypeName, XSDatatypeImpl itemType) throws org.relaxng.datatype.DatatypeException
      derives a new datatype from atomic datatype by list
      Throws:
      org.relaxng.datatype.DatatypeException
  • Method Details

    • displayName

      public final 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 org.relaxng.datatype.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 org.relaxng.datatype.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(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.
    • checkFormat

      protected final boolean checkFormat(String content, org.relaxng.datatype.ValidationContext context)
      Specified by:
      checkFormat in class XSDatatypeImpl
    • _createValue

      public Object _createValue(String content, org.relaxng.datatype.ValidationContext context)
      Description copied from class: XSDatatypeImpl
      converts a whitespace-processed lexical value into the corresponding value object
      Specified by:
      _createValue in class XSDatatypeImpl
    • getJavaObjectType

      public 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(Object value)
      Description copied from interface: Discrete
      count the number of item in value type. Actual semantics of this method varies.
      Specified by:
      countLength in interface Discrete
    • convertToLexicalValue

      public String convertToLexicalValue(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.
    • _checkValid

      protected void _checkValid(String content, org.relaxng.datatype.ValidationContext context) throws org.relaxng.datatype.DatatypeException
      The current implementation detects which list item is considered wrong.
      Overrides:
      _checkValid in class ConcreteType
      Throws:
      org.relaxng.datatype.DatatypeException