org.apache.axis.deployment.wsdd.WSDDTargetedChain Maven / Gradle / Ivy
/*
* Copyright 2001-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.axis.deployment.wsdd;
import org.apache.axis.ConfigurationException;
import org.apache.axis.EngineConfiguration;
import org.apache.axis.Handler;
import org.apache.axis.encoding.SerializationContext;
import org.apache.axis.utils.ClassUtils;
import org.apache.axis.utils.Messages;
import org.apache.axis.utils.XMLUtils;
import org.w3c.dom.Element;
import javax.xml.namespace.QName;
import java.io.IOException;
/**
*
*/
public abstract class WSDDTargetedChain
extends WSDDDeployableItem
{
private WSDDRequestFlow requestFlow;
private WSDDResponseFlow responseFlow;
private QName pivotQName;
protected WSDDTargetedChain()
{
}
/**
*
* @param e (Element) XXX
* @throws WSDDException XXX
*/
protected WSDDTargetedChain(Element e)
throws WSDDException
{
super(e);
Element reqEl = getChildElement(e, ELEM_WSDD_REQFLOW);
if (reqEl != null && reqEl.getElementsByTagName("*").getLength()>0) {
requestFlow = new WSDDRequestFlow(reqEl);
}
Element respEl = getChildElement(e, ELEM_WSDD_RESPFLOW);
if (respEl != null && respEl.getElementsByTagName("*").getLength()>0) {
responseFlow = new WSDDResponseFlow(respEl);
}
// !!! pivot? use polymorphic method?
String pivotStr = e.getAttribute(ATTR_PIVOT);
if (pivotStr != null && !pivotStr.equals(""))
pivotQName = XMLUtils.getQNameFromString(pivotStr, e);
}
public WSDDRequestFlow getRequestFlow()
{
return requestFlow;
}
public void setRequestFlow(WSDDRequestFlow flow)
{
requestFlow = flow;
}
public WSDDResponseFlow getResponseFlow()
{
return responseFlow;
}
public void setResponseFlow(WSDDResponseFlow flow)
{
responseFlow = flow;
}
/**
*
* @return XXX
*/
public WSDDFaultFlow[] getFaultFlows()
{
return null;
}
/**
*
* @param name XXX
* @return XXX
*/
public WSDDFaultFlow getFaultFlow(QName name)
{
WSDDFaultFlow[] t = getFaultFlows();
for (int n = 0; n < t.length; n++) {
if (t[n].getQName().equals(name)) {
return t[n];
}
}
return null;
}
/**
*
* @param type XXX
*/
public void setType(String type) throws WSDDException
{
throw new WSDDException(Messages.getMessage(
"noTypeSetting", getElementName().getLocalPart()));
}
public QName getPivotQName()
{
return pivotQName;
}
public void setPivotQName(QName pivotQName) {
this.pivotQName = pivotQName;
}
/**
*
* @param pivot XXX
* @param registry XXX
* @return XXX
* @throws ConfigurationException XXX
*/
public Handler makeNewInstance(EngineConfiguration registry)
throws ConfigurationException
{
Handler reqHandler = null;
WSDDChain req = getRequestFlow();
if (req != null)
reqHandler = req.getInstance(registry);
Handler pivot = null;
if (pivotQName != null) {
if (URI_WSDD_JAVA.equals(pivotQName.getNamespaceURI())) {
try {
pivot = (Handler)ClassUtils.forName(pivotQName.getLocalPart()).newInstance();
} catch (InstantiationException e) {
throw new ConfigurationException(e);
} catch (IllegalAccessException e) {
throw new ConfigurationException(e);
} catch (ClassNotFoundException e) {
throw new ConfigurationException(e);
}
} else {
pivot = registry.getHandler(pivotQName);
}
}
Handler respHandler = null;
WSDDChain resp = getResponseFlow();
if (resp != null)
respHandler = resp.getInstance(registry);
Handler retVal = new org.apache.axis.SimpleTargetedChain(reqHandler, pivot,
respHandler);
retVal.setOptions(getParametersTable());
return retVal;
}
/**
* Write this element out to a SerializationContext
*/
public final void writeFlowsToContext(SerializationContext context)
throws IOException {
if (requestFlow != null) {
requestFlow.writeToContext(context);
}
if (responseFlow != null) {
responseFlow.writeToContext(context);
}
}
public void deployToRegistry(WSDDDeployment registry)
{
// deploy any named subparts
if (requestFlow != null) {
requestFlow.deployToRegistry(registry);
}
if (responseFlow != null) {
responseFlow.deployToRegistry(registry);
}
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy