View Javadoc
1   /*
2    * reserved comment block
3    * DO NOT REMOVE OR ALTER!
4    */
5   /*
6    * Copyright 2001-2005 The Apache Software Foundation.
7    *
8    * Licensed under the Apache License, Version 2.0 (the "License");
9    * you may not use this file except in compliance with the License.
10   * You may obtain a copy of the License at
11   *
12   *      http://www.apache.org/licenses/LICENSE-2.0
13   *
14   * Unless required by applicable law or agreed to in writing, software
15   * distributed under the License is distributed on an "AS IS" BASIS,
16   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
17   * See the License for the specific language governing permissions and
18   * limitations under the License.
19   */
20  
21  package com.sun.org.apache.xerces.internal.impl.dv.xs;
22  
23  
24  import com.sun.org.apache.xerces.internal.impl.dv.XSSimpleType;
25  import com.sun.org.apache.xerces.internal.util.SymbolHash;
26  
27  /**
28   * the factory to create/return built-in schema DVs and create user-defined DVs
29   *
30   * @xerces.internal
31   *
32   * @author Neeraj Bajaj, Sun Microsystems, inc.
33   * @author Sandy Gao, IBM
34   *
35   * @version $Id: SchemaDVFactoryImpl.java,v 1.7 2010-11-01 04:39:47 joehw Exp $
36   */
37  public class SchemaDVFactoryImpl extends BaseSchemaDVFactory {
38  
39      static final SymbolHash fBuiltInTypes = new SymbolHash();
40  
41      static {
42          createBuiltInTypes();
43      }
44  
45      // create all built-in types
46      static void createBuiltInTypes() {
47          createBuiltInTypes(fBuiltInTypes, XSSimpleTypeDecl.fAnySimpleType);
48  
49          // TODO: move specific 1.0 DV implementation from base
50      } //createBuiltInTypes()
51  
52      /**
53       * Get a built-in simple type of the given name
54       * REVISIT: its still not decided within the Schema WG how to define the
55       *          ur-types and if all simple types should be derived from a
56       *          complex type, so as of now we ignore the fact that anySimpleType
57       *          is derived from anyType, and pass 'null' as the base of
58       *          anySimpleType. It needs to be changed as per the decision taken.
59       *
60       * @param name  the name of the datatype
61       * @return      the datatype validator of the given name
62       */
63      public XSSimpleType getBuiltInType(String name) {
64          return (XSSimpleType)fBuiltInTypes.get(name);
65      }
66  
67      /**
68       * get all built-in simple types, which are stored in a hashtable keyed by
69       * the name
70       *
71       * @return      a hashtable which contains all built-in simple types
72       */
73      public SymbolHash getBuiltInTypes() {
74          return (SymbolHash)fBuiltInTypes.makeClone();
75      }
76  
77  }//SchemaDVFactoryImpl