com.sun.xml.ws.model
Class AbstractSEIModelImpl

java.lang.Object
  extended by com.sun.xml.ws.model.AbstractSEIModelImpl
All Implemented Interfaces:
SEIModel
Direct Known Subclasses:
SOAPSEIModel

public abstract class AbstractSEIModelImpl
extends Object
implements SEIModel

model of the web service. Used by the runtime marshall/unmarshall web service invocations $author: JAXWS Development Team


Field Summary
protected  QName emptyBodyName
           
protected  JAXBRIContext jaxbContext
           
 
Constructor Summary
AbstractSEIModelImpl()
           
 
Method Summary
 void addAdditionalClasses(Class... additionalClasses)
          Adds additional classes obtained from XmlSeeAlso annotation.
(package private)  void addJavaMethod(JavaMethodImpl jm)
           
 void applyParameterBinding(WSDLBoundPortTypeImpl wsdlBinding)
          Deprecated. To be removed once client side new architecture is implemented
 void freeze(WSDLPortImpl port)
          Link SEIModel to WSDLModel.
 QName getBoundPortTypeName()
          Gives the wsdl:binding@name value
 Bridge getBridge(TypeReference type)
           
 Method getDispatchMethod(QName qname)
           
 JavaMethodImpl getJavaMethod(Method method)
          This method will be useful to get the JavaMethod corrrespondiong to a Method - such as on the client side.
 JavaMethodImpl getJavaMethod(QName name)
          Gives a JavaMethod for a given QName.
 Collection<JavaMethodImpl> getJavaMethods()
          Gives all the JavaMethod for a wsdl:port for which this SEIModel is created.
 JAXBRIContext getJAXBContext()
          JAXBContext that will be used to marshall/unmarshall the java classes found in the SEI.
 List<String> getKnownNamespaceURIs()
           
 Pool.Marshaller getMarshallerPool()
           
 WSDLPort getPort()
          Gets the WSDLPort that represents the port that this SEI binds to.
 QName getPortName()
          Value of the wsdl:port name associated with the {@link SEIModel)
 QName getPortTypeName()
          Value of wsdl:portType bound to the port associated with the {@link SEIModel)
 QName getQNameForJM(JavaMethodImpl jm)
          Deprecated. Use JavaMethod.getOperationName().
 QName getServiceQName()
          wsdl:service qualified name for the port associated with the {@link SEIModel)
 String getTargetNamespace()
          This is the targetNamespace for the WSDL containing the PortType definition
 String getWSDLLocation()
          Location of the WSDL that defines the port associated with the SEIModel
 boolean isCheckedException(Method m, Class ex)
           
 boolean isKnownFault(QName name, Method method)
           
protected abstract  void populateMaps()
          Populate methodToJM and nameToJM maps.
(package private)  void postProcess()
           
(package private)  void put(Method method, JavaMethodImpl jm)
           
(package private)  void put(QName name, JavaMethodImpl jm)
           
(package private)  void setPortName(QName name)
           
(package private)  void setPortTypeName(QName name)
           
(package private)  void setServiceQName(QName name)
           
(package private)  void setTargetNamespace(String namespace)
          This is the targetNamespace for the WSDL containing the PortType definition
(package private)  void setWSDLLocation(String location)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

jaxbContext

protected JAXBRIContext jaxbContext

emptyBodyName

protected final QName emptyBodyName
Constructor Detail

AbstractSEIModelImpl

public AbstractSEIModelImpl()
Method Detail

postProcess

void postProcess()

freeze

public void freeze(WSDLPortImpl port)
Link SEIModel to WSDLModel. Merge it with postProcess().


populateMaps

protected abstract void populateMaps()
Populate methodToJM and nameToJM maps.


getMarshallerPool

public Pool.Marshaller getMarshallerPool()
Specified by:
getMarshallerPool in interface SEIModel

getJAXBContext

public JAXBRIContext getJAXBContext()
Description copied from interface: SEIModel
JAXBContext that will be used to marshall/unmarshall the java classes found in the SEI.

Specified by:
getJAXBContext in interface SEIModel
Returns:
the JAXBRIContext

getKnownNamespaceURIs

public List<String> getKnownNamespaceURIs()
Returns:
the known namespaces from JAXBRIContext

getBridge

