/* | |
* Licensed to the Apache Software Foundation (ASF) under one | |
* or more contributor license agreements. See the NOTICE file | |
* distributed with this work for additional information | |
* regarding copyright ownership. The ASF licenses this file | |
* to you 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.axis2.jaxws.description.builder; | |
import java.net.URL; | |
import java.util.List; | |
import java.util.Map; | |
import java.util.Set; | |
import javax.wsdl.Definition; | |
import javax.xml.namespace.QName; | |
import org.apache.axis2.jaxws.catalog.JAXWSCatalogManager; | |
import org.apache.axis2.jaxws.description.xml.handler.HandlerChainsType; | |
/** | |
* This subclass of the DescriptionBuilderComposite will be used to model | |
* information specific to a port. The DescriptionBuilderComposite, when | |
* used in server-side processing, more or less represents a single web | |
* service implementation class. It is possible, and likely, that a single | |
* implementation class will serve multiple ports. The PortComposite allows | |
* metadata that applies at the port level to be separated from the | |
* DescriptionBuilderComposite. This will allow processing and configuring | |
* of multiple ports in the description hierarchy from a single DBC object. | |
* | |
*/ | |
public class PortComposite extends DescriptionBuilderComposite { | |
private WsdlGenerator wsdlGenerator; | |
// The WebServiceAnnot should have been created from the WebServiceAnnot | |
// that exists on the DBC with which a PortComposite instance was constructed. | |
// It exists here so port-specific values, such as 'portName', can be overridden. | |
private WebServiceAnnot wsAnnot; | |
// The WebServiceProviderAnnot should have been created from the WebServiceProviderAnnot | |
// that exists on the DBC with which a PortComposite instance was constructed. | |
// It exists here so port-specific values, such as 'portName', can be overridden. | |
private WebServiceProviderAnnot wspAnnot; | |
private BindingTypeAnnot btAnnot; | |
private HandlerChainAnnot hcAnnot; | |
private HandlerChainsType hcsType; | |
private Boolean mtomEnabled; | |
private Map<String, Object> properties; | |
private DescriptionBuilderComposite baseDBC; | |
public PortComposite(DescriptionBuilderComposite baseDBC) { | |
this.baseDBC = baseDBC; | |
} | |
public WsdlGenerator getCustomWsdlGenerator() { | |
if(wsdlGenerator == null) { | |
return baseDBC.getCustomWsdlGenerator(); | |
} | |
return wsdlGenerator; | |
} | |
public WebServiceAnnot getWebServiceAnnot() { | |
if(wsAnnot == null) { | |
return baseDBC.getWebServiceAnnot(); | |
} | |
return wsAnnot; | |
} | |
public WebServiceProviderAnnot getWebServiceProviderAnnot() { | |
if(wspAnnot == null) { | |
return baseDBC.getWebServiceProviderAnnot(); | |
} | |
return wspAnnot; | |
} | |
public void setCustomWsdlGenerator(WsdlGenerator wsdlGenerator) { | |
this.wsdlGenerator = wsdlGenerator; | |
} | |
public void setHandlerChainAnnot(HandlerChainAnnot handlerChainAnnot) { | |
this.hcAnnot = handlerChainAnnot; | |
} | |
public void setHandlerChainsType(HandlerChainsType handlerChainsType) { | |
this.hcsType = handlerChainsType; | |
} | |
public void setIsMTOMEnabled(boolean isMTOMEnabled) { | |
this.mtomEnabled = isMTOMEnabled; | |
} | |
public void setProperties(Map<String, Object> properties) { | |
this.properties = properties; | |
} | |
public void setWebServiceAnnot(WebServiceAnnot webServiceAnnot) { | |
this.wsAnnot = webServiceAnnot; | |
} | |
public void setWebServiceProviderAnnot(WebServiceProviderAnnot webServiceProviderAnnot) { | |
this.wspAnnot = webServiceProviderAnnot; | |
} | |
public BindingTypeAnnot getBindingTypeAnnot() { | |
if(btAnnot == null) { | |
return baseDBC.getBindingTypeAnnot(); | |
} | |
return btAnnot; | |
} | |
public HandlerChainAnnot getHandlerChainAnnot() { | |
if(hcAnnot == null) { | |
return baseDBC.getHandlerChainAnnot(); | |
} | |
return hcAnnot; | |
} | |
public HandlerChainsType getHandlerChainsType() { | |
if(hcsType == null) { | |
return baseDBC.getHandlerChainsType(); | |
} | |
return hcsType; | |
} | |
public boolean isMTOMEnabled() { | |
if(mtomEnabled == null) { | |
return baseDBC.isMTOMEnabled(); | |
} | |
return mtomEnabled; | |
} | |
public void setBindingTypeAnnot(BindingTypeAnnot bindingTypeAnnot) { | |
this.btAnnot = bindingTypeAnnot; | |
} | |
public Map<String, Object> getProperties() { | |
if(properties == null) { | |
return baseDBC.getProperties(); | |
} | |
return properties; | |
} | |
public void addPortComposite(PortComposite portDBC) { | |
// nothing to do here | |
} | |
public List<PortComposite> getPortComposites() { | |
return null; | |
} | |
public JAXWSCatalogManager getCatalogManager() { | |
return baseDBC.getCatalogManager(); | |
} | |
public ClassLoader getClassLoader() { | |
return baseDBC.getClassLoader(); | |
} | |
public String[] getClassModifiers() { | |
return baseDBC.getClassModifiers(); | |
} | |
public String getClassName() { | |
return baseDBC.getClassName(); | |
} | |
public List<CustomAnnotationInstance> getCustomAnnotationInstances() { | |
return baseDBC.getCustomAnnotationInstances(); | |
} | |
public Map<String, CustomAnnotationProcessor> getCustomAnnotationProcessors() { | |
return baseDBC.getCustomAnnotationProcessors(); | |
} | |
public FieldDescriptionComposite getFieldDescriptionComposite(String fieldName) { | |
return baseDBC.getFieldDescriptionComposite(fieldName); | |
} | |
public List<String> getInterfacesList() { | |
return baseDBC.getInterfacesList(); | |
} | |
public MethodDescriptionComposite getMethodDescriptionComposite(String methodName, int occurence) { | |
return baseDBC.getMethodDescriptionComposite(methodName, occurence); | |
} | |
public List<MethodDescriptionComposite> getMethodDescriptionComposite(String methodName) { | |
return baseDBC.getMethodDescriptionComposite(methodName); | |
} | |
public List<MethodDescriptionComposite> getMethodDescriptionsList() { | |
return baseDBC.getMethodDescriptionsList(); | |
} | |
public QName getPreferredPort() { | |
return baseDBC.getPreferredPort(); | |
} | |
public QName getPreferredPort(Object key) { | |
return baseDBC.getPreferredPort(key); | |
} | |
public ServiceModeAnnot getServiceModeAnnot() { | |
return baseDBC.getServiceModeAnnot(); | |
} | |
public SoapBindingAnnot getSoapBindingAnnot() { | |
return baseDBC.getSoapBindingAnnot(); | |
} | |
public String getSuperClassName() { | |
return baseDBC.getSuperClassName(); | |
} | |
public boolean isInterface() { | |
return baseDBC.isInterface(); | |
} | |
public Definition getWsdlDefinition() { | |
return baseDBC.getWsdlDefinition(); | |
} | |
public Set<QName> getServiceQNames() { | |
return baseDBC.getServiceQNames(); | |
} | |
public Definition getWsdlDefinition(QName serviceQName) { | |
return baseDBC.getWsdlDefinition(serviceQName); | |
} | |
public void setServiceQNames(Set<QName> serviceQNames) { | |
baseDBC.setServiceQNames(serviceQNames); | |
} | |
public void setWsdlDefinition(QName serviceQName, Definition definition) { | |
baseDBC.setWsdlDefinition(serviceQName, definition); | |
} | |
public void setwsdlURL(QName serviceQName, URL url) { | |
baseDBC.setwsdlURL(serviceQName, url); | |
} | |
public URL getWsdlURL(QName serviceQName) { | |
return baseDBC.getWsdlURL(serviceQName); | |
} | |
public String toString() { | |
StringBuffer sb = new StringBuffer(); | |
final String newLine = "\n"; | |
final String sameLine = "; "; | |
sb.append(super.toString()); | |
sb.append(newLine); | |
sb.append("ClassName: " + getClassName()); | |
sb.append(newLine); | |
sb.append(newLine); | |
sb.append("has wsdlDefinition?: "); | |
if (getWsdlDefinition() !=null) { | |
sb.append("true"); | |
} else { | |
sb.append("false"); | |
} | |
if (wsAnnot != null) { | |
sb.append(newLine); | |
sb.append("WebService: "); | |
sb.append(wsAnnot.toString()); | |
} | |
if (wspAnnot != null) { | |
sb.append(newLine); | |
sb.append("WebServiceProvider: "); | |
sb.append(wspAnnot.toString()); | |
} | |
if (btAnnot != null) { | |
sb.append(newLine); | |
sb.append("BindingType: "); | |
sb.append(btAnnot.toString()); | |
} | |
if (hcAnnot != null) { | |
sb.append(newLine); | |
sb.append("HandlerChain: "); | |
sb.append(hcAnnot.toString()); | |
} | |
return sb.toString(); | |
} | |
} |