1/* 2 * Copyright (c) 1997, 2013, 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 */ 25 26package com.sun.xml.internal.ws.model.wsdl; 27 28import com.sun.xml.internal.ws.api.model.wsdl.WSDLOperation; 29import com.sun.xml.internal.ws.api.model.wsdl.WSDLPortType; 30import com.sun.xml.internal.ws.api.model.wsdl.editable.EditableWSDLModel; 31import com.sun.xml.internal.ws.api.model.wsdl.editable.EditableWSDLOperation; 32import com.sun.xml.internal.ws.api.model.wsdl.editable.EditableWSDLPortType; 33 34import javax.xml.namespace.QName; 35import javax.xml.stream.XMLStreamReader; 36 37import java.util.Hashtable; 38import java.util.Map; 39 40/** 41 * Provides implementation of {@link WSDLPortType} 42 * 43 * @author Vivek Pandey 44 */ 45public final class WSDLPortTypeImpl extends AbstractExtensibleImpl implements EditableWSDLPortType { 46 private QName name; 47 private final Map<String, EditableWSDLOperation> portTypeOperations; 48 private EditableWSDLModel owner; 49 50 public WSDLPortTypeImpl(XMLStreamReader xsr, EditableWSDLModel owner, QName name) { 51 super(xsr); 52 this.name = name; 53 this.owner = owner; 54 portTypeOperations = new Hashtable<String, EditableWSDLOperation>(); 55 } 56 57 public QName getName() { 58 return name; 59 } 60 61 public EditableWSDLOperation get(String operationName) { 62 return portTypeOperations.get(operationName); 63 } 64 65 public Iterable<EditableWSDLOperation> getOperations() { 66 return portTypeOperations.values(); 67 } 68 69 /** 70 * Populates the Map that holds operation name as key and {@link WSDLOperation} as the value. 71 * @param opName Must be non-null 72 * @param ptOp Must be non-null 73 * @throws NullPointerException if either opName or ptOp is null 74 */ 75 public void put(String opName, EditableWSDLOperation ptOp){ 76 portTypeOperations.put(opName, ptOp); 77 } 78 79 EditableWSDLModel getOwner(){ 80 return owner; 81 } 82 83 public void freeze() { 84 for(EditableWSDLOperation op : portTypeOperations.values()){ 85 op.freeze(owner); 86 } 87 } 88} 89