1 /**
2 *
3 * Copyright 2003-2004 The Apache Software Foundation
4 *
5 * Licensed under the Apache License, Version 2.0 (the "License");
6 * you may not use this file except in compliance with the License.
7 * You may obtain a copy of the License at
8 *
9 * http://www.apache.org/licenses/LICENSE-2.0
10 *
11 * Unless required by applicable law or agreed to in writing, software
12 * distributed under the License is distributed on an "AS IS" BASIS,
13 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 * See the License for the specific language governing permissions and
15 * limitations under the License.
16 */
17 package org.apache.geronimo.webservices;
18
19 import java.util.ArrayList;
20 import java.util.HashMap;
21
22
23 /**
24 * A dtd version of the J2EE webservices.xml file would look like this:
25 * <p/>
26 * webservices (webservice-description+)
27 * webservice-description (webservice-description-name, wsdl-file, jaxrpc-mapping-file, port-component+)
28 * port-component (port-component-name, wsdl-port, service-endpoint-interface, service-impl-bean, handler*)
29 * service-impl-bean (ejb-link|servlet-link)
30 * handler (handler-name, handler-class, init-param*, soap-header*, soap-role*)
31 */
32 public class WebServices {
33 /**
34 * List of WebServiceDescription objects
35 *
36 * @see org.apache.geronimo.webservices.WebServiceDescription
37 */
38 private ArrayList webServiceDescriptionList = new ArrayList();
39 /**
40 * Map of WebServiceDescription objects indexed by webServiceDescriptionName
41 *
42 * @see org.apache.geronimo.webservices.WebServiceDescription#getWebServiceDescriptionName
43 */
44 private HashMap webServiceDescriptionMap = new HashMap();
45
46 public void addWebServiceDescription(WebServiceDescription webServiceDescription) throws IndexOutOfBoundsException {
47 webServiceDescriptionList.add(webServiceDescription);
48 webServiceDescriptionMap.put(webServiceDescription.getWebServiceDescriptionName(), webServiceDescription);
49 }
50
51 public void addWebServiceDescription(int index, WebServiceDescription webServiceDescription) throws IndexOutOfBoundsException {
52 webServiceDescriptionList.add(index, webServiceDescription);
53 webServiceDescriptionMap.put(webServiceDescription.getWebServiceDescriptionName(), webServiceDescription);
54 }
55
56 public boolean removeWebServiceDescription(WebServiceDescription webServiceDescription) {
57 webServiceDescriptionMap.remove(webServiceDescription.getWebServiceDescriptionName());
58 return webServiceDescriptionList.remove(webServiceDescription);
59 }
60
61 public WebServiceDescription getWebServiceDescription(int index) throws IndexOutOfBoundsException {
62 if ((index < 0) || (index > webServiceDescriptionList.size())) {
63 throw new IndexOutOfBoundsException();
64 }
65 return (WebServiceDescription) webServiceDescriptionList.get(index);
66 }
67
68 public WebServiceDescription[] getWebServiceDescription() {
69 int size = webServiceDescriptionList.size();
70 WebServiceDescription[] mArray = new WebServiceDescription[size];
71 for (int index = 0; index < size; index++) {
72 mArray[index] = (WebServiceDescription) webServiceDescriptionList.get(index);
73 }
74 return mArray;
75 }
76
77 public WebServiceDescription getWebServiceDescription(String webServiceDescriptionName) {
78 return (WebServiceDescription) webServiceDescriptionMap.get(webServiceDescriptionName);
79 }
80
81 public void setWebServiceDescription(int index, WebServiceDescription webServiceDescription) throws IndexOutOfBoundsException {
82 if ((index < 0) || (index > webServiceDescriptionList.size())) {
83 throw new IndexOutOfBoundsException();
84 }
85 WebServiceDescription removed = (WebServiceDescription) webServiceDescriptionList.set(index, webServiceDescription);
86 webServiceDescriptionMap.remove(removed.getWebServiceDescriptionName());
87 webServiceDescriptionMap.put(webServiceDescription.getWebServiceDescriptionName(), webServiceDescription);
88 }
89
90 public void setWebServiceDescription(WebServiceDescription[] webServiceDescriptionArray) {
91 clearWebServiceDescription();
92 for (int i = 0; i < webServiceDescriptionArray.length; i++) {
93 WebServiceDescription webServiceDescription = webServiceDescriptionArray[i];
94 webServiceDescriptionList.add(webServiceDescription);
95 webServiceDescriptionMap.put(webServiceDescription.getWebServiceDescriptionName(), webServiceDescription);
96 }
97 }
98
99 public void clearWebServiceDescription() {
100 webServiceDescriptionList.clear();
101 webServiceDescriptionMap.clear();
102 }
103 }