You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@xerces.apache.org by ne...@apache.org on 2001/10/01 23:02:14 UTC

cvs commit: xml-xerces/java/src/org/apache/xerces/impl/v2/new-datatypes AbstractStringDV.java Base64BinaryDV.java HexBinaryDV.java QNameDV.java StringDV.java

neilg       01/10/01 14:02:14

  Added:       java/src/org/apache/xerces/impl/v2/new-datatypes
                        AbstractStringDV.java Base64BinaryDV.java
                        HexBinaryDV.java QNameDV.java StringDV.java
  Log:
  initial code for new datatype design, as contributed by Neeraj Bajaj <ne...@sun.com>.
  
  Revision  Changes    Path
  1.1                  xml-xerces/java/src/org/apache/xerces/impl/v2/new-datatypes/AbstractStringDV.java
  
  Index: AbstractStringDV.java
  ===================================================================
  /*
   * The Apache Software License, Version 1.1
   *
   *
   * Copyright (c) 2001 The Apache Software Foundation.  All rights
   * reserved.
   *
   * Redistribution and use in source and binary forms, with or without
   * modification, are permitted provided that the following conditions
   * are met:
   *
   * 1. Redistributions of source code must retain the above copyright
   *    notice, this list of conditions and the following disclaimer.
   *
   * 2. Redistributions in binary form must reproduce the above copyright
   *    notice, this list of conditions and the following disclaimer in
   *    the documentation and/or other materials provided with the
   *    distribution.
   *
   * 3. The end-user documentation included with the redistribution,
   *    if any, must include the following acknowledgment:
   *       "This product includes software developed by the
   *        Apache Software Foundation (http://www.apache.org/)."
   *    Alternately, this acknowledgment may appear in the software itself,
   *    if and wherever such third-party acknowledgments normally appear.
   *
   * 4. The names "Xerces" and "Apache Software Foundation" must
   *    not be used to endorse or promote products derived from this
   *    software without prior written permission. For written
   *    permission, please contact apache@apache.org.
   *
   * 5. Products derived from this software may not be called "Apache",
   *    nor may "Apache" appear in their name, without prior written
   *    permission of the Apache Software Foundation.
   *
   * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
   * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
   * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
   * DISCLAIMED.  IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
   * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
   * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
   * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
   * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
   * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
   * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
   * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
   * SUCH DAMAGE.
   * ====================================================================
   *
   * This software consists of voluntary contributions made by many
   * individuals on behalf of the Apache Software Foundation and was
   * originally based on software copyright (c) 2001, International
   * Business Machines, Inc., http://www.apache.org.  For more
   * information on the Apache Software Foundation, please see
   * <http://www.apache.org/>.
   */
  
  package org.apache.xerces.impl.v2.new-datatype;
  
  import java.util.Locale;
  /**
   * @version $Id: AbstractStringDV.java,v 1.1 2001/10/01 21:02:14 neilg Exp $
   */
  public abstract class AbstractStringDV implements TypeValidator{
  
      protected DatatypeMessageProvider fMessageProvider = new DatatypeMessageProvider();
      protected Locale fLocale = null;
  
  
      // for most DV classes, this is the same as the DV_?? value defined
      // in XSSimpleTypeDecl that's corresponding to that class. But for
      // ID/IDREF/ENTITY, the privitivaDV is DV_STRING.
  
      public abstract short getPrimitiveDV();
  
  
       // return the facets allowed ; string, hexBinary, base64Binary, anyURI, Qname, Notation all have same set of factes allowed.
      public short getAllowedFacets(){
          return (XSSimpleTypeDecl.DEFINED_LENGTH | XSSimpleTypeDecl.DEFINED_MINLENGTH | XSSimpleTypeDecl.DEFINED_MAXLENGTH | XSSimpleTypeDecl.DEFINED_PATTERN | XSSimpleTypeDecl.DEFINED_ENUMERATION | XSSimpleTypeDecl.DEFINED_WHITESPACE );
      }
  
      // convert a string to a compiled form. for example,
      // for number types (decimal, double, float, and types derived from them),
      // get the BigDecimal, Double, Flout object.
      // for some types (string and derived), they just return the string itself
      public Object getCompiledValue(String content) throws InvalidDatatypeValueException{
          return content;
      }
  
  
      // the parameters are in compiled form (from getCompiledValue)
      public boolean isEqual(Object value1, Object value2){
          return ((String)value1).equals((String)value2);
      }
  
      // the following methods might not be supported by every DV.
      // but XSSimpleTypeDecl should know which type supports which methods,
      // and it's an *internal* error if a method is called on a DV that
      // doesn't support it.
  
  
      public abstract int compare(Object value1, Object value2);
  
  
      // the parameters are in compiled form (from getCompiledValue)
      public int getDataLength(Object value){
          return ((String)value).length() ;
      }
  
      // the parameters are in compiled form (from getCompiledValue)
      public int getTotalDigits(Object value){
          return -1;
      }
  
      // the parameters are in compiled form (from getCompiledValue)
      public int getFractionDigits(Object value){
          return -1;
      }
  
      protected String getErrorString(String key, Object args[]) {
          try {
              return fMessageProvider.formatMessage(fLocale, key, args);
          }
          catch ( Exception e ) {
              return "Illegal Errorcode "+key;
          }
      }
  
      /**
       * set the locate to be used for error messages
       */
      public void setLocale(Locale locale) {
          fLocale = locale;
      }
  
  
  } // class AbstractStringDV
  
  
  
  1.1                  xml-xerces/java/src/org/apache/xerces/impl/v2/new-datatypes/Base64BinaryDV.java
  
  Index: Base64BinaryDV.java
  ===================================================================
  /*
   * The Apache Software License, Version 1.1
   *
   *
   * Copyright (c) 2001 The Apache Software Foundation.  All rights
   * reserved.
   *
   * Redistribution and use in source and binary forms, with or without
   * modification, are permitted provided that the following conditions
   * are met:
   *
   * 1. Redistributions of source code must retain the above copyright
   *    notice, this list of conditions and the following disclaimer.
   *
   * 2. Redistributions in binary form must reproduce the above copyright
   *    notice, this list of conditions and the following disclaimer in
   *    the documentation and/or other materials provided with the
   *    distribution.
   *
   * 3. The end-user documentation included with the redistribution,
   *    if any, must include the following acknowledgment:
   *       "This product includes software developed by the
   *        Apache Software Foundation (http://www.apache.org/)."
   *    Alternately, this acknowledgment may appear in the software itself,
   *    if and wherever such third-party acknowledgments normally appear.
   *
   * 4. The names "Xerces" and "Apache Software Foundation" must
   *    not be used to endorse or promote products derived from this
   *    software without prior written permission. For written
   *    permission, please contact apache@apache.org.
   *
   * 5. Products derived from this software may not be called "Apache",
   *    nor may "Apache" appear in their name, without prior written
   *    permission of the Apache Software Foundation.
   *
   * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
   * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
   * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
   * DISCLAIMED.  IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
   * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
   * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
   * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
   * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
   * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
   * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
   * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
   * SUCH DAMAGE.
   * ====================================================================
   *
   * This software consists of voluntary contributions made by many
   * individuals on behalf of the Apache Software Foundation and was
   * originally based on software copyright (c) 2001, International
   * Business Machines, Inc., http://www.apache.org.  For more
   * information on the Apache Software Foundation, please see
   * <http://www.apache.org/>.
   */
  
  package org.apache.xerces.impl.v2.new-datatypes;
  
  //internal imports
  import org.apache.xerces.impl.v2.util.Base64;
  
  //java imports
  import java.io.UnsupportedEncodingException;
  /**
   * @version $Id: Base64BinaryDV.java,v 1.1 2001/10/01 21:02:14 neilg Exp $
   */
  public class Base64BinaryDV extends AbstractStringDV{
  
      // for most DV classes, this is the same as the DV_?? value defined
      // in XSSimpleTypeDecl that's corresponding to that class. But for
      // ID/IDREF/ENTITY, the privitivaDV is DV_STRING.
  
      public short getPrimitiveDV(){
          return XSSimpleTypeDecl.DV_BASE64BINARY;
      }
  
      // convert a string to a compiled form. for example,
      // for number types (decimal, double, float, and types derived from them),
      // get the BigDecimal, Double, Flout object.
      // for some types (string and derived), they just return the string itself
      public Object getCompiledValue(String content) throws InvalidDatatypeValueException{
          if (getDataLength(content) < 0) {
              throw new InvalidDatatypeValueException( "Value '"+content+"' is not encoded in Hex" );
          }
          return content;
      }
  
  
      // the parameters are in compiled form (from getCompiledValue)
      public boolean isEqual(Object value1, Object value2){
  
          return compare(value1,value2) == 0 ? true : false;
  
      }//isEqual()
  
      // the following methods might not be supported by every DV.
      // but XSSimpleTypeDecl should know which type supports which methods,
      // and it's an *internal* error if a method is called on a DV that
      // doesn't support it.
  
      //compiled value is string in this case ,as we return string for all derived by string.
      public  int compare(Object value1, Object value2){
  
          String str1 = (String)value1;
          String str2 = (String)value2;
  
          if (str1 == null || str2 == null)
              return -1;
  
          if (str1 == str2 || str1.equals(str2))
              return 0;
  
          byte[] data1= Base64.decode(str1.getBytes());
          byte[] data2= Base64.decode(str2.getBytes());
  
          if (data1 == null || data2 == null)
              return -1;
  
          for (int i = 0; i < Math.min(data1.length, data2.length); i++){
              if (data1[i] < data2[i])
                  return -1;
              else if (data1[i] > data2[i])
                  return 1;
          }
  
          if (data1.length == data2.length)
              return 0;
  
          return data1.length > data2.length ? 1 : -1;
  
      }//compare()
  
  
      //compiled value is string in this case ,as we return string for all derived by string.
      //for base64 length is measured in octets of binary data.
      public int getDataLength(Object value){
          int x = -1;
          String content = (String)value;
          try {
              x = Base64.getDecodedDataLength(content.getBytes("utf-8"));
          }
          catch (UnsupportedEncodingException e) {
          }
          finally {
              return x;
          }
      }//getDataLength()
  
  
  } // class Base64BinaryDV
  
  
  
  1.1                  xml-xerces/java/src/org/apache/xerces/impl/v2/new-datatypes/HexBinaryDV.java
  
  Index: HexBinaryDV.java
  ===================================================================
  /*
   * The Apache Software License, Version 1.1
   *
   *
   * Copyright (c) 2001 The Apache Software Foundation.  All rights
   * reserved.
   *
   * Redistribution and use in source and binary forms, with or without
   * modification, are permitted provided that the following conditions
   * are met:
   *
   * 1. Redistributions of source code must retain the above copyright
   *    notice, this list of conditions and the following disclaimer.
   *
   * 2. Redistributions in binary form must reproduce the above copyright
   *    notice, this list of conditions and the following disclaimer in
   *    the documentation and/or other materials provided with the
   *    distribution.
   *
   * 3. The end-user documentation included with the redistribution,
   *    if any, must include the following acknowledgment:
   *       "This product includes software developed by the
   *        Apache Software Foundation (http://www.apache.org/)."
   *    Alternately, this acknowledgment may appear in the software itself,
   *    if and wherever such third-party acknowledgments normally appear.
   *
   * 4. The names "Xerces" and "Apache Software Foundation" must
   *    not be used to endorse or promote products derived from this
   *    software without prior written permission. For written
   *    permission, please contact apache@apache.org.
   *
   * 5. Products derived from this software may not be called "Apache",
   *    nor may "Apache" appear in their name, without prior written
   *    permission of the Apache Software Foundation.
   *
   * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
   * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
   * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
   * DISCLAIMED.  IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
   * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
   * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
   * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
   * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
   * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
   * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
   * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
   * SUCH DAMAGE.
   * ====================================================================
   *
   * This software consists of voluntary contributions made by many
   * individuals on behalf of the Apache Software Foundation and was
   * originally based on software copyright (c) 2001, International
   * Business Machines, Inc., http://www.apache.org.  For more
   * information on the Apache Software Foundation, please see
   * <http://www.apache.org/>.
   */
  
  package org.apache.xerces.impl.v2.new-datatypes;
  
  //internal imports
  import org.apache.xerces.impl.v2.util.HexBin;
  
  //java imports
  import java.io.UnsupportedEncodingException;
  
  /**
   * @version $Id: HexBinaryDV.java,v 1.1 2001/10/01 21:02:14 neilg Exp $
   */
  public class HexBinaryDV extends AbstractStringDV{
  
      // for most DV classes, this is the same as the DV_?? value defined
      // in XSSimpleTypeDecl that's corresponding to that class. But for
      // ID/IDREF/ENTITY, the privitivaDV is DV_STRING.
  
      public short getPrimitiveDV(){
          return XSSimpleTypeDecl.DV_HEXBINARY;
      }
  
      // convert a string to a compiled form. for example,
      // for number types (decimal, double, float, and types derived from them),
      // get the BigDecimal, Double, Flout object.
      // for some types (string and derived), they just return the string itself
      public Object getCompiledValue(String content) throws InvalidDatatypeValueException{
          if (getDataLength(content) < 0) {
              throw new InvalidDatatypeValueException( "Value '"+content+"' is not encoded in Hex" );
          }
          return content;
      }
  
  
      // the parameters are in compiled form (from getCompiledValue)
      public boolean isEqual(Object value1, Object value2){
  
          return compare(value1,value2) == 0 ? true : false;
  
      }//isEqual()
  
      // the following methods might not be supported by every DV.
      // but XSSimpleTypeDecl should know which type supports which methods,
      // and it's an *internal* error if a method is called on a DV that
      // doesn't support it.
  
      //compiled value is string in this case ,as we return string for all derived by string.
      public  int compare(Object value1, Object value2){
  
          String str1 = (String)value1;
          String str2 = (String)value2;
  
          if (str1 == null || str2 == null)
              return -1;
  
          if (str1 == str2 || str1.equals(str2))
              return 0;
  
          byte[] data1=HexBin.decode(str1.getBytes());
          byte[] data2=HexBin.decode(str2.getBytes());
  
          if (data1 == null || data2 == null)
              return -1;
  
          for (int i = 0; i < Math.min(data1.length, data2.length); i++){
              if (data1[i] < data2[i])
                  return -1;
              else if (data1[i] > data2[i])
                  return 1;
          }
  
          if (data1.length == data2.length)
              return 0;
  
          return data1.length > data2.length ? 1 : -1;
  
      }//compare()
  
  
      //compiled value is string in this case ,as we return string for all derived by string.
      //for hex bin length is measured in octets of binary data.
      public int getDataLength(Object value){
          int x = -1;
          String content = (String)value;
          try {
              x = HexBin.getDecodedDataLength(content.getBytes("utf-8"));
          }
          catch (UnsupportedEncodingException e) {
          }
          finally {
              return x;
          }
      }//getDataLength()
  
  
  } // class AbstractStringDV
  
  
  
  1.1                  xml-xerces/java/src/org/apache/xerces/impl/v2/new-datatypes/QNameDV.java
  
  Index: QNameDV.java
  ===================================================================
  /*
   * The Apache Software License, Version 1.1
   *
   *
   * Copyright (c) 2001 The Apache Software Foundation.  All rights
   * reserved.
   *
   * Redistribution and use in source and binary forms, with or without
   * modification, are permitted provided that the following conditions
   * are met:
   *
   * 1. Redistributions of source code must retain the above copyright
   *    notice, this list of conditions and the following disclaimer.
   *
   * 2. Redistributions in binary form must reproduce the above copyright
   *    notice, this list of conditions and the following disclaimer in
   *    the documentation and/or other materials provided with the
   *    distribution.
   *
   * 3. The end-user documentation included with the redistribution,
   *    if any, must include the following acknowledgment:
   *       "This product includes software developed by the
   *        Apache Software Foundation (http://www.apache.org/)."
   *    Alternately, this acknowledgment may appear in the software itself,
   *    if and wherever such third-party acknowledgments normally appear.
   *
   * 4. The names "Xerces" and "Apache Software Foundation" must
   *    not be used to endorse or promote products derived from this
   *    software without prior written permission. For written
   *    permission, please contact apache@apache.org.
   *
   * 5. Products derived from this software may not be called "Apache",
   *    nor may "Apache" appear in their name, without prior written
   *    permission of the Apache Software Foundation.
   *
   * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
   * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
   * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
   * DISCLAIMED.  IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
   * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
   * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
   * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
   * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
   * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
   * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
   * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
   * SUCH DAMAGE.
   * ====================================================================
   *
   * This software consists of voluntary contributions made by many
   * individuals on behalf of the Apache Software Foundation and was
   * originally based on software copyright (c) 2001, International
   * Business Machines, Inc., http://www.apache.org.  For more
   * information on the Apache Software Foundation, please see
   * <http://www.apache.org/>.
   */
  
  package org.apache.xerces.impl.v2.new-datatypes;
  
  //internal imports
  import org.apache.xerces.util.XMLChar;
  
  import java.util.Locale;
  import java.text.Collator;
  
  /**
   * @version $Id: QNameDV.java,v 1.1 2001/10/01 21:02:14 neilg Exp $
   */
  public  class QNameDV extends AbstractStringDV{
  
      protected DatatypeMessageProvider fMessageProvider = new DatatypeMessageProvider();
      protected Locale fLocale = null;
  
  
      // for most DV classes, this is the same as the DV_?? value defined
      // in XSSimpleTypeDecl that's corresponding to that class. But for
      // ID/IDREF/ENTITY, the privitivaDV is DV_STRING.
  
      public short getPrimitiveDV(){
          return XSSimpleTypeDecl.DV_QNAME;
      }
  
  
      // convert a string to a compiled form. for example,
      // for number types (decimal, double, float, and types derived from them),
      // get the BigDecimal, Double, Flout object.
      // for some types (string and derived), they just return the string itself
      public Object getCompiledValue(String content) throws InvalidDatatypeValueException{
          //NCNames check should be done here.
          boolean NCName = false;
          int posColon = content.indexOf(':');
          if (posColon >= 0){
              if( !XMLChar.isValidNCName(content.substring(0,posColon)) ||
                  !XMLChar.isValidNCName(content.substring(posColon+1))){
                  NCName = false;
              }
          }
          if(!NCName)
              throw new InvalidDatatypeValueException("Value '"+content+"' is not a valid QName");
  
          return content;
  
      }//getCompiledValue()
  
  
      // the parameters are in compiled form (from getCompiledValue)
      public boolean isEqual(Object value1, Object value2){
          return ((String)value1).equals((String)value2);
      }
  
      // the following methods might not be supported by every DV.
      // but XSSimpleTypeDecl should know which type supports which methods,
      // and it's an *internal* error if a method is called on a DV that
      // doesn't support it.
  
  
      public  int compare(Object value1, Object value2) {
          Locale    loc       = Locale.getDefault();
          Collator  collator  = Collator.getInstance( loc );
          return collator.compare( (String)value1 , (String)value2 );
      }
  
  
  
  } // class QNameDVDV
  
  
  
  1.1                  xml-xerces/java/src/org/apache/xerces/impl/v2/new-datatypes/StringDV.java
  
  Index: StringDV.java
  ===================================================================
  /*
   * The Apache Software License, Version 1.1
   *
   *
   * Copyright (c) 2001 The Apache Software Foundation.  All rights
   * reserved.
   *
   * Redistribution and use in source and binary forms, with or without
   * modification, are permitted provided that the following conditions
   * are met:
   *
   * 1. Redistributions of source code must retain the above copyright
   *    notice, this list of conditions and the following disclaimer.
   *
   * 2. Redistributions in binary form must reproduce the above copyright
   *    notice, this list of conditions and the following disclaimer in
   *    the documentation and/or other materials provided with the
   *    distribution.
   *
   * 3. The end-user documentation included with the redistribution,
   *    if any, must include the following acknowledgment:
   *       "This product includes software developed by the
   *        Apache Software Foundation (http://www.apache.org/)."
   *    Alternately, this acknowledgment may appear in the software itself,
   *    if and wherever such third-party acknowledgments normally appear.
   *
   * 4. The names "Xerces" and "Apache Software Foundation" must
   *    not be used to endorse or promote products derived from this
   *    software without prior written permission. For written
   *    permission, please contact apache@apache.org.
   *
   * 5. Products derived from this software may not be called "Apache",
   *    nor may "Apache" appear in their name, without prior written
   *    permission of the Apache Software Foundation.
   *
   * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
   * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
   * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
   * DISCLAIMED.  IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
   * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
   * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
   * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
   * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
   * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
   * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
   * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
   * SUCH DAMAGE.
   * ====================================================================
   *
   * This software consists of voluntary contributions made by many
   * individuals on behalf of the Apache Software Foundation and was
   * originally based on software copyright (c) 2001, International
   * Business Machines, Inc., http://www.apache.org.  For more
   * information on the Apache Software Foundation, please see
   * <http://www.apache.org/>.
   */
  
  package org.apache.xerces.impl.v2.new-datatypes;
  
  import java.util.Locale;
  import java.text.Collator;
  
  //internal imports
  //import org.apache.xerces.impl.v2.XSSimpleTypeDecl;
  
  /**
   * @version $Id: StringDV.java,v 1.1 2001/10/01 21:02:14 neilg Exp $
   */
  public class StringDV extends AbstractStringDV{
      // for most DV classes, this is the same as the DV_?? value defined
      // in XSSimpleTypeDecl that's corresponding to that class. But for
      // ID/IDREF/ENTITY, the privitivaDV is DV_STRING.
      public short getPrimitiveDV(){
  	      return XSSimpleTypeDecl.DV_STRING;
      }//getPrimitiveDV()
  
  
      // the following methods might not be supported by every DV.
      // but XSSimpleTypeDecl should know which type supports which methods,
      // and it's an *internal* error if a method is called on a DV that
      // doesn't support it.
  
  
      public int compare(Object value1, Object value2){
  	      Locale    loc       = Locale.getDefault();
          Collator  collator  = Collator.getInstance( loc );
          return collator.compare( (String)value1 , (String)value2 );
      }
  
  
  } // class StringDV
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: xerces-cvs-unsubscribe@xml.apache.org
For additional commands, e-mail: xerces-cvs-help@xml.apache.org