org.apache.axis.description.ServiceDesc Maven / Gradle / Ivy
/*
* Copyright 2002-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.description;
import org.apache.axis.encoding.TypeMapping;
import org.apache.axis.encoding.TypeMappingRegistry;
import org.apache.axis.constants.Style;
import org.apache.axis.constants.Use;
import javax.xml.namespace.QName;
import java.util.ArrayList;
import java.util.List;
import java.io.Serializable;
public interface ServiceDesc extends Serializable {
/**
* What kind of service is this?
* @return
*/
Style getStyle();
void setStyle(Style style);
/**
* What kind of use is this?
* @return
*/
Use getUse();
void setUse(Use use);
/**
* the wsdl file of the service.
* When null, it means that the wsdl should be autogenerated
* @return filename or null
*/
String getWSDLFile();
/**
* set the wsdl file of the service; this causes the named
* file to be returned on a ?wsdl, probe, not introspection
* generated wsdl.
* @param wsdlFileName filename or null to re-enable introspection
*/
void setWSDLFile(String wsdlFileName);
List getAllowedMethods();
void setAllowedMethods(List allowedMethods);
TypeMapping getTypeMapping();
void setTypeMapping(TypeMapping tm);
/**
* the name of the service
*/
String getName();
/**
* the name of the service
* @param name
*/
void setName(String name);
/**
* get the documentation for the service
*/
String getDocumentation();
/**
* set the documentation for the service
*/
void setDocumentation(String documentation);
void removeOperationDesc(OperationDesc operation);
void addOperationDesc(OperationDesc operation);
/**
* get all the operations as a list of OperationDescs.
* this method triggers an evaluation of the valid operations by
* introspection, so use sparingly
* @return reference to the operations array. This is not a copy
*/
ArrayList getOperations();
/**
* get all overloaded operations by name
* @param methodName
* @return null for no match, or an array of OperationDesc objects
*/
OperationDesc [] getOperationsByName(String methodName);
/**
* Return an operation matching the given method name. Note that if we
* have multiple overloads for this method, we will return the first one.
* @return null for no match
*/
OperationDesc getOperationByName(String methodName);
/**
* Map an XML QName to an operation. Returns the first one it finds
* in the case of mulitple matches.
* @return null for no match
*/
OperationDesc getOperationByElementQName(QName qname);
/**
* Return all operations which match this QName (i.e. get all the
* overloads)
* @return null for no match
*/
OperationDesc [] getOperationsByQName(QName qname);
void setNamespaceMappings(List namespaces);
String getDefaultNamespace();
void setDefaultNamespace(String namespace);
void setProperty(String name, Object value);
Object getProperty(String name);
String getEndpointURL();
void setEndpointURL(String endpointURL);
TypeMappingRegistry getTypeMappingRegistry();
void setTypeMappingRegistry(TypeMappingRegistry tmr);
boolean isInitialized();
/**
* Determine whether or not this is a "wrapped" invocation, i.e. whether
* the outermost XML element of the "main" body element represents a
* method call, with the immediate children of that element representing
* arguments to the method.
*
* @return true if this is wrapped (i.e. RPC or WRAPPED style),
* false otherwise
*/
boolean isWrapped();
List getDisallowedMethods();
void setDisallowedMethods(List disallowedMethods);
}