001: /*
002: * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
003: *
004: * Copyright 1997-2007 Sun Microsystems, Inc. All rights reserved.
005: *
006: * The contents of this file are subject to the terms of either the GNU
007: * General Public License Version 2 only ("GPL") or the Common Development
008: * and Distribution License("CDDL") (collectively, the "License"). You
009: * may not use this file except in compliance with the License. You can obtain
010: * a copy of the License at https://glassfish.dev.java.net/public/CDDL+GPL.html
011: * or glassfish/bootstrap/legal/LICENSE.txt. See the License for the specific
012: * language governing permissions and limitations under the License.
013: *
014: * When distributing the software, include this License Header Notice in each
015: * file and include the License file at glassfish/bootstrap/legal/LICENSE.txt.
016: * Sun designates this particular file as subject to the "Classpath" exception
017: * as provided by Sun in the GPL Version 2 section of the License file that
018: * accompanied this code. If applicable, add the following below the License
019: * Header, with the fields enclosed by brackets [] replaced by your own
020: * identifying information: "Portions Copyrighted [year]
021: * [name of copyright owner]"
022: *
023: * Contributor(s):
024: *
025: * If you wish your version of this file to be governed by only the CDDL or
026: * only the GPL Version 2, indicate your decision by adding "[Contributor]
027: * elects to include this software in this distribution under the [CDDL or GPL
028: * Version 2] license." If you don't indicate a single choice of license, a
029: * recipient has the option to distribute your version of this file under
030: * either the CDDL, the GPL Version 2 or to extend the choice of license to
031: * its licensees as provided above. However, if you add GPL Version 2 code
032: * and therefore, elected the GPL Version 2 license, then the option applies
033: * only if the new code is made subject to such option by the copyright
034: * holder.
035: */
036:
037: package com.sun.tools.ws.processor.model;
038:
039: import com.sun.tools.ws.processor.model.java.JavaInterface;
040: import com.sun.tools.ws.wsdl.document.PortType;
041: import com.sun.tools.ws.wsdl.document.soap.SOAPStyle;
042: import com.sun.tools.ws.wsdl.framework.Entity;
043:
044: import javax.xml.namespace.QName;
045: import java.util.ArrayList;
046: import java.util.HashMap;
047: import java.util.List;
048: import java.util.Map;
049:
050: /**
051: * @author WS Development Team
052: */
053: public class Port extends ModelObject {
054:
055: public Port(Entity entity) {
056: super (entity);
057: }
058:
059: public Port(QName name, Entity entity) {
060: super (entity);
061: _name = name;
062: }
063:
064: public QName getName() {
065: return _name;
066: }
067:
068: public void setName(QName n) {
069: _name = n;
070: }
071:
072: public void addOperation(Operation operation) {
073: _operations.add(operation);
074: operationsByName.put(operation.getUniqueName(), operation);
075: }
076:
077: public Operation getOperationByUniqueName(String name) {
078: if (operationsByName.size() != _operations.size()) {
079: initializeOperationsByName();
080: }
081: return operationsByName.get(name);
082: }
083:
084: private void initializeOperationsByName() {
085: operationsByName = new HashMap<String, Operation>();
086: if (_operations != null) {
087: for (Operation operation : _operations) {
088: if (operation.getUniqueName() != null
089: && operationsByName.containsKey(operation
090: .getUniqueName())) {
091:
092: throw new ModelException("model.uniqueness");
093: }
094: operationsByName.put(operation.getUniqueName(),
095: operation);
096: }
097: }
098: }
099:
100: /* serialization */
101: public List<Operation> getOperations() {
102: return _operations;
103: }
104:
105: /* serialization */
106: public void setOperations(List<Operation> l) {
107: _operations = l;
108: }
109:
110: public JavaInterface getJavaInterface() {
111: return _javaInterface;
112: }
113:
114: public void setJavaInterface(JavaInterface i) {
115: _javaInterface = i;
116: }
117:
118: public String getAddress() {
119: return _address;
120: }
121:
122: public void setAddress(String s) {
123: _address = s;
124: }
125:
126: public String getServiceImplName() {
127: return _serviceImplName;
128: }
129:
130: public void setServiceImplName(String name) {
131: _serviceImplName = name;
132: }
133:
134: public void accept(ModelVisitor visitor) throws Exception {
135: visitor.visit(this );
136: }
137:
138: public boolean isProvider() {
139: JavaInterface intf = getJavaInterface();
140: if (intf != null) {
141: String sei = intf.getName();
142: if (sei.equals(javax.xml.ws.Provider.class.getName())) {
143: return true;
144: }
145: }
146: return false;
147: }
148:
149: /**
150: * XYZ_Service.getABC() method name
151: *
152: * @return Returns the portGetterName.
153: */
154: public String getPortGetter() {
155: return portGetter;
156: }
157:
158: /**
159: * @param portGetterName The portGetterName to set.
160: */
161: public void setPortGetter(String portGetterName) {
162: this .portGetter = portGetterName;
163: }
164:
165: public SOAPStyle getStyle() {
166: return _style;
167: }
168:
169: public void setStyle(SOAPStyle s) {
170: _style = s;
171: }
172:
173: public boolean isWrapped() {
174: return _isWrapped;
175: }
176:
177: public void setWrapped(boolean isWrapped) {
178: _isWrapped = isWrapped;
179: }
180:
181: private SOAPStyle _style = null;
182: private boolean _isWrapped = true;
183:
184: private String portGetter;
185: private QName _name;
186: private List<Operation> _operations = new ArrayList<Operation>();
187: private JavaInterface _javaInterface;
188: private String _address;
189: private String _serviceImplName;
190: private Map<String, Operation> operationsByName = new HashMap<String, Operation>();
191: public Map<QName, PortType> portTypes = new HashMap<QName, PortType>();
192: }
|