package eclipse.model.xml8; import java.io.FileInputStream; import java.io.FileNotFoundException; import org.apache.log4j.Logger; import com.thoughtworks.xstream.XStream; import com.thoughtworks.xstream.io.xml.DomDriver; import eclipse.model.data.Device; import eclipse.model.data.DeviceItem; import eclipse.model.data.Trame; import eclipse.model.xml.ProtocolLoader; /** * Load the XML DATA in the DataManager * @author Marco * */ public class ProtocolLoaderV8 implements ProtocolLoader { static Logger logger = Logger.getLogger("main"); FileInputStream fiStream; // XStream to load XML XStream stream; public ProtocolLoaderV8(String xmlFile) throws FileNotFoundException { init(); fiStream = new FileInputStream(xmlFile); } private void init() { // Create new XStream instance with DomDriver parser stream = new XStream(new DomDriver()); // Register the XML Converters stream.registerConverter(new DeviceConverter()); stream.registerConverter(new TramConverter()); stream.registerConverter(new DeviceItemConverter()); // Create alias for V8 XML markup stream.alias("char", Device.class); stream.alias("deviceItem", DeviceItem.class); stream.alias("trame", Trame.class); stream.alias("unit", String.class); stream.alias("bitsize", Integer.class); stream.alias("minvalue", Integer.class); stream.alias("maxvalue", Integer.class); stream.alias("resolution", Integer.class); stream.alias("factor", Double.class); stream.alias("offset", Integer.class); stream.alias("numbits", Integer.class); stream.alias("signed", Boolean.class); stream.alias("isFloat", Boolean.class); } public void load() { stream.fromXML(fiStream); logger.info("Protocol loaded successfully."); } }