com.sun.xml.ws.message
Class AbstractHeaderImpl

java.lang.Object
  extended by com.sun.xml.ws.message.AbstractHeaderImpl
All Implemented Interfaces:
Header
Direct Known Subclasses:
DOMHeader, FaultDetailHeader, JAXBHeader, OutboundStreamHeader, ProblemActionHeader, StreamHeader, StringHeader

public abstract class AbstractHeaderImpl
extends Object
implements Header

Partial default implementation of Header.

This is meant to be a convenient base class for Header-derived classes.


Field Summary
protected static AttributesImpl EMPTY_ATTS
           
 
Constructor Summary
protected AbstractHeaderImpl()
           
 
Method Summary
 String getAttribute(QName name)
          Gets the attribute value on the header element.
 String getRole(SOAPVersion soapVersion)
          Gets the value of the soap:role attribute (or soap:actor for SOAP 1.1).
 String getStringContent()
          Used to obtain value XYZ from a header that looks like "<header>XYZ</header>".
 boolean isIgnorable(SOAPVersion soapVersion, Set<String> roles)
          Checks if this header is ignorable for us (IOW, make sure that this header has a problematic "mustUnderstand" header value that we have to reject.)
 boolean isRelay()
          True if this header is to be relayed if not processed.
protected  boolean parseBool(String value)
          Parses a string that looks like xs:boolean into boolean.
 WSEndpointReference readAsEPR(AddressingVersion expected)
          Default implementation that copies the infoset.
<T> T
readAsJAXB(com.sun.xml.bind.api.Bridge<T> bridge)
          Deprecated.  
<T> T
readAsJAXB(com.sun.xml.bind.api.Bridge<T> bridge, com.sun.xml.bind.api.BridgeContext context)
          Deprecated.  
<T> T
readAsJAXB(Unmarshaller unmarshaller)
          Reads the header as a JAXB object by using the given unmarshaller.
<T> T
readAsJAXB(XMLBridge<T> bridge)
          Reads the header as a data-bond object
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface com.sun.xml.ws.api.message.Header
getAttribute, getLocalPart, getNamespaceURI, readHeader, writeTo, writeTo, writeTo
 

Field Detail

EMPTY_ATTS

protected static final AttributesImpl EMPTY_ATTS
Constructor Detail

AbstractHeaderImpl

protected AbstractHeaderImpl()
Method Detail

readAsJAXB

public final <T> T readAsJAXB(com.sun.xml.bind.api.Bridge<T> bridge,
                              com.sun.xml.bind.api.BridgeContext context)
                   throws JAXBException
Deprecated. 

Throws:
JAXBException

readAsJAXB

public <T> T readAsJAXB(Unmarshaller unmarshaller)
             throws JAXBException
Description copied from interface: Header
Reads the header as a JAXB object by using the given unmarshaller.

Specified by:
readAsJAXB in interface Header
Throws:
JAXBException

readAsJAXB

public <T> T readAsJAXB(com.sun.xml.bind.api.Bridge<T> bridge)
             throws JAXBException
Deprecated. 

Description copied from interface: Header
Reads the header as a JAXB object by using the given unmarshaller.

Specified by:
readAsJAXB in interface Header
Throws:
JAXBException

readAsJAXB

public <T> T readAsJAXB(XMLBridge<T> bridge)
             throws JAXBException
Description copied from interface: Header
Reads the header as a data-bond object

Specified by:
readAsJAXB in interface Header
Throws:
JAXBException

readAsEPR

public WSEndpointReference readAsEPR(AddressingVersion expected)
                              throws XMLStreamException
Default implementation that copies the infoset. Not terribly efficient.

Specified by:
readAsEPR in interface Header
Parameters:
expected - The version of the addressing used to parse the EPR. If the actual infoset and this doesn't agree, then you'll get an WebServiceException stating that fact.
Returns:
On a successful return, this method never returns null.
Throws:
XMLStreamException

isIgnorable

public boolean isIgnorable(@NotNull
                           SOAPVersion soapVersion,
                           @NotNull
                           Set<String> roles)
Description copied from interface: Header
Checks if this header is ignorable for us (IOW, make sure that this header has a problematic "mustUnderstand" header value that we have to reject.)

This method is used as a part of the mustUnderstanx processing. At the end of the processing, the JAX-WS identifies a list of Headers that were not understood. This method is invoked on those Headers, to verify that we don't need to report an error for it.

specifically, this method has to perform the following tasks:

Specified by:
isIgnorable in interface Header
Parameters:
soapVersion - The caller specifies the SOAP version that the pipeline is working against. Often each Header implementation already knows the SOAP version anyway, but this allows some Headers to avoid keeping it. That's why this redundant parameter is passed in.
roles - The set of role values that the current JAX-WS pipeline is assuming. Note that SOAP 1.1 and SOAP 1.2 use different strings for the same role, and the caller is responsible for supplying a proper value depending on the active SOAP version in use.
Returns:
true if no error needs to be reported. False if an error needs to be raised. See the method javadoc for more discussion.

getRole

@NotNull
public String getRole(@NotNull
                              SOAPVersion soapVersion)
Description copied from interface: Header
Gets the value of the soap:role attribute (or soap:actor for SOAP 1.1).

If the attribute is omitted, the value defaults to SOAPVersion.implicitRole.

Specified by:
getRole in interface Header
Parameters:
soapVersion - The caller specifies the SOAP version that the pipeline is working against. Often each Header implementation already knows the SOAP version anyway, but this allows some Headers to avoid keeping it. That's why this redundant parameter is passed in.
Returns:
never null. This string need not be interned.

isRelay

public boolean isRelay()
Description copied from interface: Header
True if this header is to be relayed if not processed. For SOAP 1.1 messages, this method always return false.

IOW, this method returns true if there's @soap:relay='true' is present.

Implementation Note

The implementation needs to check for both "true" and "1", but because attribute values are normalized, it doesn't have to consider " true", " 1 ", and so on.

Specified by:
isRelay in interface Header
Returns:
false.

getAttribute

public String getAttribute(QName name)
Description copied from interface: Header
Gets the attribute value on the header element.

This is a convenience method that calls into Header.getAttribute(String, String)

Specified by:
getAttribute in interface Header
Parameters:
name - Never null.
See Also:
Header.getAttribute(String, String)

parseBool

protected final boolean parseBool(String value)
Parses a string that looks like xs:boolean into boolean. This method assumes that the whilespace normalization has already taken place.


getStringContent

public String getStringContent()
Description copied from interface: Header
Used to obtain value XYZ from a header that looks like "<header>XYZ</header>". The primary use of this header for now is to access certain Addressing headers quickly.

Specified by:
getStringContent in interface Header
Returns:
Can be empty but always non-null.


Copyright (c) 1997-2012 Oracle and/or its affiliates. All rights reserved.