< prev index next >

jaxws/src/share/jaxws_classes/com/sun/tools/internal/xjc/model/CTypeRef.java

Print this page


   1 /*
   2  * Copyright (c) 1997, 2011, Oracle and/or its affiliates. All rights reserved.
   3  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   4  *
   5  * This code is free software; you can redistribute it and/or modify it
   6  * under the terms of the GNU General Public License version 2 only, as
   7  * published by the Free Software Foundation.  Oracle designates this
   8  * particular file as subject to the "Classpath" exception as provided
   9  * by Oracle in the LICENSE file that accompanied this code.
  10  *
  11  * This code is distributed in the hope that it will be useful, but WITHOUT
  12  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
  13  * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
  14  * version 2 for more details (a copy is included in the LICENSE file that
  15  * accompanied this code).
  16  *
  17  * You should have received a copy of the GNU General Public License version
  18  * 2 along with this work; if not, write to the Free Software Foundation,
  19  * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
  20  *
  21  * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
  22  * or visit www.oracle.com if you need additional information or have any


  83 
  84     /**
  85      * Recursively search for type name.
  86      *
  87      * This is needed to find correct type for refs like:
  88      *
  89      *<xs:simpleType name="parent">
  90      *  <xs:restriction base="xs:date"/>
  91      *</xs:simpleType>
  92      *<xs:simpleType name="child">
  93      *  <xs:restriction base="parent"/>
  94      *</xs:simpleType>
  95      *
  96      *<xs:element name="testField" type="child"/>
  97      *
  98      * @param declType given type
  99      * @return simpleTypeName or null
 100      */
 101     private static QName resolveSimpleTypeName(XSType declType) {
 102         QName name = BGMBuilder.getName(declType);
 103         if (name != null && !XMLConstants.W3C_XML_SCHEMA_NS_URI.equals(name.getNamespaceURI()))
 104             return resolveSimpleTypeName(declType.getBaseType());
 105         else
 106             return name;





 107     }
 108 
 109     public CTypeRef(CNonElement type, QName elementName, QName typeName, boolean nillable, XmlString defaultValue) {
 110         assert type!=null;
 111         assert elementName!=null;
 112 
 113         this.type = type;
 114         this.elementName = elementName;
 115         this.typeName = typeName;
 116         this.nillable = nillable;
 117         this.defaultValue = defaultValue;
 118     }
 119 
 120     public CNonElement getTarget() {
 121         return type;
 122     }
 123 
 124     public QName getTagName() {
 125         return elementName;
 126     }


   1 /*
   2  * Copyright (c) 1997, 2016, Oracle and/or its affiliates. All rights reserved.
   3  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   4  *
   5  * This code is free software; you can redistribute it and/or modify it
   6  * under the terms of the GNU General Public License version 2 only, as
   7  * published by the Free Software Foundation.  Oracle designates this
   8  * particular file as subject to the "Classpath" exception as provided
   9  * by Oracle in the LICENSE file that accompanied this code.
  10  *
  11  * This code is distributed in the hope that it will be useful, but WITHOUT
  12  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
  13  * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
  14  * version 2 for more details (a copy is included in the LICENSE file that
  15  * accompanied this code).
  16  *
  17  * You should have received a copy of the GNU General Public License version
  18  * 2 along with this work; if not, write to the Free Software Foundation,
  19  * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
  20  *
  21  * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
  22  * or visit www.oracle.com if you need additional information or have any


  83 
  84     /**
  85      * Recursively search for type name.
  86      *
  87      * This is needed to find correct type for refs like:
  88      *
  89      *<xs:simpleType name="parent">
  90      *  <xs:restriction base="xs:date"/>
  91      *</xs:simpleType>
  92      *<xs:simpleType name="child">
  93      *  <xs:restriction base="parent"/>
  94      *</xs:simpleType>
  95      *
  96      *<xs:element name="testField" type="child"/>
  97      *
  98      * @param declType given type
  99      * @return simpleTypeName or null
 100      */
 101     private static QName resolveSimpleTypeName(XSType declType) {
 102         QName name = BGMBuilder.getName(declType);
 103         QName result = null;
 104         if (name != null && !XMLConstants.W3C_XML_SCHEMA_NS_URI.equals(name.getNamespaceURI())) {
 105             result = resolveSimpleTypeName(declType.getBaseType());
 106         } else {
 107             if ( !"anySimpleType".equals(declType.getName()) ) {
 108                 result = name;
 109             }
 110         }
 111         return result;
 112     }
 113 
 114     public CTypeRef(CNonElement type, QName elementName, QName typeName, boolean nillable, XmlString defaultValue) {
 115         assert type!=null;
 116         assert elementName!=null;
 117 
 118         this.type = type;
 119         this.elementName = elementName;
 120         this.typeName = typeName;
 121         this.nillable = nillable;
 122         this.defaultValue = defaultValue;
 123     }
 124 
 125     public CNonElement getTarget() {
 126         return type;
 127     }
 128 
 129     public QName getTagName() {
 130         return elementName;
 131     }


< prev index next >