Class DataTypeWithFacet
- java.lang.Object
-
- com.sun.msv.datatype.xsd.XSDatatypeImpl
-
- com.sun.msv.datatype.xsd.DataTypeWithFacet
-
- All Implemented Interfaces:
DatabindableDatatype,XSDatatype,java.io.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:
- Serialized Form
-
-
Field Summary
Fields Modifier and Type Field Description XSDatatypeImplbaseTypeimmediate base type, which may be a concrete type or DataTypeWithFacetprotected ConcreteTypeconcreteTypebase concrete typejava.lang.StringfacetNamename of this facetbooleanisFacetFixeda flag that indicates the facet is fixed (derived types cannot specify this value anymore)private booleanneedValueCheckFlaga flag that indicates this type has value-constraint facet.private static longserialVersionUID-
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, serializedValueChecker, whiteSpace
-
Fields inherited from interface org.relaxng.datatype.Datatype
ID_TYPE_ID, ID_TYPE_IDREF, ID_TYPE_IDREFS, ID_TYPE_NULL
-
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
-
-
Constructor Summary
Constructors Constructor Description DataTypeWithFacet(java.lang.String nsUri, java.lang.String typeName, XSDatatypeImpl baseType, java.lang.String facetName, boolean _isFixed)constructor for facets other than WhiteSpaceFacetDataTypeWithFacet(java.lang.String nsUri, java.lang.String typeName, XSDatatypeImpl baseType, java.lang.String facetName, boolean _isFixed, WhiteSpaceProcessor whiteSpace)constructor for WhiteSpaceFacet
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description protected void_checkValid(java.lang.String content, org.relaxng.datatype.ValidationContext context)actual 'meat' of the checkValid methodjava.lang.Object_createJavaObject(java.lang.String literal, org.relaxng.datatype.ValidationContext context)java.lang.StringconvertToLexicalValue(java.lang.Object o, SerializationContext context)converts value object back to the corresponding value in the lexical space.protected abstract voiddiagnoseByFacet(java.lang.String content, org.relaxng.datatype.ValidationContext context)java.lang.StringdisplayName()gets the displayable name of this type.XSDatatypegetBaseType()gets the base type of this type.ConcreteTypegetConcreteType()gets the concrete type object of the restriction chain.DataTypeWithFacetgetFacetObject(java.lang.String facetName)gets the facet object that restricts the specified facetintgetIdType()A property for RELAX NG DTD compatibility datatypes.java.lang.ClassgetJavaObjectType()gets the type of the objects that are created by the createJavaObject method.intgetVariety()gets the variety of this simple type.booleanisContextDependent()A property for RELAX NG DTD compatibility datatypes.intisFacetApplicable(java.lang.String facetName)returns if the specified facet is applicable to this datatype.booleanisFinal(int derivationType)checks if this type is declared as final for the specified kind of derivation.protected booleanneedValueCheck()java.lang.StringserializeJavaObject(java.lang.Object value, SerializationContext context)converts a value object back to the lexical representation.-
Methods inherited from class com.sun.msv.datatype.xsd.XSDatatypeImpl
_createValue, checkFormat, checkValid, createJavaObject, createStreamingValidator, createValue, getAncestorBuiltinType, getApplicableFacetNames, getName, getNamespaceUri, isAlwaysValid, isDerivedTypeOf, isDerivedTypeOf, isValid, localize, localize, localize, localize, localize, sameValue, valueHashCode
-
-
-
-
Field Detail
-
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 java.lang.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:
- Constant Field Values
-
-
Constructor Detail
-
DataTypeWithFacet
DataTypeWithFacet(java.lang.String nsUri, java.lang.String typeName, XSDatatypeImpl baseType, java.lang.String facetName, boolean _isFixed) throws org.relaxng.datatype.DatatypeExceptionconstructor for facets other than WhiteSpaceFacet- Throws:
org.relaxng.datatype.DatatypeException
-
DataTypeWithFacet
DataTypeWithFacet(java.lang.String nsUri, java.lang.String typeName, XSDatatypeImpl baseType, java.lang.String facetName, boolean _isFixed, WhiteSpaceProcessor whiteSpace) throws org.relaxng.datatype.DatatypeExceptionconstructor for WhiteSpaceFacet- Throws:
org.relaxng.datatype.DatatypeException
-
-
Method Detail
-
getBaseType
public final XSDatatype getBaseType()
Description copied from interface:XSDatatypegets 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:XSDatatypeImplA property for RELAX NG DTD compatibility datatypes. Context-independent by default.- Specified by:
isContextDependentin interfaceorg.relaxng.datatype.Datatype- Overrides:
isContextDependentin classXSDatatypeImpl
-
getIdType
public int getIdType()
Description copied from class:XSDatatypeImplA property for RELAX NG DTD compatibility datatypes.ID_TYPE_NULLis returned by default.- Specified by:
getIdTypein interfaceorg.relaxng.datatype.Datatype- Overrides:
getIdTypein classXSDatatypeImpl
-
displayName
public final java.lang.String displayName()
Description copied from interface:XSDatatypegets 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(java.lang.String facetName)
Description copied from interface:XSDatatypereturns 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:
needValueCheckin classXSDatatypeImpl
-
getFacetObject
public final DataTypeWithFacet getFacetObject(java.lang.String facetName)
Description copied from class:XSDatatypeImplgets the facet object that restricts the specified facet- Specified by:
getFacetObjectin interfaceXSDatatype- Overrides:
getFacetObjectin classXSDatatypeImpl- Returns:
- null if no such facet object exists.
-
getConcreteType
public final ConcreteType getConcreteType()
Description copied from class:XSDatatypeImplgets the concrete type object of the restriction chain.- Specified by:
getConcreteTypein classXSDatatypeImpl
-
getVariety
public final int getVariety()
Description copied from interface:XSDatatypegets 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:XSDatatypechecks 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 java.lang.String convertToLexicalValue(java.lang.Object o, SerializationContext context)Description copied from interface:XSDatatypeconverts 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
DatabindableDatatypemethod.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 java.lang.Class getJavaObjectType()
Description copied from interface:DatabindableDatatypegets the type of the objects that are created by the createJavaObject method.
-
_createJavaObject
public final java.lang.Object _createJavaObject(java.lang.String literal, org.relaxng.datatype.ValidationContext context)- Specified by:
_createJavaObjectin classXSDatatypeImpl
-
serializeJavaObject
public java.lang.String serializeJavaObject(java.lang.Object value, SerializationContext context)Description copied from interface:DatabindableDatatypeconverts a value object back to the lexical representation.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.- Returns:
- null if the given object is invalid with respect to this datatype.
-
_checkValid
protected final void _checkValid(java.lang.String content, org.relaxng.datatype.ValidationContext context) throws org.relaxng.datatype.DatatypeExceptionDescription copied from class:XSDatatypeImplactual 'meat' of the checkValid method- Specified by:
_checkValidin classXSDatatypeImpl- Throws:
org.relaxng.datatype.DatatypeException
-
diagnoseByFacet
protected abstract void diagnoseByFacet(java.lang.String content, org.relaxng.datatype.ValidationContext context) throws org.relaxng.datatype.DatatypeException- Throws:
org.relaxng.datatype.DatatypeException
-
-