src/share/jaxws_classes/com/sun/tools/internal/ws/processor/model/jaxb/JAXBStructuredType.java

Thu, 31 Aug 2017 15:18:52 +0800

author
aoqi
date
Thu, 31 Aug 2017 15:18:52 +0800
changeset 637
9c07ef4934dd
parent 368
0989ad8c0860
parent 0
373ffda63c9a
permissions
-rw-r--r--

merge

     1 /*
     2  * Copyright (c) 1997, 2012, 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
    23  * questions.
    24  */
    26 package com.sun.tools.internal.ws.processor.model.jaxb;
    28 import com.sun.tools.internal.ws.processor.model.ModelException;
    29 import com.sun.tools.internal.ws.processor.model.java.JavaStructureType;
    31 import javax.xml.namespace.QName;
    32 import java.util.*;
    34 /**
    35  * Top-level binding between JAXB generated Java type
    36  * and XML Schema element declaration.
    37  *
    38  * @author
    39  *     Kohsuke Kawaguchi (kohsuke.kawaguchi@sun.com)
    40  */
    41 public class JAXBStructuredType extends JAXBType {
    43     public JAXBStructuredType(JAXBType jaxbType){
    44         super(jaxbType);
    45     }
    47     public JAXBStructuredType() {}
    49     public JAXBStructuredType(QName name) {
    50         this(name, null);
    51     }
    53     public JAXBStructuredType(QName name, JavaStructureType javaType) {
    54         super(name, javaType);
    55     }
    57     public void add(JAXBElementMember m) {
    58         if (_elementMembersByName.containsKey(m.getName())) {
    59             throw new ModelException("model.uniqueness");
    60         }
    61         _elementMembers.add(m);
    62         if (m.getName() != null) {
    63             _elementMembersByName.put(m.getName().getLocalPart(), m);
    64         }
    65     }
    67     public Iterator getElementMembers() {
    68         return _elementMembers.iterator();
    69     }
    71     public int getElementMembersCount() {
    72         return _elementMembers.size();
    73     }
    75     /* serialization */
    76     public List getElementMembersList() {
    77         return _elementMembers;
    78     }
    80     /* serialization */
    81     public void setElementMembersList(List l) {
    82         _elementMembers = l;
    83     }
    85     public void addSubtype(JAXBStructuredType type) {
    86         if (_subtypes == null) {
    87             _subtypes = new HashSet();
    88         }
    89         _subtypes.add(type);
    90         type.setParentType(this);
    91     }
    93     public Iterator getSubtypes() {
    94         if (_subtypes != null) {
    95             return _subtypes.iterator();
    96         }
    97         return null;
    98     }
   100     /* (non-Javadoc)
   101      * @see JAXBType#isUnwrapped()
   102      */
   103     public boolean isUnwrapped() {
   104         return true;
   105     }
   106     /* serialization */
   107     public Set getSubtypesSet() {
   108         return _subtypes;
   109     }
   111     /* serialization */
   112     public void setSubtypesSet(Set s) {
   113         _subtypes = s;
   114     }
   116     public void setParentType(JAXBStructuredType parent) {
   117         if (_parentType != null &&
   118             parent != null &&
   119             !_parentType.equals(parent)) {
   121             throw new ModelException("model.parent.type.already.set",
   122                 new Object[] { getName().toString(),
   123                     _parentType.getName().toString(),
   124                     parent.getName().toString()});
   125         }
   126         this._parentType = parent;
   127     }
   129     public JAXBStructuredType getParentType() {
   130         return _parentType;
   131     }
   134     private List _elementMembers = new ArrayList();
   135     private Map _elementMembersByName = new HashMap();
   136     private Set _subtypes = null;
   137     private JAXBStructuredType _parentType = null;
   138 }

mercurial