ankitp      2004/12/07 07:07:14

  Modified:    java/src/org/apache/xerces/impl/dv/xs
                        AbstractDateTimeDV.java XSSimpleTypeDecl.java
  Log:
  - expose timezone info
  - access to enumeration type info
  
  Revision  Changes    Path
  1.24      +13 -1     
xml-xerces/java/src/org/apache/xerces/impl/dv/xs/AbstractDateTimeDV.java
  
  Index: AbstractDateTimeDV.java
  ===================================================================
  RCS file: 
/home/cvs/xml-xerces/java/src/org/apache/xerces/impl/dv/xs/AbstractDateTimeDV.java,v
  retrieving revision 1.23
  retrieving revision 1.24
  diff -u -r1.23 -r1.24
  --- AbstractDateTimeDV.java   29 Nov 2004 18:21:45 -0000      1.23
  +++ AbstractDateTimeDV.java   7 Dec 2004 15:07:13 -0000       1.24
  @@ -872,5 +872,17 @@
           public boolean hasTimeZone() {
               return utc != 0;
           }
  +        /* (non-Javadoc)
  +         * @see org.apache.xerces.xs.datatypes.XSDateTime#getTimeZoneHr()
  +         */
  +        public int getTimeZoneHr() {
  +             return timezoneHr;
  +        }
  +        /* (non-Javadoc)
  +         * @see org.apache.xerces.xs.datatypes.XSDateTime#getTimeZoneMin()
  +         */
  +        public int getTimeZoneMin() {
  +             return timezoneMin;
  +        }
       }
   }
  
  
  
  1.60      +42 -3     
xml-xerces/java/src/org/apache/xerces/impl/dv/xs/XSSimpleTypeDecl.java
  
  Index: XSSimpleTypeDecl.java
  ===================================================================
  RCS file: 
/home/cvs/xml-xerces/java/src/org/apache/xerces/impl/dv/xs/XSSimpleTypeDecl.java,v
  retrieving revision 1.59
  retrieving revision 1.60
  diff -u -r1.59 -r1.60
  --- XSSimpleTypeDecl.java     8 Oct 2004 15:49:46 -0000       1.59
  +++ XSSimpleTypeDecl.java     7 Dec 2004 15:07:13 -0000       1.60
  @@ -34,7 +34,7 @@
   import org.apache.xerces.impl.xs.util.XSObjectListImpl;
   import org.apache.xerces.util.XMLChar;
   import org.apache.xerces.xni.NamespaceContext;
  -import org.apache.xerces.xs.datatypes.ObjectList;
  +import org.apache.xerces.xs.ShortList;
   import org.apache.xerces.xs.StringList;
   import org.apache.xerces.xs.XSAnnotation;
   import org.apache.xerces.xs.XSConstants;
  @@ -44,6 +44,7 @@
   import org.apache.xerces.xs.XSObjectList;
   import org.apache.xerces.xs.XSSimpleTypeDefinition;
   import org.apache.xerces.xs.XSTypeDefinition;
  +import org.apache.xerces.xs.datatypes.ObjectList;
   
   /**
    * @xerces.internal
  @@ -243,6 +244,8 @@
       private Vector fPattern;
       private Vector fPatternStr;
       private Vector fEnumeration;
  +    private short[] fEnumerationType;
  +     private ShortList fEnumerationTypeList;
       private StringList fLexicalPattern;
       private StringList fLexicalEnumeration;
       private ObjectList fActualEnumeration;
  @@ -351,6 +354,7 @@
           fPattern = fBase.fPattern;
           fPatternStr = fBase.fPatternStr;
           fEnumeration = fBase.fEnumeration;
  +        fEnumerationType = fBase.fEnumerationType;
           fWhiteSpace = fBase.fWhiteSpace;
           fMaxExclusive = fBase.fMaxExclusive;
           fMaxInclusive = fBase.fMaxInclusive;
  @@ -455,6 +459,7 @@
           fPattern = fBase.fPattern;
           fPatternStr = fBase.fPatternStr;
           fEnumeration = fBase.fEnumeration;
  +        fEnumerationType = fBase.fEnumerationType;
           fWhiteSpace = fBase.fWhiteSpace;
           fMaxExclusive = fBase.fMaxExclusive;
           fMaxInclusive = fBase.fMaxInclusive;
  @@ -787,6 +792,7 @@
               } else {
                   fEnumeration = new Vector();
                   Vector enumVals = facets.enumeration;
  +                fEnumerationType = new short[enumVals.size()];
                   Vector enumNSDecls = facets.enumNSDecls;
                   ValidationContextImpl ctx = new 
ValidationContextImpl(context);
                   enumerationAnnotations = facets.enumAnnotations;
  @@ -794,8 +800,10 @@
                       if (enumNSDecls != null)
                           
ctx.setNSContext((NamespaceContext)enumNSDecls.elementAt(i));
                       try {
  +                     ValidatedInfo info = 
this.fBase.validateWithInfo((String)enumVals.elementAt(i), ctx, tempInfo);
                           // check 4.3.5.c0 must: enumeration values from the 
value space of base
  -                        
fEnumeration.addElement(this.fBase.validate((String)enumVals.elementAt(i), ctx, 
tempInfo));
  +                        fEnumeration.addElement(info.actualValue);
  +                        fEnumerationType[i] = info.actualValueType;
                       } catch (InvalidDatatypeValueException ide) {
                           reportError("enumeration-valid-restriction", new 
Object[]{enumVals.elementAt(i), this.getBaseType().getName()});
                       }
  @@ -1470,6 +1478,29 @@
           return ob;
   
       }
  +    
  +    /**
  +     * validate a value, and return the compiled form
  +     */
  +    public ValidatedInfo validateWithInfo(String content, ValidationContext 
context, ValidatedInfo validatedInfo) throws InvalidDatatypeValueException {
  +
  +        if (context == null)
  +            context = fEmptyContext;
  +
  +        if (validatedInfo == null)
  +            validatedInfo = new ValidatedInfo();
  +        else
  +            validatedInfo.memberType = null;
  +
  +        // first normalize string value, and convert it to actual value
  +        boolean needNormalize = context==null||context.needToNormalize();
  +        getActualValue(content, context, validatedInfo, needNormalize);
  +
  +        validate(context, validatedInfo);
  +
  +        return validatedInfo;
  +
  +    }
   
       /**
        * validate a value, and return the compiled form
  @@ -2079,6 +2110,13 @@
           }
           return fActualEnumeration;
       }
  +    
  +    public ShortList getEnumerationTypeList() {
  +        if (fEnumerationTypeList == null) {
  +            fEnumerationTypeList = new ShortListImpl (fEnumerationType, 
fEnumerationType.length);
  +        }
  +        return fEnumerationTypeList;
  +    }
   
       /**
        * A list of pattern values if it exists, otherwise an empty
  @@ -2718,6 +2756,7 @@
           fPattern = null;
           fPatternStr = null;
           fEnumeration = null;
  +        fEnumerationType = null;
           fLexicalPattern = null;
           fLexicalEnumeration = null;
           fMaxInclusive = null;
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to