Class DataTypeWithFacet

java.lang.Object
com.sun.msv.datatype.xsd.XSDatatypeImpl
com.sun.msv.datatype.xsd.DataTypeWithFacet
All Implemented Interfaces:
DatabindableDatatype, XSDatatype, Serializable, org.relaxng.datatype.Datatype
Direct Known Subclasses:
DataTypeWithLexicalConstraintFacet, DataTypeWithValueConstraintFacet, WhiteSpaceFacet

public abstract class DataTypeWithFacet extends XSDatatypeImpl
Base implementation of facet-restricted datatype
See Also:
  • Field Details

    • baseType

      public final XSDatatypeImpl baseType
      immediate base type, which may be a concrete type or DataTypeWithFacet
    • concreteType

      protected final ConcreteType concreteType
      base concrete type
    • facetName

      public final String facetName
      name of this facet
    • isFacetFixed

      public final boolean isFacetFixed
      a flag that indicates the facet is fixed (derived types cannot specify this value anymore)
    • needValueCheckFlag

      private final boolean needValueCheckFlag
      a flag that indicates this type has value-constraint facet. this value is used to cache this flag.
    • serialVersionUID

      private static final long serialVersionUID
      See Also:
  • Constructor Details

    • DataTypeWithFacet

      DataTypeWithFacet(String nsUri, String typeName, XSDatatypeImpl baseType, String facetName, boolean _isFixed) throws org.relaxng.datatype.DatatypeException
      constructor for facets other than WhiteSpaceFacet
      Throws:
      org.relaxng.datatype.DatatypeException
    • DataTypeWithFacet

      DataTypeWithFacet(String nsUri, String typeName, XSDatatypeImpl baseType, String facetName, boolean _isFixed, WhiteSpaceProcessor whiteSpace) throws org.relaxng.datatype.DatatypeException
      constructor for WhiteSpaceFacet
      Throws:
      org.relaxng.datatype.DatatypeException
  • Method Details

    • 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.

    • isContextDependent

      public boolean isContextDependent()
      Description copied from class: XSDatatypeImpl
      A property for RELAX NG DTD compatibility datatypes. Context-independent by default.
      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
    • 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.

    • isFacetApplicable

      public final int isFacetApplicable(String facetName)
      Description copied from interface: XSDatatype
      returns if the specified facet is applicable to this datatype.
      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.
    • needValueCheck

      protected boolean needValueCheck()
      Overrides:
      needValueCheck in class XSDatatypeImpl
    • getFacetObject

      public final DataTypeWithFacet getFacetObject(String facetName)
      Description copied from class: XSDatatypeImpl
      gets the facet object that restricts the specified facet
      Specified by:
      getFacetObject in interface XSDatatype
      Overrides:
      getFacetObject in class XSDatatypeImpl
      Returns:
      null if no such facet object exists.
    • getConcreteType

      public final ConcreteType getConcreteType()
      Description copied from class: XSDatatypeImpl
      gets the concrete type object of the restriction chain.
      Specified by:
      getConcreteType in class XSDatatypeImpl
    • getVariety

      public final int getVariety()
      Description copied from interface: XSDatatype
      gets the variety of this simple type.
      Returns:
      VARIETY_ATOMIC, VARIETY_LIST, or VARIETY_UNION.
    • 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.

      Parameters:
      derivationType - one of pre-defined values (DERIVATION_BY_XXX).
    • convertToLexicalValue

      public final String convertToLexicalValue(Object o, 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.

      Parameters:
      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.
    • getJavaObjectType

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

      public final Object _createJavaObject(String literal, org.relaxng.datatype.ValidationContext context)
      Specified by:
      _createJavaObject in class XSDatatypeImpl
    • serializeJavaObject

      public String serializeJavaObject(Object value, SerializationContext context)
      Description copied from interface: DatabindableDatatype
      converts a value object back to the lexical representation.

      This method is a kind of the "reverse" function of the createJavaObject method.

      Parameters:
      context - The context object is used to obtain information necessary to serialize the value object. For example, QName type uses the context to encode the URI into a prefix.
      Returns:
      null if the given object is invalid with respect to this datatype.
    • _checkValid

      protected final void _checkValid(String content, org.relaxng.datatype.ValidationContext context) throws org.relaxng.datatype.DatatypeException
      Description copied from class: XSDatatypeImpl
      actual 'meat' of the checkValid method
      Specified by:
      _checkValid in class XSDatatypeImpl
      Throws:
      org.relaxng.datatype.DatatypeException
    • diagnoseByFacet

      protected abstract void diagnoseByFacet(String content, org.relaxng.datatype.ValidationContext context) throws org.relaxng.datatype.DatatypeException
      Throws:
      org.relaxng.datatype.DatatypeException