sandygao    2002/11/04 10:36:18

  Modified:    java/src/org/apache/xerces/impl/dv/xs XSSimpleTypeDecl.java
  Log:
  Performance: for list types, after tokenize the input string, we don't need to
  normalize each item, because there won't be any whitespace in there.
  
  Revision  Changes    Path
  1.22      +15 -11    
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.21
  retrieving revision 1.22
  diff -u -r1.21 -r1.22
  --- XSSimpleTypeDecl.java     31 Oct 2002 23:25:00 -0000      1.21
  +++ XSSimpleTypeDecl.java     4 Nov 2002 18:36:18 -0000       1.22
  @@ -725,7 +725,7 @@
                   reportError("cos-applicable-facets", new Object[]{"maxInclusive"});
               } else {
                   try {
  -                    fMaxInclusive = getActualValue(facets.maxInclusive, context, 
tempInfo);
  +                    fMaxInclusive = getActualValue(facets.maxInclusive, context, 
tempInfo, true);
                       fFacetsDefined |= FACET_MAXINCLUSIVE;
                       if ((fixedFacet & FACET_MAXINCLUSIVE) != 0)
                           fFixedFacet |= FACET_MAXINCLUSIVE;
  @@ -759,7 +759,7 @@
                   reportError("cos-applicable-facets", new Object[]{"maxExclusive"});
               } else {
                   try {
  -                    fMaxExclusive = getActualValue(facets.maxExclusive, context, 
tempInfo);
  +                    fMaxExclusive = getActualValue(facets.maxExclusive, context, 
tempInfo, true);
                       fFacetsDefined |= FACET_MAXEXCLUSIVE;
                       if ((fixedFacet & FACET_MAXEXCLUSIVE) != 0)
                           fFixedFacet |= FACET_MAXEXCLUSIVE;
  @@ -792,7 +792,7 @@
                   reportError("cos-applicable-facets", new Object[]{"minExclusive"});
               } else {
                   try {
  -                    fMinExclusive = getActualValue(facets.minExclusive, context, 
tempInfo);
  +                    fMinExclusive = getActualValue(facets.minExclusive, context, 
tempInfo, true);
                       fFacetsDefined |= FACET_MINEXCLUSIVE;
                       if ((fixedFacet & FACET_MINEXCLUSIVE) != 0)
                           fFixedFacet |= FACET_MINEXCLUSIVE;
  @@ -825,7 +825,7 @@
                   reportError("cos-applicable-facets", new Object[]{"minInclusive"});
               } else {
                   try {
  -                    fMinInclusive = getActualValue(facets.minInclusive, context, 
tempInfo);
  +                    fMinInclusive = getActualValue(facets.minInclusive, context, 
tempInfo, true);
                       fFacetsDefined |= FACET_MININCLUSIVE;
                       if ((fixedFacet & FACET_MININCLUSIVE) != 0)
                           fFixedFacet |= FACET_MININCLUSIVE;
  @@ -1271,7 +1271,8 @@
               validatedInfo = new ValidatedInfo();
   
           // first normalize string value, and convert it to actual value
  -        Object ob = getActualValue(content, context, validatedInfo);
  +        boolean needNormalize = context==null||context.needToNormalize();
  +        Object ob = getActualValue(content, context, validatedInfo, needNormalize);
   
           validate(context, validatedInfo);
   
  @@ -1291,7 +1292,8 @@
               validatedInfo = new ValidatedInfo();
   
           // first normalize string value, and convert it to actual value
  -        Object ob = getActualValue(content, context, validatedInfo);
  +        boolean needNormalize = context==null||context.needToNormalize();
  +        Object ob = getActualValue(content, context, validatedInfo, needNormalize);
   
           validate(context, validatedInfo);
   
  @@ -1466,10 +1468,12 @@
       }// checkExtraRules()
   
       //we can still return object for internal use.
  -    private Object getActualValue(Object content, ValidationContext context, 
ValidatedInfo validatedInfo) throws InvalidDatatypeValueException{
  +    private Object getActualValue(Object content, ValidationContext context,
  +                                  ValidatedInfo validatedInfo, boolean 
needNormalize)
  +            throws InvalidDatatypeValueException{
   
           String nvalue; 
  -        if (context==null ||context.needToNormalize()) {
  +        if (needNormalize) {
               nvalue = normalize(content, fWhiteSpace);
           } else {
               nvalue = content.toString();
  @@ -1535,7 +1539,7 @@
                   // so we take two steps to get the actual value:
                   // 1. fItemType.getActualValue()
                   // 2. fItemType.chekcFacets()
  -                avalue[i] = fItemType.getActualValue(parsedList.nextToken(), 
context, validatedInfo);
  +                avalue[i] = fItemType.getActualValue(parsedList.nextToken(), 
context, validatedInfo, false);
                   if (context.needFacetChecking() &&
                       (fItemType.fFacetsDefined != 0 && fItemType.fFacetsDefined != 
FACET_WHITESPACE)) {
                       fItemType.checkFacets(validatedInfo);
  @@ -1559,7 +1563,7 @@
                       // so we take two steps to get the actual value:
                       // 1. fMemberType[i].getActualValue()
                       // 2. fMemberType[i].chekcFacets()
  -                    Object aValue = fMemberTypes[i].getActualValue(content, 
context, validatedInfo);
  +                    Object aValue = fMemberTypes[i].getActualValue(content, 
context, validatedInfo, true);
                       if (context.needFacetChecking() &&
                           (fMemberTypes[i].fFacetsDefined != 0 && 
fMemberTypes[i].fFacetsDefined != FACET_WHITESPACE)) {
                           fMemberTypes[i].checkFacets(validatedInfo);
  
  
  

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

Reply via email to