/**
*
* Copyright 2003-2004 The Apache Software Foundation
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.apache.geronimo.webservices;
import java.util.ArrayList;
import java.util.HashMap;
/**
* A dtd version of the J2EE webservices.xml file would look like this:
* <p/>
* webservices (webservice-description+)
* webservice-description (webservice-description-name, wsdl-file, jaxrpc-mapping-file, port-component+)
* port-component (port-component-name, wsdl-port, service-endpoint-interface, service-impl-bean, handler*)
* service-impl-bean (ejb-link|servlet-link)
* handler (handler-name, handler-class, init-param*, soap-header*, soap-role*)
*/
public class WebServices {
/**
* List of WebServiceDescription objects
*
* @see org.apache.geronimo.webservices.WebServiceDescription
*/
private ArrayList webServiceDescriptionList = new ArrayList();
/**
* Map of WebServiceDescription objects indexed by webServiceDescriptionName
*
* @see org.apache.geronimo.webservices.WebServiceDescription#getWebServiceDescriptionName
*/
private HashMap webServiceDescriptionMap = new HashMap();
public void addWebServiceDescription(WebServiceDescription webServiceDescription) throws IndexOutOfBoundsException {
webServiceDescriptionList.add(webServiceDescription);
webServiceDescriptionMap.put(webServiceDescription.getWebServiceDescriptionName(), webServiceDescription);
}
public void addWebServiceDescription(int index, WebServiceDescription webServiceDescription) throws IndexOutOfBoundsException {
webServiceDescriptionList.add(index, webServiceDescription);
webServiceDescriptionMap.put(webServiceDescription.getWebServiceDescriptionName(), webServiceDescription);
}
public boolean removeWebServiceDescription(WebServiceDescription webServiceDescription) {
webServiceDescriptionMap.remove(webServiceDescription.getWebServiceDescriptionName());
return webServiceDescriptionList.remove(webServiceDescription);
}
public WebServiceDescription getWebServiceDescription(int index) throws IndexOutOfBoundsException {
if ((index < 0) || (index > webServiceDescriptionList.size())) {
throw new IndexOutOfBoundsException();
}
return (WebServiceDescription) webServiceDescriptionList.get(index);
}
public WebServiceDescription[] getWebServiceDescription() {
int size = webServiceDescriptionList.size();
WebServiceDescription[] mArray = new WebServiceDescription[size];
for (int index = 0; index < size; index++) {
mArray[index] = (WebServiceDescription) webServiceDescriptionList.get(index);
}
return mArray;
}
public WebServiceDescription getWebServiceDescription(String webServiceDescriptionName) {
return (WebServiceDescription) webServiceDescriptionMap.get(webServiceDescriptionName);
}
public void setWebServiceDescription(int index, WebServiceDescription webServiceDescription) throws IndexOutOfBoundsException {
if ((index < 0) || (index > webServiceDescriptionList.size())) {
throw new IndexOutOfBoundsException();
}
WebServiceDescription removed = (WebServiceDescription) webServiceDescriptionList.set(index, webServiceDescription);
webServiceDescriptionMap.remove(removed.getWebServiceDescriptionName());
webServiceDescriptionMap.put(webServiceDescription.getWebServiceDescriptionName(), webServiceDescription);
}
public void setWebServiceDescription(WebServiceDescription[] webServiceDescriptionArray) {
clearWebServiceDescription();
for (int i = 0; i < webServiceDescriptionArray.length; i++) {
WebServiceDescription webServiceDescription = webServiceDescriptionArray[i];
webServiceDescriptionList.add(webServiceDescription);
webServiceDescriptionMap.put(webServiceDescription.getWebServiceDescriptionName(), webServiceDescription);
}
}
public void clearWebServiceDescription() {
webServiceDescriptionList.clear();
webServiceDescriptionMap.clear();
}
}