001 /**
002 * Licensed to the Apache Software Foundation (ASF) under one or more
003 * contributor license agreements. See the NOTICE file distributed with
004 * this work for additional information regarding copyright ownership.
005 * The ASF licenses this file to You under the Apache License, Version 2.0
006 * (the "License"); you may not use this file except in compliance with
007 * the License. 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 PortComponent {
023 private String portComponentName;
024 private String wsdlPort;
025 private String serviceEndpointInterface;
026 private ServiceImplBean serviceImplBean;
027
028 /**
029 * List of Handler objects
030 *
031 * @see org.apache.geronimo.webservices.Handler
032 */
033 private ArrayList handlerList = new ArrayList();
034 /**
035 * Map of Handler objects indexed by handlerName
036 *
037 * @see org.apache.geronimo.webservices.Handler#getHandlerName
038 */
039 private HashMap handlerMap = new HashMap();
040
041 public void addHandler(Handler handler) throws IndexOutOfBoundsException {
042 handlerList.add(handler);
043 handlerMap.put(handler.getHandlerName(), handler);
044 }
045
046 public void addHandler(int index, Handler handler) throws IndexOutOfBoundsException {
047 handlerList.add(index, handler);
048 handlerMap.put(handler.getHandlerName(), handler);
049 }
050
051 public boolean removeHandler(Handler handler) {
052 handlerMap.remove(handler.getHandlerName());
053 return handlerList.remove(handler);
054 }
055
056 public Handler getHandler(int index) throws IndexOutOfBoundsException {
057 if ((index < 0) || (index > handlerList.size())) {
058 throw new IndexOutOfBoundsException();
059 }
060 return (Handler) handlerList.get(index);
061 }
062
063 public Handler[] getHandler() {
064 int size = handlerList.size();
065 Handler[] mArray = new Handler[size];
066 for (int index = 0; index < size; index++) {
067 mArray[index] = (Handler) handlerList.get(index);
068 }
069 return mArray;
070 }
071
072 public Handler getHandler(String handlerName) {
073 return (Handler) handlerMap.get(handlerName);
074 }
075
076 public void setHandler(int index, Handler handler) throws IndexOutOfBoundsException {
077 if ((index < 0) || (index > handlerList.size())) {
078 throw new IndexOutOfBoundsException();
079 }
080 Handler removed = (Handler) handlerList.set(index, handler);
081 handlerMap.remove(removed.getHandlerName());
082 handlerMap.put(handler.getHandlerName(), handler);
083 }
084
085 public void setHandler(Handler[] handlerArray) {
086 handlerList.clear();
087 for (int i = 0; i < handlerArray.length; i++) {
088 Handler handler = handlerArray[i];
089 handlerList.add(handler);
090 handlerMap.put(handler.getHandlerName(), handler);
091 }
092 }
093
094 public void clearHandler() {
095 handlerList.clear();
096 handlerMap.clear();
097 }
098
099 public String getPortComponentName() {
100 return portComponentName;
101 }
102
103 public void setPortComponentName(String portComponentName) {
104 this.portComponentName = portComponentName;
105 }
106
107 public String getWsdlPort() {
108 return wsdlPort;
109 }
110
111 public void setWsdlPort(String wsdlPort) {
112 this.wsdlPort = wsdlPort;
113 }
114
115 public String getServiceEndpointInterface() {
116 return serviceEndpointInterface;
117 }
118
119 public void setServiceEndpointInterface(String serviceEndpointInterface) {
120 this.serviceEndpointInterface = serviceEndpointInterface;
121 }
122
123 public ServiceImplBean getServiceImplBean() {
124 return serviceImplBean;
125 }
126
127 public void setServiceImplBean(ServiceImplBean serviceImplBean) {
128 this.serviceImplBean = serviceImplBean;
129 }
130 }