public final Bridge getBridge(TypeReference type)
Returns:
the Bridge for the type

getDispatchMethod

public Method getDispatchMethod(QName qname)
Returns:
the Method for a given WSDLOperation qname

isKnownFault

public boolean isKnownFault(QName name,
                            Method method)
Returns:
true if name is the name of a known fault name for the Method method

isCheckedException

public boolean isCheckedException(Method m,
                                  Class ex)
Returns:
true if ex is a Checked Exception for Method m

getJavaMethod

public JavaMethodImpl getJavaMethod(Method method)
Description copied from interface: SEIModel
This method will be useful to get the JavaMethod corrrespondiong to a Method - such as on the client side.

Specified by:
getJavaMethod in interface SEIModel
Parameters:
method - for which JavaMethod is asked for
Returns:
the JavaMethod representing the method

getJavaMethod

public JavaMethodImpl getJavaMethod(QName name)
Description copied from interface: SEIModel
Gives a JavaMethod for a given QName. The QName will be equivalent to the SOAP Body or Header block or can simply be the name of an infoset that corresponds to the payload.

Specified by:
getJavaMethod in interface SEIModel
Returns:
the JavaMethod associated with the operation named name

getQNameForJM

public QName getQNameForJM(JavaMethodImpl jm)
Deprecated. Use JavaMethod.getOperationName().

Returns:
the QName associated with the JavaMethod jm.

getJavaMethods

public final Collection<JavaMethodImpl> getJavaMethods()
Description copied from interface: SEIModel
Gives all the JavaMethod for a wsdl:port for which this SEIModel is created.

Specified by:
getJavaMethods in interface SEIModel
Returns:
a Collection of JavaMethods associated with this RuntimeModel

addJavaMethod

void addJavaMethod(JavaMethodImpl jm)

applyParameterBinding

public void applyParameterBinding(WSDLBoundPortTypeImpl wsdlBinding)
Deprecated. To be removed once client side new architecture is implemented

Used from WSServiceDelegate to apply the binding information from WSDL after the model is created frm SEI class on the client side. On the server side all the binding information is available before modeling and this method is not used.


put

void put(QName name,
         JavaMethodImpl jm)

put

void put(Method method,
         JavaMethodImpl jm)

getWSDLLocation

public String getWSDLLocation()
Description copied from interface: SEIModel
Location of the WSDL that defines the port associated with the SEIModel

Specified by:
getWSDLLocation in interface SEIModel
Returns:
wsdl location uri - always non-null

setWSDLLocation

void setWSDLLocation(String location)

getServiceQName

public QName getServiceQName()
Description copied from interface: SEIModel
wsdl:service qualified name for the port associated with the {@link SEIModel)

Specified by:
getServiceQName in interface SEIModel
Returns:
wsdl:service@name value - always non-null

getPort

public WSDLPort getPort()
Description copied from interface: SEIModel
Gets the WSDLPort that represents the port that this SEI binds to.

Specified by:
getPort in interface SEIModel

getPortName

public QName getPortName()
Description copied from interface: SEIModel
Value of the wsdl:port name associated with the {@link SEIModel)

Specified by:
getPortName in interface SEIModel
Returns:
wsdl:service/wsdl:port@name value, always non-null

getPortTypeName

public QName getPortTypeName()
Description copied from interface: SEIModel
Value of wsdl:portType bound to the port associated with the {@link SEIModel)

Specified by:
getPortTypeName in interface SEIModel
Returns:

setServiceQName

void setServiceQName(QName name)

setPortName

void setPortName(QName name)

setPortTypeName

void setPortTypeName(QName name)

setTargetNamespace

void setTargetNamespace(String namespace)
This is the targetNamespace for the WSDL containing the PortType definition


getTargetNamespace

public String getTargetNamespace()
This is the targetNamespace for the WSDL containing the PortType definition

Specified by:
getTargetNamespace in interface SEIModel

getBoundPortTypeName

@NotNull
public QName getBoundPortTypeName()
Description copied from interface: SEIModel
Gives the wsdl:binding@name value

Specified by:
getBoundPortTypeName in interface SEIModel

addAdditionalClasses

public void addAdditionalClasses(Class... additionalClasses)
Adds additional classes obtained from XmlSeeAlso annotation. In starting from wsdl case these classes would most likely be JAXB ObjectFactory that references other classes.