Overview | Package | Class | Tree | Deprecated | Index | Help
| Sun GlassFish(tm) Message Queue v4.4
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## 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` | `createJMSMessage(MessageTransformer.JMSMessageType type)` Create a JMS message object.
`void` | `init(Object obj)` 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)

  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

### 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

Overview | Package | Class | Tree | Deprecated | Index | Help
| Sun GlassFish(tm) Message Queue v4.4
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

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