/*
* 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.Messages;
import org.apache.axis.utils.XMLUtils;
import org.w3c.dom.Element;
import javax.xml.namespace.QName;
import java.io.IOException;
import java.util.List;
import java.util.ArrayList;
/**
* Represents the global configuration of the Axis engine.
*
* @author James Snell
*/
public class WSDDGlobalConfiguration
extends WSDDDeployableItem
{
private WSDDRequestFlow requestFlow;
private WSDDResponseFlow responseFlow;
private ArrayList roles = new ArrayList();
/**
* Default constructor
*/
public WSDDGlobalConfiguration()
{
}
/**
*
* @param e (Element) XXX
* @throws WSDDException XXX
*/
public WSDDGlobalConfiguration(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);
}
Element [] roleElements = getChildElements(e, ELEM_WSDD_ROLE);
for (int i = 0; i < roleElements.length; i++) {
String role = XMLUtils.getChildCharacterData(roleElements[i]);
roles.add(role);
}
}
protected QName getElementName()
{
return WSDDConstants.QNAME_GLOBAL;
}
/**
* Get our request flow
*/
public WSDDRequestFlow getRequestFlow()
{
return requestFlow;
}
/**
* Set our request flow
*/
public void setRequestFlow(WSDDRequestFlow reqFlow)
{
requestFlow = reqFlow;
}
/**
* Get our response flow
*/
public WSDDResponseFlow getResponseFlow()
{
return responseFlow;
}
/**
* Set the response flow
*/
public void setResponseFlow(WSDDResponseFlow responseFlow) {
this.responseFlow = responseFlow;
}
/**
*
* @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;
}
/**
*
* @return XXX
*/
public QName getType()
{
return null;
}
/**
*
* @param type XXX
*/
public void setType(String type) throws WSDDException
{
throw new WSDDException(Messages.getMessage("noTypeOnGlobalConfig00"));
}
/**
*
* @param registry XXX
* @return XXX
*/
public Handler makeNewInstance(EngineConfiguration registry)
{
return null;
}
/**
* Write this element out to a SerializationContext
*/
public void writeToContext(SerializationContext context)
throws IOException {
context.startElement(QNAME_GLOBAL, null);
writeParamsToContext(context);
if (requestFlow != null)
requestFlow.writeToContext(context);
if (responseFlow != null)
responseFlow.writeToContext(context);
context.endElement();
}
public void deployToRegistry(WSDDDeployment registry)
throws ConfigurationException {
if (requestFlow != null)
requestFlow.deployToRegistry(registry);
if (responseFlow != null)
responseFlow.deployToRegistry(registry);
}
public List getRoles() {
return (List)roles.clone();
}
}
|