
org.openfast.examples.producer.XmlCompressedMessageConverter Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of openfast Show documentation
Show all versions of openfast Show documentation
OpenFAST is a 100% Java implementation of the FAST Protocol.
The newest version!
package org.openfast.examples.producer;
import java.io.InputStream;
import java.io.OutputStream;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import org.openfast.FieldValue;
import org.openfast.GroupValue;
import org.openfast.Message;
import org.openfast.QName;
import org.openfast.SequenceValue;
import org.openfast.template.BasicTemplateRegistry;
import org.openfast.template.Field;
import org.openfast.template.Group;
import org.openfast.template.MessageTemplate;
import org.openfast.template.Sequence;
import org.openfast.template.TemplateRegistry;
import com.thoughtworks.xstream.converters.MarshallingContext;
import com.thoughtworks.xstream.io.HierarchicalStreamDriver;
import com.thoughtworks.xstream.io.HierarchicalStreamReader;
import com.thoughtworks.xstream.io.HierarchicalStreamWriter;
import com.thoughtworks.xstream.io.xml.XppDriver;
public class XmlCompressedMessageConverter {
private static final QName INSTANCE_NAME = new QName("instanceName", "http://www.lasalletech.com/fast/ext/1.0");
protected TemplateRegistry templateRegistry = new BasicTemplateRegistry();
private final HierarchicalStreamDriver driver;
public XmlCompressedMessageConverter() {
this(new XppDriver());
}
public XmlCompressedMessageConverter(HierarchicalStreamDriver driver) {
if (driver == null)
throw new NullPointerException();
this.driver = driver;
}
public List parse(InputStream in) {
HierarchicalStreamReader reader = driver.createReader(in);
return unmarshal(reader);
}
public void serialize(List messages, OutputStream out) {
HierarchicalStreamWriter writer = driver.createWriter(out);
writer.startNode("messages");
for (Iterator iter = messages.iterator(); iter.hasNext();) {
Message message = (Message) iter.next();
marshal(message, writer, null);
}
writer.endNode();
writer.close();
}
public void marshal(Object obj, HierarchicalStreamWriter writer, MarshallingContext context) {
Message message = (Message) obj;
writer.startNode(message.getGroup().getName());
writeGroup(writer, message);
writer.endNode();
}
private void writeGroup(HierarchicalStreamWriter writer, GroupValue groupValue) {
Field[] fields = groupValue.getGroup().getFields();
for (int i=0; i
© 2015 - 2025 Weber Informatics LLC | Privacy Policy