blob: 2003ba1a9e856d19657feedb3487f24fdc0f536f [file] [log] [blame]
/*
* 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();
}
}