Sun GlassFish(tm) Message Queue v4.4

## com.sun.messaging.bridge.service
Class MessageTransformer<T,S>

    java.lang.Object
      com.sun.messaging.bridge.service.MessageTransformer<T,S>

    public abstract class MessageTransformer<T,S>

extends Object

The message transformer class to be extended by user. Its implementation must provide a public zero-argument constructor. The following is an example usage of this class for MQ STOMP bridge

     import java.util.*;
     import javax.jms.*;
     import com.sun.messaging.bridge.service.MessageTransformer;

     public class MessageTran extends MessageTransformer <Message, Message> {

     public Message transform(Message message,
                              boolean readOnly,
                              String charsetName,
                              String source,
                              String target,
                              Properties properties)
                              throws Exception {

        Message m = message;
        if (source.equals(STOMP)) { //from STOMP client to Java Message Queue
            //convert any invalid headers from STOMP SEND frame
            if (properties != null) {
                ......
                //convert key to valid JMS message property name, then call m.setStringProperty()
                ......
            }

        } else if (source.equals(SUN_MQ)) { //from Java Message Queue to STOMP client

            if (message instanceof ObjectMessage) {

                //create a new BytesMessage for message to be transformed to
                BytesMessage bm = (BytesMessage)createJMSMessage(JMSMessageType.BYTESMESSAGE);

                //convert message to the BytesMessage
                ......
                m = bm;
            } else {
                ....
            }
        }
        return m;
     }

Nested Class Summary
`static class` `MessageTransformer.JMSMessageType`

Field Summary
`static String` `STOMP` The predefined provider name for JMS message to/from STOMP client
`static String` `SUN_MQ` The predefined provider name for JMS message to/from Sun Java Message Queue

Constructor Summary
`MessageTransformer()`

Method Summary
`protected Message` `branchTo(Object d)` To be called from the transform() method when needs to tell the bridge to branch the message that is to be returned by the transform() method to a different destination in the target provider
`protected Message` `createJMSMessage(MessageTransformer.JMSMessageType type)` Create a JMS message object.
`protected Queue` `createQueue(String d)` To be called from the transform() method when needs to create a JMS Queue object to the target provider
`protected Topic` `createTopic(String d)` To be called from the transform() method when needs to create a JMS Topic object to the target provider
`void` `init(Object obj, String bridgeType)` This method is called by the bridge service before transform() is called.
`abstract T` `transform(S message, boolean readOnly, String charsetName, String source, String target, Properties properties)` To be implemented by user

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Field Detail

### SUN_MQ

    public static final String SUN_MQ

  The predefined provider name for JMS message to/from Sun Java Message Queue

  See Also:
    Constant Field Values

### STOMP

    public static final String STOMP

  The predefined provider name for JMS message to/from STOMP client

  See Also:
    Constant Field Values

Constructor Detail

### MessageTransformer

    public MessageTransformer()

Method Detail

### init

    public final void init(Object obj,
                           String bridgeType)

  This method is called by the bridge service before transform() is called. A message transformer object is initialized by init() each time before transform() is called. After transform() returns, it's back to uninitialized state.

### createJMSMessage

    protected final Message createJMSMessage(MessageTransformer.JMSMessageType type)
                                      throws Exception

  Create a JMS message object. This method is to be used in tranform() method implemenation when it needs to create a new JMS message

  Parameters:
    `type` - the type of the JMS message to be created
  Returns:
    a newly created uninitialized JMS message object
  Throws:
    `IllegalStateException` - if this MessageTransfomer object is not initialized
    `Exception` - if fails to create the JMS Message

### createQueue

    protected final Queue createQueue(String d)
                               throws Exception

  To be called from the transform() method when needs to create a JMS Queue object to the target provider

  Parameters:
    `queueName` - the name of the Queue
  Returns:
    a javax.jms.Queue object
  Throws:
    `IllegalStateException` - if this MessageTransfomer object is not initialized
    `Exception` - if fails to create the Queue object

### createTopic

    protected final Topic createTopic(String d)
                               throws Exception

  To be called from the transform() method when needs to create a JMS Topic object to the target provider

  Parameters:
    `topicName` - the name of the Topic
  Returns:
    a javax.jms.Topic object
  Throws:
    `IllegalStateException` - if this MessageTransfomer object is not initialized
    `Exception` - if fails to create the Topic object

### branchTo

    protected final Message branchTo(Object d)
                              throws Exception

  To be called from the transform() method when needs to tell the bridge to branch the message that is to be returned by the transform() method to a different destination in the target provider

  Throws:
    `IllegalStateException` - if this MessageTransfomer object is not initialized
    `IllegalArgumentException` - if null argument
    `UnsupportedOperationException` - if the operation is not supported for the bridge type
    `Exception` - if fails to create the JMS Message

### transform

    public abstract T transform(S message,
                                boolean readOnly,
                                String charsetName,
                                String source,
                                String target,
                                Properties properties)
                         throws Exception

  To be implemented by user

  Parameters:
    `message` - the message object to be tranformed.
    `readOnly` - if the message is in read-only mode
    `charsetName` - the charset name for message if applicable, null if not available
    `source` - the source provider name
    `target` - the target provider name
    `properties` - any properties for the transform() call, null if none
  Returns:
    a message object that is transformed from the passed in message
  Throws:
    `Exception` - if unable to transform message

Sun GlassFish(tm) Message Queue v4.4

Copyright 2009 Sun Microsystems, Inc. 4150 Network Circle,
Santa Clara, California, 95054, U.S.A. All Rights Reserved.