Class UnionType

    • Constructor Detail

      • UnionType

        public UnionType​(java.lang.String nsUri,
                         java.lang.String newTypeName,
                         XSDatatype[] memberTypes)
                  throws org.relaxng.datatype.DatatypeException
        derives a new datatype from atomic datatypes by union
        Throws:
        org.relaxng.datatype.DatatypeException
    • Method Detail

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

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

      • isContextDependent

        public boolean isContextDependent()
        The union type is context-dependent if one of the member types is so.
        Specified by:
        isContextDependent in interface org.relaxng.datatype.Datatype
        Overrides:
        isContextDependent in class XSDatatypeImpl
      • getVariety

        public final int getVariety()
        Variety of the UnionType is VARIETY_UNION. So this method always returns VARIETY_UNION.
        Returns:
        VARIETY_ATOMIC, VARIETY_LIST, or VARIETY_UNION.
      • isFacetApplicable

        public final int isFacetApplicable​(java.lang.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.
      • checkFormat

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

        public java.lang.Object _createValue​(java.lang.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 java.lang.Class getJavaObjectType()
        Description copied from interface: DatabindableDatatype
        gets the type of the objects that are created by the createJavaObject method.
      • convertToLexicalValue

        public java.lang.String convertToLexicalValue​(java.lang.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.

        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​(java.lang.String content,
                                   org.relaxng.datatype.ValidationContext context)
                            throws org.relaxng.datatype.DatatypeException
        Description copied from class: XSDatatypeImpl
        actual 'meat' of the checkValid method
        Overrides:
        _checkValid in class ConcreteType
        Throws:
        org.relaxng.datatype.DatatypeException