FileDocCategorySizeDatePackage
ValidatedInfo.javaAPI DocApache Xerces 3.0.15850Fri Sep 14 20:33:54 BST 2007org.apache.xerces.impl.dv

ValidatedInfo

public class ValidatedInfo extends Object
Class to get the information back after content is validated. This info would be filled by validate().
xerces.internal
author
Neeraj Bajaj, Sun Microsystems, inc.
version
$Id: ValidatedInfo.java 446751 2006-09-15 21:54:06Z mrglavas $

Fields Summary
public String
normalizedValue
The normalized value of a string value
public Object
actualValue
The actual value from a string value (QName, Boolean, etc.) An array of Objects if the type is a list.
public short
actualValueType
The type of the actual value. It's one of the _DT constants defined in XSConstants.java. The value is used to indicate the most specific built-in type. (i.e. short instead of decimal or integer).
public XSSimpleType
memberType
If the type is a union type, then the member type which actually validated the string value.
public XSSimpleType[]
memberTypes
If 1. the type is a union type where one of the member types is a list, or if the type is a list; and 2. the item type of the list is a union type then an array of member types used to validate the values.
public org.apache.xerces.xs.ShortList
itemValueTypes
In the case the value is a list or a list of unions, this value indicates the type(s) of the items in the list. For a normal list, the length of the array is 1; for list of unions, the length of the array is the same as the length of the list.
Constructors Summary
Methods Summary
private static shortconvertToPrimitiveKind(short valueType)
Returns the primitive type of the given type.

param
valueType A value type as defined in XSConstants.
return
The primitive type from which valueType was derived.

        /** Primitive datatypes. */
        if (valueType <= XSConstants.NOTATION_DT) {
            return valueType;
        }
        /** Types derived from string. */
        if (valueType <= XSConstants.ENTITY_DT) {
            return XSConstants.STRING_DT;
        }
        /** Types derived from decimal. */
        if (valueType <= XSConstants.POSITIVEINTEGER_DT) {
            return XSConstants.DECIMAL_DT;
        }
        /** Other types. */
        return valueType;
    
public static booleanisComparable(org.apache.xerces.impl.dv.ValidatedInfo info1, org.apache.xerces.impl.dv.ValidatedInfo info2)
Returns true if the two ValidatedInfo objects can be compared in the same value space.

        final short primitiveType1 = convertToPrimitiveKind(info1.actualValueType);
        final short primitiveType2 = convertToPrimitiveKind(info2.actualValueType);
        if (primitiveType1 != primitiveType2) {    
            return (primitiveType1 == XSConstants.ANYSIMPLETYPE_DT && primitiveType2 == XSConstants.STRING_DT ||
                    primitiveType1 == XSConstants.STRING_DT && primitiveType2 == XSConstants.ANYSIMPLETYPE_DT);
        }
        else if (primitiveType1 == XSConstants.LIST_DT || primitiveType1 == XSConstants.LISTOFUNION_DT) {
            final ShortList typeList1 = info1.itemValueTypes;
            final ShortList typeList2 = info2.itemValueTypes;
            final int typeList1Length = typeList1 != null ? typeList1.getLength() : 0;
            final int typeList2Length = typeList2 != null ? typeList2.getLength() : 0;
            if (typeList1Length != typeList2Length) {
                return false;
            }
            for (int i = 0; i < typeList1Length; ++i) {
                final short primitiveItem1 = convertToPrimitiveKind(typeList1.item(i));
                final short primitiveItem2 = convertToPrimitiveKind(typeList2.item(i));
                if (primitiveItem1 != primitiveItem2) {
                    if (primitiveItem1 == XSConstants.ANYSIMPLETYPE_DT && primitiveItem2 == XSConstants.STRING_DT ||
                        primitiveItem1 == XSConstants.STRING_DT && primitiveItem2 == XSConstants.ANYSIMPLETYPE_DT) {
                        continue;
                    }
                    return false;
                }
            }
        }
        return true;
    
public voidreset()
reset the state of this object

        this.normalizedValue = null;
        this.actualValue = null;
        this.memberType = null;
        this.memberTypes = null;
    
public java.lang.StringstringValue()
Return a string representation of the value. If there is an actual value, use toString; otherwise, use the normalized value.

        if (actualValue == null)
            return normalizedValue;
        else
            return actualValue.toString();