javax.xml.soap.SOAPFactory Maven / Gradle / Ivy
/*
* 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 javax.xml.soap;
/**
* SOAPFactory
is a factory for creating various objects that exist in the SOAP XML
* tree.
*
* SOAPFactory
can be used to create XML fragments that will eventually end up in the
* SOAP part. These fragments can be inserted as children of the SOAPHeaderElement
or
* SOAPBodyElement
or SOAPEnvelope
.
*
* SOAPFactory
also has methods to create javax.xml.soap.Detail
objects as
* well as java.xml.soap.Name
objects.
*/
public abstract class SOAPFactory {
public SOAPFactory() {
}
/**
* Create a SOAPElement
object initialized with the given Name
* object.
*
* @param name a Name
object with the XML name for the new element
* @return the new SOAPElement
object that was created
* @throws SOAPException if there is an error in creating the SOAPElement
object
*/
public abstract SOAPElement createElement(Name name) throws SOAPException;
/**
* Create a SOAPElement
object initialized with the given local name.
*
* @param localName a String
giving the local name for the new element
* @return the new SOAPElement
object that was created
* @throws SOAPException if there is an error in creating the SOAPElement
object
*/
public abstract SOAPElement createElement(String localName) throws SOAPException;
/**
* Create a new SOAPElement
object with the given local name, prefix and uri.
*
* @param localName a String
giving the local name for the new element
* @param prefix the prefix for this SOAPElement
* @param uri a String
giving the URI of the namespace to which the new
* element belongs
* @return the new SOAPElement
object that was created
* @throws SOAPException if there is an error in creating the SOAPElement
object
*/
public abstract SOAPElement createElement(String localName,
String prefix,
String uri)
throws SOAPException;
/**
* Creates a new Detail
object which serves as a container for
* DetailEntry
objects.
*
* This factory method creates Detail
objects for use in situations where it is not
* practical to use the SOAPFault
abstraction.
*
* @return a Detail
object
* @throws SOAPException if there is a SOAP error
*/
public abstract Detail createDetail() throws SOAPException;
/**
* Creates a new Name
object initialized with the given local name, namespace
* prefix, and namespace URI.
*
* This factory method creates Name
objects for use in situations where it is not
* practical to use the SOAPEnvelope
abstraction.
*
* @param localName a String
giving the local name
* @param prefix a String
giving the prefix of the namespace
* @param uri a String
giving the URI of the namespace
* @return a Name
object initialized with the given local name, namespace prefix,
* and namespace URI
* @throws SOAPException if there is a SOAP error
*/
public abstract Name createName(String localName,
String prefix,
String uri)
throws SOAPException;
/**
* Creates a new Name
object initialized with the given local name.
*
* This factory method creates Name
objects for use in situations where it is not
* practical to use the SOAPEnvelope
abstraction.
*
* @param localName a String
giving the local name
* @return a Name
object initialized with the given local name
* @throws SOAPException if there is a SOAP error
*/
public abstract Name createName(String localName) throws SOAPException;
/**
* Creates a new instance of SOAPFactory
.
*
* @return a new instance of a SOAPFactory
* @throws SOAPException if there was an error creating the default SOAPFactory
*/
public static SOAPFactory newInstance() throws SOAPException {
try {
SOAPFactory factory = (SOAPFactory)FactoryFinder.find(SOAPFactory.class, null);
if (factory == null) {
factory = newInstance(SOAPConstants.SOAP_1_1_PROTOCOL);
}
return factory;
} catch (Exception exception) {
throw new SOAPException("Unable to create SOAPFactory: " + exception.getMessage());
}
}
/**
* Creates a new SOAPFactory object that is an instance of the specified implementation, this
* method uses the SAAJMetaFactory to locate the implementation class and create the SOAPFactory
* instance.
*
* @param protocol - a string constant representing the protocol of the specified SOAP factory
* implementation. May be either DYNAMIC_SOAP_PROTOCOL, DEFAULT_SOAP_PROTOCOL
* (which is the same as) SOAP_1_1_PROTOCOL, or SOAP_1_2_PROTOCOL. Returns: a
* new instance of a SOAPFactory
* @return javax.xml.soap.SOAPFactory
* @throws SOAPException - if there is an error creating the specified SOAPFactory
* @see SAAJMetaFactory
*/
public static SOAPFactory newInstance(String protocol) throws SOAPException {
return SAAJMetaFactory.getInstance().newSOAPFactory(protocol);
}
/**
* Creates a SOAPElement object from an existing DOM Element. If the DOM Element that is passed
* in as an argument is already a SOAPElement then this method must return it unmodified without
* any further work. Otherwise, a new SOAPElement is created and a deep copy is made of the
* domElement argument. The concrete type of the return value will depend on the name of the
* domElement argument. If any part of the tree rooted in domElement violates SOAP rules, a
* SOAPException will be thrown.
*
* @param domElement - the Element to be copied.
* @return a new SOAPElement that is a copy of domElement.
* @throws SOAPException - if there is an error in creating the SOAPElement object
* @see SOAPFactoryImpl
* @since SAAJ 1.3
*/
public SOAPElement createElement(org.w3c.dom.Element element)
throws SOAPException {
//see SOAPFactoryImpl
return null;
}
/**
* Creates a SOAPElement object initialized with the given QName object. The concrete type of
* the return value will depend on the name given to the new SOAPElement. For instance, a new
* SOAPElement with the name {http://www.w3.org/2003/05/soap-envelope}Envelope} Envelope would
* cause a SOAPEnvelope that supports SOAP 1.2 behavior to be created.
*
* @param qname - a QName object with the XML name for the new element
* @return the new SOAPElement object that was created
* @throws SOAPException - if there is an error in creating the SOAPElement object
* @see SOAPFactoryImpl
*/
public SOAPElement createElement(javax.xml.namespace.QName qname)
throws SOAPException {
return null;
}
public abstract SOAPFault createFault()
throws SOAPException;
public abstract SOAPFault createFault(java.lang.String reasonText,
javax.xml.namespace.QName faultCode)
throws SOAPException;
}