org.mule.transport.legstar.transformer
Class AbstractHostToXmlMuleTransformer
java.lang.Object
org.mule.transformer.AbstractTransformer
org.mule.transformer.AbstractMessageTransformer
org.mule.transport.legstar.transformer.AbstractHostMuleTransformer
org.mule.transport.legstar.transformer.AbstractHostXmlMuleTransformer
org.mule.transport.legstar.transformer.AbstractHostToXmlMuleTransformer
- All Implemented Interfaces:
- org.mule.api.AnnotatedObject, org.mule.api.context.MuleContextAware, org.mule.api.lifecycle.Disposable, org.mule.api.lifecycle.Initialisable, org.mule.api.NameableObject, org.mule.api.NamedObject, org.mule.api.processor.MessageProcessor, org.mule.api.transformer.MessageTransformer, org.mule.api.transformer.Transformer, org.mule.endpoint.EndpointAware
public abstract class AbstractHostToXmlMuleTransformer
- extends AbstractHostXmlMuleTransformer
This ESB Transformer converts host data into XML using the regular LegStar
binding transformers.
| Fields inherited from class org.mule.transformer.AbstractTransformer |
encoding, endpoint, logger, mimeType, MULE_MESSAGE_DATA_TYPE, muleContext, name, returnType, sourceTypes |
| Fields inherited from interface org.mule.api.lifecycle.Initialisable |
PHASE_NAME |
| Fields inherited from interface org.mule.api.lifecycle.Disposable |
PHASE_NAME |
| Fields inherited from interface org.mule.api.AnnotatedObject |
PROPERTY_NAME |
|
Method Summary |
Object |
createXmlHolder(Map<String,String> transformedParts)
When multiple part were received from the host, each transformed parts
XML is stored in a map. |
QName |
getHolderQName()
Generated classes must implement this method for multi part messages. |
Object |
hostTransform(org.mule.api.MuleMessage esbMessage,
String encoding)
Specialized classes perform the actual transformation. |
void |
mergeXml(DocumentBuilder docBuilder,
String partXml,
String partID,
Document docResult,
Element elHolder)
Merges an XML fragment as a child of a holder element. |
Object |
toXml(byte[] hostBytes,
String hostCharset)
Host is sending a byte sequence so when apply either a single transformer
or a list of transformers to the entire payload. |
Object |
toXml(List<com.legstar.coxb.transform.AbstractTransformers> transformers,
byte[] hostBytes,
String hostCharset)
Host is sending a single byte sequence but multiple transformers must be
applied to decode the complete byte stream. |
Object |
toXml(Map<String,byte[]> hostParts,
String hostCharset)
When the host is sending an multiple parts part, this code transforms
each part. |
| Methods inherited from class org.mule.transformer.AbstractMessageTransformer |
checkReturnClass, doTransform, isSourceDataTypeSupported, transform, transform, transform |
| Methods inherited from class org.mule.transformer.AbstractTransformer |
dispose, generateTransformerName, getAnnotation, getAnnotations, getEncoding, getEncoding, getEndpoint, getMimeType, getName, getReturnClass, getReturnDataType, getSourceDataTypes, getSourceTypes, initialise, isAcceptNull, isAllowNullReturn, isConsumed, isIgnoreBadInput, isSourceDataTypeSupported, isSourceTypeSupported, isSourceTypeSupported, process, registerSourceType, registerSourceType, setAllowNullReturn, setAnnotations, setEncoding, setEndpoint, setIgnoreBadInput, setMimeType, setMuleContext, setName, setReturnClass, setReturnDataType, toString, transform, unregisterSourceType, unregisterSourceType |
| Methods inherited from interface org.mule.api.transformer.Transformer |
getEncoding, getEndpoint, getMimeType, getReturnClass, getReturnDataType, getSourceDataTypes, getSourceTypes, isAcceptNull, isIgnoreBadInput, isSourceDataTypeSupported, isSourceTypeSupported, setReturnClass, setReturnDataType, transform |
| Methods inherited from interface org.mule.api.processor.MessageProcessor |
process |
| Methods inherited from interface org.mule.api.lifecycle.Initialisable |
initialise |
| Methods inherited from interface org.mule.api.lifecycle.Disposable |
dispose |
| Methods inherited from interface org.mule.api.NameableObject |
setName |
| Methods inherited from interface org.mule.api.NamedObject |
getName |
| Methods inherited from interface org.mule.api.context.MuleContextAware |
setMuleContext |
| Methods inherited from interface org.mule.endpoint.EndpointAware |
setEndpoint |
AbstractHostToXmlMuleTransformer
public AbstractHostToXmlMuleTransformer(com.legstar.coxb.transform.AbstractXmlTransformers xmlBindingTransformers)
- Constructor for single part transformers.
Host to XML transformers expect byte array sources corresponding to
mainframe raw data. Alternatively, source can be an inputStream in which
case, it is assumed to stream a byte array. The returned XML is
serialized in a String.
- Parameters:
xmlBindingTransformers - a set of transformers for the part type.
AbstractHostToXmlMuleTransformer
public AbstractHostToXmlMuleTransformer(Map<String,com.legstar.coxb.transform.AbstractXmlTransformers> xmlBindingTransformersMap)
- Constructor for multi-part transformers.
Host to XML transformers expects a map of byte arrays for multi part
payloads. The XML is serialized in a String.
- Parameters:
xmlBindingTransformersMap - map of transformer sets, one for each
part type.
AbstractHostToXmlMuleTransformer
public AbstractHostToXmlMuleTransformer(List<com.legstar.coxb.transform.AbstractTransformers> bindingTransformersList,
AbstractHostMuleTransformer.HolderSetter holderSetter)
- Constructor for multi-structures transformers.
Host to Java transformers expects byte array sources. Inheriting classes
will set the return class.
- Parameters:
bindingTransformersList - ordered list of transformers to be applied
in sequence.holderSetter - a helper class to set holder objects from inner
objects
hostTransform
public Object hostTransform(org.mule.api.MuleMessage esbMessage,
String encoding)
throws org.mule.api.transformer.TransformerException
- Specialized classes perform the actual transformation. Detect if client is using LegStar messaging. If he does,
store that information in the ESB message properties so that downstream
actions know that the caller is expecting a LegStarMessage reply.
- Specified by:
hostTransform in class AbstractHostMuleTransformer
- Parameters:
esbMessage - the Mule messageencoding - the payload encoding
- Returns:
- the transformed payload
- Throws:
org.mule.api.transformer.TransformerException - if transform fails
toXml
public Object toXml(byte[] hostBytes,
String hostCharset)
throws com.legstar.coxb.transform.HostTransformException
- Host is sending a byte sequence so when apply either a single transformer
or a list of transformers to the entire payload.
- Parameters:
hostBytes - the byte sequence returned from the hosthostCharset - the host character set
- Returns:
- an XML representation
- Throws:
com.legstar.coxb.transform.HostTransformException - if tranformation failed
toXml
public Object toXml(Map<String,byte[]> hostParts,
String hostCharset)
throws org.mule.api.transformer.TransformerException
- When the host is sending an multiple parts part, this code transforms
each part. Each part is transformed individually then they are all
wrapped in a holder XML which is returned.
- Parameters:
hostParts - a map of byte arrays, one for each parthostCharset - the host character set
- Returns:
- an XML representation
- Throws:
org.mule.api.transformer.TransformerException - if transformation failed
toXml
public Object toXml(List<com.legstar.coxb.transform.AbstractTransformers> transformers,
byte[] hostBytes,
String hostCharset)
throws com.legstar.coxb.transform.HostTransformException
- Host is sending a single byte sequence but multiple transformers must be
applied to decode the complete byte stream.
- Parameters:
transformers - ordered list of transformers that need to be appliedhostBytes - the single host bytes sequencehostCharset - the host character set
- Returns:
- an XML representation
- Throws:
com.legstar.coxb.transform.HostTransformException
createXmlHolder
public Object createXmlHolder(Map<String,String> transformedParts)
throws org.mule.api.transformer.TransformerException
- When multiple part were received from the host, each transformed parts
XML is stored in a map.
Here we merge the XML fragments as children of a holder element.
- Parameters:
transformedParts - a map of transformed types
- Returns:
- a holder XML
- Throws:
org.mule.api.transformer.TransformerException - if creating holder fails
mergeXml
public void mergeXml(DocumentBuilder docBuilder,
String partXml,
String partID,
Document docResult,
Element elHolder)
throws org.mule.api.transformer.TransformerException
- Merges an XML fragment as a child of a holder element.
- Parameters:
docBuilder - the document builder for DOM documentspartXml - the XML representation of the part to mergepartID - a part identifierdocResult - the result DOM documentelHolder - the holder DOM element
- Throws:
org.mule.api.transformer.TransformerException - if merge operation fails
getHolderQName
public QName getHolderQName()
throws org.mule.api.transformer.TransformerException
- Generated classes must implement this method for multi part messages.
- Returns:
- the qualified XML name of the holder element
- Throws:
org.mule.api.transformer.TransformerException - if qualified name cannot be returned
Copyright © 2013 LegSem. All Rights Reserved.