001    /**
002     *
003     * Copyright 2003-2004 The Apache Software Foundation
004     *
005     *  Licensed under the Apache License, Version 2.0 (the "License");
006     *  you may not use this file except in compliance with the License.
007     *  You may obtain a copy of the License at
008     *
009     *     http://www.apache.org/licenses/LICENSE-2.0
010     *
011     *  Unless required by applicable law or agreed to in writing, software
012     *  distributed under the License is distributed on an "AS IS" BASIS,
013     *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
014     *  See the License for the specific language governing permissions and
015     *  limitations under the License.
016     */
017    package org.apache.geronimo.webservices;
018    
019    import java.util.ArrayList;
020    import java.util.HashMap;
021    
022    public class WebServiceDescription {
023        private String webServiceDescriptionName;
024        private String wsdlFile;
025        private String jaxrpcMappingFile;
026    
027        /**
028         * List of PortComponent objects
029         *
030         * @see org.apache.geronimo.webservices.PortComponent
031         */
032        private ArrayList portComponentList = new ArrayList();
033        /**
034         * Map of PortComponent objects indexed by portComponentName
035         *
036         * @see org.apache.geronimo.webservices.PortComponent#getPortComponentName
037         */
038        private HashMap portComponentMap = new HashMap();
039    
040        public String getWebServiceDescriptionName() {
041            return webServiceDescriptionName;
042        }
043    
044        public void setWebServiceDescriptionName(String webServiceDescriptionName) {
045            this.webServiceDescriptionName = webServiceDescriptionName;
046        }
047    
048        public String getWsdlFile() {
049            return wsdlFile;
050        }
051    
052        public void setWsdlFile(String wsdlFile) {
053            this.wsdlFile = wsdlFile;
054        }
055    
056        public String getJaxrpcMappingFile() {
057            return jaxrpcMappingFile;
058        }
059    
060        public void setJaxrpcMappingFile(String jaxrpcMappingFile) {
061            this.jaxrpcMappingFile = jaxrpcMappingFile;
062        }
063    
064        public void addPortComponent(PortComponent portComponent) throws IndexOutOfBoundsException {
065            portComponentList.add(portComponent);
066            portComponentMap.put(portComponent.getPortComponentName(), portComponent);
067        }
068    
069        public void addPortComponent(int index, PortComponent portComponent) throws IndexOutOfBoundsException {
070            portComponentList.add(index, portComponent);
071            portComponentMap.put(portComponent.getPortComponentName(), portComponent);
072        }
073    
074        public boolean removePortComponent(PortComponent portComponent) {
075            portComponentMap.remove(portComponent.getPortComponentName());
076            return portComponentList.remove(portComponent);
077        }
078    
079        public PortComponent getPortComponent(int index) throws IndexOutOfBoundsException {
080            if ((index < 0) || (index > portComponentList.size())) {
081                throw new IndexOutOfBoundsException();
082            }
083            return (PortComponent) portComponentList.get(index);
084        }
085    
086        public PortComponent[] getPortComponent() {
087            int size = portComponentList.size();
088            PortComponent[] mArray = new PortComponent[size];
089            for (int index = 0; index < size; index++) {
090                mArray[index] = (PortComponent) portComponentList.get(index);
091            }
092            return mArray;
093        }
094    
095        public PortComponent getPortComponent(String portComponentName) {
096            return (PortComponent) portComponentMap.get(portComponentName);
097        }
098    
099        public void setPortComponent(int index, PortComponent portComponent) throws IndexOutOfBoundsException {
100            if ((index < 0) || (index > portComponentList.size())) {
101                throw new IndexOutOfBoundsException();
102            }
103            PortComponent removed = (PortComponent) portComponentList.set(index, portComponent);
104            portComponentMap.remove(removed.getPortComponentName());
105            portComponentMap.put(portComponent.getPortComponentName(), portComponent);
106        }
107    
108        public void setPortComponent(PortComponent[] portComponentArray) {
109            portComponentList.clear();
110            for (int i = 0; i < portComponentArray.length; i++) {
111                PortComponent portComponent = portComponentArray[i];
112                portComponentList.add(portComponent);
113                portComponentMap.put(portComponent.getPortComponentName(), portComponent);
114            }
115        }
116    
117        public void clearPortComponent() {
118            portComponentList.clear();
119            portComponentMap.clear();
120        }
121    
122    }