public abstract class DataTypeWithFacet extends XSDatatypeImpl
Modifier and Type | Field and Description |
---|---|
XSDatatypeImpl |
baseType
immediate base type, which may be a concrete type or DataTypeWithFacet
|
protected ConcreteType |
concreteType
base concrete type
|
java.lang.String |
facetName
name of this facet
|
boolean |
isFacetFixed
a flag that indicates the facet is fixed (derived types cannot specify this value anymore)
|
private boolean |
needValueCheckFlag
a flag that indicates this type has value-constraint facet.
|
private static long |
serialVersionUID |
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, serializedValueChecker, whiteSpace
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
Constructor and Description |
---|
DataTypeWithFacet(java.lang.String nsUri,
java.lang.String typeName,
XSDatatypeImpl baseType,
java.lang.String facetName,
boolean _isFixed)
constructor for facets other than WhiteSpaceFacet
|
DataTypeWithFacet(java.lang.String nsUri,
java.lang.String typeName,
XSDatatypeImpl baseType,
java.lang.String facetName,
boolean _isFixed,
WhiteSpaceProcessor whiteSpace)
constructor for WhiteSpaceFacet
|
Modifier and Type | Method and Description |
---|---|
protected void |
_checkValid(java.lang.String content,
org.relaxng.datatype.ValidationContext context)
actual 'meat' of the checkValid method
|
java.lang.Object |
_createJavaObject(java.lang.String literal,
org.relaxng.datatype.ValidationContext context) |
java.lang.String |
convertToLexicalValue(java.lang.Object o,
SerializationContext context)
converts value object back to the corresponding value in the lexical space.
|
protected abstract void |
diagnoseByFacet(java.lang.String content,
org.relaxng.datatype.ValidationContext context) |
java.lang.String |
displayName()
gets the displayable name of this type.
|
XSDatatype |
getBaseType()
gets the base type of this type.
|
ConcreteType |
getConcreteType()
gets the concrete type object of the restriction chain.
|
DataTypeWithFacet |
getFacetObject(java.lang.String facetName)
gets the facet object that restricts the specified facet
|
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()
gets the variety
of this simple type.
|
boolean |
isContextDependent()
A property for RELAX NG DTD compatibility datatypes.
|
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.
|
protected boolean |
needValueCheck() |
java.lang.String |
serializeJavaObject(java.lang.Object value,
SerializationContext context)
converts a value object back to the lexical representation.
|
_createValue, checkFormat, checkValid, createJavaObject, createStreamingValidator, createValue, getAncestorBuiltinType, getApplicableFacetNames, getName, getNamespaceUri, isAlwaysValid, isDerivedTypeOf, isDerivedTypeOf, isValid, localize, localize, localize, localize, localize, sameValue, valueHashCode
public final XSDatatypeImpl baseType
protected final ConcreteType concreteType
public final java.lang.String facetName
public final boolean isFacetFixed
private final boolean needValueCheckFlag
private static final long serialVersionUID
DataTypeWithFacet(java.lang.String nsUri, java.lang.String typeName, XSDatatypeImpl baseType, java.lang.String facetName, boolean _isFixed) throws org.relaxng.datatype.DatatypeException
org.relaxng.datatype.DatatypeException
DataTypeWithFacet(java.lang.String nsUri, java.lang.String typeName, XSDatatypeImpl baseType, java.lang.String facetName, boolean _isFixed, WhiteSpaceProcessor whiteSpace) throws org.relaxng.datatype.DatatypeException
org.relaxng.datatype.DatatypeException
public final XSDatatype getBaseType()
XSDatatype
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.
public boolean isContextDependent()
XSDatatypeImpl
isContextDependent
in interface org.relaxng.datatype.Datatype
isContextDependent
in class XSDatatypeImpl
public int getIdType()
XSDatatypeImpl
ID_TYPE_NULL
is returned by default.getIdType
in interface org.relaxng.datatype.Datatype
getIdType
in class XSDatatypeImpl
public final java.lang.String displayName()
XSDatatype
This method is an ad-hoc method and there is no corresponding property in the spec.
public final int isFacetApplicable(java.lang.String facetName)
XSDatatype
protected boolean needValueCheck()
needValueCheck
in class XSDatatypeImpl
public final DataTypeWithFacet getFacetObject(java.lang.String facetName)
XSDatatypeImpl
getFacetObject
in interface XSDatatype
getFacetObject
in class XSDatatypeImpl
public final ConcreteType getConcreteType()
XSDatatypeImpl
getConcreteType
in class XSDatatypeImpl
public final int getVariety()
XSDatatype
public final boolean isFinal(int derivationType)
XSDatatype
In the terminology of the spec, this method can be used to examine the final property of this component.
derivationType
- one of pre-defined values (DERIVATION_BY_XXX).public final java.lang.String convertToLexicalValue(java.lang.Object o, SerializationContext context)
XSDatatype
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.public final java.lang.Class getJavaObjectType()
DatabindableDatatype
public final java.lang.Object _createJavaObject(java.lang.String literal, org.relaxng.datatype.ValidationContext context)
_createJavaObject
in class XSDatatypeImpl
public java.lang.String serializeJavaObject(java.lang.Object value, SerializationContext context)
DatabindableDatatype
This method is a kind of the "reverse" function of the createJavaObject method.
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.protected final void _checkValid(java.lang.String content, org.relaxng.datatype.ValidationContext context) throws org.relaxng.datatype.DatatypeException
XSDatatypeImpl
_checkValid
in class XSDatatypeImpl
org.relaxng.datatype.DatatypeException
protected abstract void diagnoseByFacet(java.lang.String content, org.relaxng.datatype.ValidationContext context) throws org.relaxng.datatype.DatatypeException
org.relaxng.datatype.DatatypeException