Package org.apache.cxf.ws.addressing

# Class VersionTransformer

java.lang.Object
org.apache.cxf.ws.addressing.VersionTransformer

public class VersionTransformer extends Object
This class is responsible for transforming between the native WS-Addressing schema version (i.e. 2005/08) and exposed version (currently may be 2005/08 or 2004/08).

The native version is that used throughout the stack, were the WS-A types are represented via the JAXB generated types for the 2005/08 schema.

The exposed version is that used when the WS-A types are externalized, i.e. are encoded in the headers of outgoing messages. For outgoing requests, the exposed version is determined from configuration. For outgoing responses, the exposed version is determined by the exposed version of the corresponding request.

The motivation for using different native and exposed types is usually to facilitate a WS-* standard based on an earlier version of WS-Adressing (for example WS-RM depends on the 2004/08 version).

- ## Nested Class Summary

  Nested Classes
  Modifier and Type
  Class
  Description
  `static class`
  `VersionTransformer.Names200403`
  Holder for 2004/03 Names
  `static class`
  `VersionTransformer.Names200408`
  Holder for 2004/08 Names

- ## Field Summary

  Fields
  Modifier and Type
  Field
  Description
  `protected static final String`
  `NATIVE_VERSION`

- ## Constructor Summary

  Constructors
  Modifier
  Constructor
  Description
  `protected`
  `VersionTransformer()`
  Constructor.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `static org.apache.cxf.ws.addressing.v200408.AttributedURI`
  `convert(org.apache.cxf.ws.addressing.AttributedURIType internal)`
  Convert from 2005/08 AttributedURI to 2004/08 AttributedURI.
  `static org.apache.cxf.ws.addressing.v200408.EndpointReferenceType`
  `convert(org.apache.cxf.ws.addressing.EndpointReferenceType internal)`
  Convert from 2005/08 EndpointReferenceType to 2004/08 EndpointReferenceType.
  `static org.apache.cxf.ws.addressing.v200408.ReferenceParametersType`
  `convert(org.apache.cxf.ws.addressing.ReferenceParametersType internal)`
  Convert from 2005/08 ReferenceParametersType to 2004/08 ReferenceParametersType.
  `static org.apache.cxf.ws.addressing.v200408.Relationship`
  `convert(org.apache.cxf.ws.addressing.RelatesToType internal)`
  Convert from 2005/08 RelatesToType to 2004/08 Relationship.
  `static org.apache.cxf.ws.addressing.AttributedURIType`
  `convert(org.apache.cxf.ws.addressing.v200403.AttributedURI exposed)`
  Convert from 2004/03 AttributedURI to 2005/08 AttributedURI.
  `static org.apache.cxf.ws.addressing.EndpointReferenceType`
  `convert(org.apache.cxf.ws.addressing.v200403.EndpointReferenceType exposed)`
  Convert from 2004/03 EndpointReferenceType to 2005/08 EndpointReferenceType.
  `static org.apache.cxf.ws.addressing.RelatesToType`
  `convert(org.apache.cxf.ws.addressing.v200403.Relationship exposed)`
  Convert from 2004/03 Relationship to 2005/08 RelatesToType.
  `static org.apache.cxf.ws.addressing.AttributedURIType`
  `convert(org.apache.cxf.ws.addressing.v200408.AttributedURI exposed)`
  Convert from 2004/08 AttributedURI to 2005/08 AttributedURI.
  `static org.apache.cxf.ws.addressing.EndpointReferenceType`
  `convert(org.apache.cxf.ws.addressing.v200408.EndpointReferenceType exposed)`
  Convert from 2004/08 EndpointReferenceType to 2005/08 EndpointReferenceType.
  `static org.apache.cxf.ws.addressing.ReferenceParametersType`
  `convert(org.apache.cxf.ws.addressing.v200408.ReferenceParametersType exposed)`
  Convert from 2004/08 ReferenceParametersType to 2005/08 ReferenceParametersType.
  `static org.apache.cxf.ws.addressing.RelatesToType`
  `convert(org.apache.cxf.ws.addressing.v200408.Relationship exposed)`
  Convert from 2004/08 Relationship to 2005/08 RelatesToType.
  `static org.apache.cxf.ws.addressing.v200403.AttributedURI`
  `convertTo200403(org.apache.cxf.ws.addressing.AttributedURIType internal)`
  Convert from 2005/08 AttributedURI to 2004/03 AttributedURI.
  `static org.apache.cxf.ws.addressing.v200403.EndpointReferenceType`
  `convertTo200403(org.apache.cxf.ws.addressing.EndpointReferenceType internal)`
  Convert from 2005/08 EndpointReferenceType to 2004/03 EndpointReferenceType.
  `static org.apache.cxf.ws.addressing.v200403.Relationship`
  `convertTo200403(org.apache.cxf.ws.addressing.RelatesToType internal)`
  Convert from 2005/08 RelatesToType to 2004/03 Relationship.
  `static org.apache.cxf.ws.addressing.EndpointReferenceType`
  `convertToNative(Object exposed)`
  Converts a version specific EndpointReferenceType to the native version used internally by CXF
  `static jakarta.xml.bind.JAXBContext`
  `getExposedJAXBContext(String exposedURI)`
  `static Class<?>`
  `getExposedReferenceType(String exposedURI)`
  Gets the Class representing the EndpointReferenceType that is used for the specific WS-Addressing version
  `static boolean`
  `isSupported(String namespace)`
  `static org.apache.cxf.ws.addressing.EndpointReferenceType`
  `parseEndpointReference(Element ref)`
  Parse an EndpointReferenceType from a DOM element.

  ### Methods inherited from class java.lang.Object

  `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- ## Field Details

  - ### NATIVE_VERSION

    protected static final String NATIVE_VERSION
    See Also:
      - Constant Field Values

- ## Constructor Details

  - ### VersionTransformer

    protected VersionTransformer()
    Constructor.

- ## Method Details

  - ### isSupported

    public static boolean isSupported(String namespace)
    Parameters:
      `namespace` - a namspace URI to consider
    Returns:
      true if th WS-Addressing version specified by the namespace URI is supported

  - ### convert

    public static org.apache.cxf.ws.addressing.v200408.AttributedURI convert(org.apache.cxf.ws.addressing.AttributedURIType internal)
    Convert from 2005/08 AttributedURI to 2004/08 AttributedURI.
    Parameters:
      `internal` - the 2005/08 AttributedURIType
    Returns:
      an equivalent 2004/08 AttributedURI

  - ### convertTo200403

    public static org.apache.cxf.ws.addressing.v200403.AttributedURI convertTo200403(org.apache.cxf.ws.addressing.AttributedURIType internal)
    Convert from 2005/08 AttributedURI to 2004/03 AttributedURI.
    Parameters:
      `internal` - the 2005/08 AttributedURIType
    Returns:
      an equivalent 2004/08 or 2004/03 AttributedURI

  - ### convert

    public static org.apache.cxf.ws.addressing.AttributedURIType convert(org.apache.cxf.ws.addressing.v200408.AttributedURI exposed)
    Convert from 2004/08 AttributedURI to 2005/08 AttributedURI.
    Parameters:
      `exposed` - the 2004/08 AttributedURI
    Returns:
      an equivalent 2005/08 AttributedURIType

  - ### convert

    public static org.apache.cxf.ws.addressing.AttributedURIType convert(org.apache.cxf.ws.addressing.v200403.AttributedURI exposed)
    Convert from 2004/03 AttributedURI to 2005/08 AttributedURI.
    Parameters:
      `exposed` - the 2004/03 AttributedURI
    Returns:
      an equivalent 2005/08 AttributedURIType

  - ### convert

    public static org.apache.cxf.ws.addressing.v200408.EndpointReferenceType convert(org.apache.cxf.ws.addressing.EndpointReferenceType internal)
    Convert from 2005/08 EndpointReferenceType to 2004/08 EndpointReferenceType.
    Parameters:
      `internal` - the 2005/08 EndpointReferenceType
    Returns:
      an equivalent 2004/08 EndpointReferenceType

  - ### convertTo200403

    public static org.apache.cxf.ws.addressing.v200403.EndpointReferenceType convertTo200403(org.apache.cxf.ws.addressing.EndpointReferenceType internal)
    Convert from 2005/08 EndpointReferenceType to 2004/03 EndpointReferenceType.
    Parameters:
      `internal` - the 2005/08 EndpointReferenceType
    Returns:
      an equivalent 2004/03 EndpointReferenceType

  - ### convert

    public static org.apache.cxf.ws.addressing.EndpointReferenceType convert(org.apache.cxf.ws.addressing.v200408.EndpointReferenceType exposed)
    Convert from 2004/08 EndpointReferenceType to 2005/08 EndpointReferenceType.
    Parameters:
      `exposed` - the 2004/08 EndpointReferenceType
    Returns:
      an equivalent 2005/08 EndpointReferenceType

  - ### convert

    public static org.apache.cxf.ws.addressing.EndpointReferenceType convert(org.apache.cxf.ws.addressing.v200403.EndpointReferenceType exposed)
    Convert from 2004/03 EndpointReferenceType to 2005/08 EndpointReferenceType.
    Parameters:
      `exposed` - the 2004/03 EndpointReferenceType
    Returns:
      an equivalent 2005/08 EndpointReferenceType

  - ### convert

    public static org.apache.cxf.ws.addressing.v200408.ReferenceParametersType convert(org.apache.cxf.ws.addressing.ReferenceParametersType internal)
    Convert from 2005/08 ReferenceParametersType to 2004/08 ReferenceParametersType.
    Parameters:
      `internal` - the 2005/08 ReferenceParametersType
    Returns:
      an equivalent 2004/08 ReferenceParametersType

  - ### convert

    public static org.apache.cxf.ws.addressing.ReferenceParametersType convert(org.apache.cxf.ws.addressing.v200408.ReferenceParametersType exposed)
    Convert from 2004/08 ReferenceParametersType to 2005/08 ReferenceParametersType.
    Parameters:
      `exposed` - the 2004/08 ReferenceParametersType
    Returns:
      an equivalent 2005/08 ReferenceParametersType

  - ### convert

    public static org.apache.cxf.ws.addressing.v200408.Relationship convert(org.apache.cxf.ws.addressing.RelatesToType internal)
    Convert from 2005/08 RelatesToType to 2004/08 Relationship.
    Parameters:
      `internal` - the 2005/08 RelatesToType
    Returns:
      an equivalent 2004/08 Relationship

  - ### convertTo200403

    public static org.apache.cxf.ws.addressing.v200403.Relationship convertTo200403(org.apache.cxf.ws.addressing.RelatesToType internal)
    Convert from 2005/08 RelatesToType to 2004/03 Relationship.
    Parameters:
      `internal` - the 2005/08 RelatesToType
    Returns:
      an equivalent 2004/03 Relationship

  - ### convert

    public static org.apache.cxf.ws.addressing.RelatesToType convert(org.apache.cxf.ws.addressing.v200408.Relationship exposed)
    Convert from 2004/08 Relationship to 2005/08 RelatesToType.
    Parameters:
      `exposed` - the 2004/08 Relationship
    Returns:
      an equivalent 2005/08 RelatesToType

  - ### convert

    public static org.apache.cxf.ws.addressing.RelatesToType convert(org.apache.cxf.ws.addressing.v200403.Relationship exposed)
    Convert from 2004/03 Relationship to 2005/08 RelatesToType.
    Parameters:
      `exposed` - the 2004/03 Relationship
    Returns:
      an equivalent 2005/08 RelatesToType

  - ### parseEndpointReference

    public static org.apache.cxf.ws.addressing.EndpointReferenceType parseEndpointReference(Element ref) throws jakarta.xml.bind.JAXBException
    Parse an EndpointReferenceType from a DOM element. Handles all of the WS-Addressing namespaces currently supported.
    Parameters:
      `ref` -
    Throws:
      `jakarta.xml.bind.JAXBException`

  - ### convertToNative

    public static org.apache.cxf.ws.addressing.EndpointReferenceType convertToNative(Object exposed)
    Converts a version specific EndpointReferenceType to the native version used internally by CXF
    Parameters:
      `exposed` -

  - ### getExposedReferenceType

    public static Class<?> getExposedReferenceType(String exposedURI)
    Gets the Class representing the EndpointReferenceType that is used for the specific WS-Addressing version
    Parameters:
      `exposedURI` -

  - ### getExposedJAXBContext

    public static jakarta.xml.bind.JAXBContext getExposedJAXBContext(String exposedURI) throws jakarta.xml.bind.JAXBException
    Parameters:
      `exposedURI` - specifies the version WS-Addressing
    Returns:
      JABXContext for the exposed namespace URI
    Throws:
      `jakarta.xml.bind.JAXBException`