Wed, 27 Apr 2016 01:27:09 +0800
Initial load
http://hg.openjdk.java.net/jdk8u/jdk8u/jaxws/
changeset: 657:d47a47f961ee
tag: jdk8u25-b17
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 }