|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object | +--com.sun.msv.datatype.xsd.XSDatatypeImpl
base implementaion for XSDatatype interface.
This class should be considered as the implementation-detail, and applications should not access this class.
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 |
Method Summary | |
void |
checkValid(String content,
ValidationContext context)
Similar to the isValid method but throws an exception with diagnosis in case of errors. |
Object |
createJavaObject(String literal,
ValidationContext context)
converts lexcial value to a corresponding Java-friendly object by using the given context information. |
DatatypeStreamingValidator |
createStreamingValidator(ValidationContext context)
Creates an instance of the streaming validator for this type. |
Object |
createValue(String lexicalValue,
ValidationContext context)
Converts lexcial value and the current context to the corresponding value object. |
abstract ConcreteType |
getConcreteType()
gets the concrete type object of the restriction chain. |
DataTypeWithFacet |
getFacetObject(String facetName)
gets the facet object that restricts the specified facet |
String |
getName()
gets the local name of the type. |
boolean |
isDerivedTypeOf(XSDatatype baseType,
boolean restrictionAllowed)
tests if this type is a derived type of the specified type. |
static boolean |
isDerivedTypeOf(XSDatatype base,
XSDatatype derived,
boolean restrictionAllowed)
an implementation of "Type Derivation OK (Simple)" of the spec. |
boolean |
isValid(String literal,
ValidationContext context)
Checks if the specified 'literal' matchs this Datatype under the current context. |
static String |
localize(String prop)
|
static String |
localize(String prop,
Object arg1)
|
static String |
localize(String prop,
Object[] args)
|
static String |
localize(String prop,
Object arg1,
Object arg2)
|
static String |
localize(String prop,
Object arg1,
Object arg2,
Object arg3)
|
boolean |
sameValue(Object o1,
Object o2)
Tests the equality of two value objects which was originally created by the createValue method of this object. |
int |
valueHashCode(Object o)
computes the hash code for a value object, which is consistent with the sameValue method. |
Methods inherited from class java.lang.Object |
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Methods inherited from interface com.sun.msv.datatype.xsd.XSDatatype |
convertToLexicalValue, displayName, getBaseType, getVariety, isFacetApplicable, isFinal |
Methods inherited from interface com.sun.msv.datatype.DatabindableDatatype |
getJavaObjectType, serializeJavaObject |
Field Detail |
public final WhiteSpaceProcessor whiteSpace
public static final String ERR_INAPPROPRIATE_FOR_TYPE
public static final String ERR_TOO_MUCH_PRECISION
public static final String ERR_TOO_MUCH_SCALE
public static final String ERR_ENUMERATION
public static final String ERR_ENUMERATION_WITH_ARG
public static final String ERR_OUT_OF_RANGE
public static final String ERR_LENGTH
public static final String ERR_MINLENGTH
public static final String ERR_MAXLENGTH
public static final String ERR_PATTERN_1
public static final String ERR_PATTERN_MANY
public static final String ERR_INVALID_ITEMTYPE
public static final String ERR_INVALID_MEMBER_TYPE
public static final String ERR_INVALID_BASE_TYPE
public static final String ERR_INVALID_WHITESPACE_VALUE
public static final String ERR_PARSE_ERROR
public static final String ERR_INVALID_VALUE_FOR_THIS_TYPE
public static final String ERR_FACET_MUST_BE_NON_NEGATIVE_INTEGER
public static final String ERR_FACET_MUST_BE_POSITIVE_INTEGER
public static final String ERR_OVERRIDING_FIXED_FACET
public static final String ERR_INCONSISTENT_FACETS_1
public static final String ERR_INCONSISTENT_FACETS_2
public static final String ERR_X_AND_Y_ARE_EXCLUSIVE
public static final String ERR_LOOSENED_FACET
public static final String ERR_SCALE_IS_GREATER_THAN_PRECISION
public static final String ERR_DUPLICATE_FACET
public static final String ERR_NOT_APPLICABLE_FACET
public static final String ERR_EMPTY_UNION
Method Detail |
public String getName()
XSDatatype
In the terminology of the spec, this method returns the name property of this simple type component. If the name property is absent, this method returns null.
getName
in interface XSDatatype
public final Object createValue(String lexicalValue, ValidationContext context)
Datatype
The caller cannot generally assume that the value object is
a meaningful Java object. For example, the caller cannot expect
this method to return java.lang.Number
type for
the "integer" type of XML Schema Part2.
Also, the caller cannot assume that the equals method and
the hashCode method of the value object is consistent with
the semantics of the datatype. For that purpose, the sameValue
method and the valueHashCode method have to be used. Note that
this means you cannot use classes like
java.util.Hashtable
to store the value objects.
The returned value object should be used solely for the sameValue method.
createValue
in interface Datatype
org.relaxng.datatype.Datatype
public final void checkValid(String content, ValidationContext context) throws DatatypeException
Datatype
If the specified 'literal' is a valid lexical representation for this datatype, then this method must return without throwing any exception. If not, the callee must throw an exception (with diagnosis message, if possible.)
The application can use this method to provide detailed error message to users. This method is kept separate from the isValid method to achieve higher performance during normal validation.
checkValid
in interface Datatype
org.relaxng.datatype.Datatype
DatatypeException
- If the given literal is invalid, then this exception is thrown.
If the callee supports error diagnosis, then the exception should
contain a diagnosis message.public final Object createJavaObject(String literal, ValidationContext context)
DatabindableDatatype
For the actual types returned by each type, see here.
Note that due to the difference between those Java friendly types
and actual XML Schema specification, the returned object sometimes
loses accuracy. For example, the "time" type allows "0.0000000000001 sec"
which cannot be represented in java.util.Calendar
class.
createJavaObject
in interface DatabindableDatatype
com.sun.msv.datatype.DatabindableDatatype
public final boolean isValid(String literal, ValidationContext context)
Datatype
isValid
in interface Datatype
org.relaxng.datatype.Datatype
literal
- the lexical representation to be checked.context
- context information that may be
necessary to validate the given literal.public DatatypeStreamingValidator createStreamingValidator(ValidationContext context)
Datatype
By using streaming validators instead of the isValid method, the caller can avoid keeping the entire string into the memory, which is sometimes quite big.
createStreamingValidator
in interface Datatype
org.relaxng.datatype.Datatype
context
- context information that may be
necessary to validate the given literal.
The callee may keep a reference to this context object
only while the returned streaming validator is being used.UnsupportedOperationException
- if the streaming validation is not supported by the callee.public DataTypeWithFacet getFacetObject(String facetName)
getFacetObject
in interface XSDatatype
public abstract ConcreteType getConcreteType()
public final boolean sameValue(Object o1, Object o2)
Datatype
sameValue
in interface Datatype
org.relaxng.datatype.Datatype
public final int valueHashCode(Object o)
Datatype
valueHashCode
in interface Datatype
org.relaxng.datatype.Datatype
public final boolean isDerivedTypeOf(XSDatatype baseType, boolean restrictionAllowed)
XSDatatype
This method is an implementation of "Type Derivation OK (Simple)" of the spec. Therefore use caution if what you want is a casual method because this method may cause a lot of unintuitive result.
Note to implementors Use the static version of this method defined in the XSDatatypeImpl class. You don't need to implement this method from scratch.
isDerivedTypeOf
in interface XSDatatype
com.sun.msv.datatype.xsd.XSDatatype
restrictionAllowed
- This test needs "a subset of {extension,restriction,list,union}
(of which only restriction is actually relevant). If this flag is
set to true, this method behaves as if the empty set is passed as the set.
This is usually what you want if you're simply trying to check the
derivation relationship.
If this flag is set to false, this method behaves as if {restriction} is passed as the set.
public static boolean isDerivedTypeOf(XSDatatype base, XSDatatype derived, boolean restrictionAllowed)
isDerivedTypeOf(XSDatatype,boolean)
public static String localize(String prop, Object[] args)
public static String localize(String prop)
public static String localize(String prop, Object arg1)
public static String localize(String prop, Object arg1, Object arg2)
public static String localize(String prop, Object arg1, Object arg2, Object arg3)
|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |