| SOAPFactory.java |
/*
* JBoss, the OpenSource EJB server
*
* Distributable under LGPL license.
* See terms of license at gnu.org.
*/
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 or other SOAPElement objects.
*
* SOAPFactory also has methods to create javax.xml.soap.Detail objects as well as java.xml.soap.Name objects.
*
* @author Scott.Stark@jboss.org
* @version $Revision: 1.4.6.2 $
*/
public abstract class SOAPFactory
{
private static final String DEFAULT_FACTORY = "org.jboss.axis.soap.SOAPFactoryImpl";
public SOAPFactory()
{
}
/** 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
{
SOAPFactory factory = null;
String factoryName = null;
try
{
factoryName = System.getProperty(SOAPFactory.class.getName(), DEFAULT_FACTORY);
ClassLoader loader = Thread.currentThread().getContextClassLoader();
Class factoryClass = loader.loadClass(factoryName);
factory = (SOAPFactory)factoryClass.newInstance();
}
catch (Throwable t)
{
throw new SOAPException("Failed to create SOAPFactory: " + factoryName, t);
}
return factory;
}
/** 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;
/** 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;
/** 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;
/** 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.
* @return
* @throws SOAPException
*/
public abstract Name createName(String localName) 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;
}
| SOAPFactory.java |