diff --git a/ch.psi.fda.core/pom.xml b/ch.psi.fda.core/pom.xml index a1229ab..bf1c71b 100644 --- a/ch.psi.fda.core/pom.xml +++ b/ch.psi.fda.core/pom.xml @@ -11,6 +11,13 @@ guava 15.0 + + + junit + junit + 4.8.2 + test + diff --git a/ch.psi.fda.core/src/main/java/ch/psi/fda/vdescriptor/LinePlot.java b/ch.psi.fda.core/src/main/java/ch/psi/fda/vdescriptor/LinePlot.java new file mode 100644 index 0000000..05ae0c9 --- /dev/null +++ b/ch.psi.fda.core/src/main/java/ch/psi/fda/vdescriptor/LinePlot.java @@ -0,0 +1,19 @@ +package ch.psi.fda.vdescriptor; + +import java.util.List; + +import javax.xml.bind.annotation.XmlElement; +import javax.xml.bind.annotation.XmlRootElement; + +@XmlRootElement(name="lineplot") +public class LinePlot extends Plot { + private List data; + + @XmlElement + public List getData() { + return data; + } + public void setData(List data) { + this.data = data; + } +} diff --git a/ch.psi.fda.core/src/main/java/ch/psi/fda/vdescriptor/MatrixPlot.java b/ch.psi.fda.core/src/main/java/ch/psi/fda/vdescriptor/MatrixPlot.java new file mode 100644 index 0000000..3f64b25 --- /dev/null +++ b/ch.psi.fda.core/src/main/java/ch/psi/fda/vdescriptor/MatrixPlot.java @@ -0,0 +1,18 @@ +package ch.psi.fda.vdescriptor; + +import java.util.List; + +import javax.xml.bind.annotation.XmlRootElement; + +@XmlRootElement(name="matrixplot") +public class MatrixPlot extends Plot { + + private List data; + + public List getData() { + return data; + } + public void setData(List data) { + this.data = data; + } +} diff --git a/ch.psi.fda.core/src/main/java/ch/psi/fda/vdescriptor/Plot.java b/ch.psi.fda.core/src/main/java/ch/psi/fda/vdescriptor/Plot.java new file mode 100644 index 0000000..fdaa270 --- /dev/null +++ b/ch.psi.fda.core/src/main/java/ch/psi/fda/vdescriptor/Plot.java @@ -0,0 +1,10 @@ +package ch.psi.fda.vdescriptor; + +import javax.xml.bind.annotation.XmlSeeAlso; +import javax.xml.bind.annotation.XmlTransient; + + +@XmlSeeAlso({LinePlot.class, MatrixPlot.class}) +@XmlTransient +public abstract class Plot { +} diff --git a/ch.psi.fda.core/src/main/java/ch/psi/fda/vdescriptor/Series.java b/ch.psi.fda.core/src/main/java/ch/psi/fda/vdescriptor/Series.java new file mode 100644 index 0000000..8ac9a25 --- /dev/null +++ b/ch.psi.fda.core/src/main/java/ch/psi/fda/vdescriptor/Series.java @@ -0,0 +1,32 @@ +package ch.psi.fda.vdescriptor; + +import javax.xml.bind.annotation.XmlAttribute; + +public class Series { + + private String x = null; + private String y = null; + private String z = null; + + @XmlAttribute + public String getX() { + return x; + } + public void setX(String x) { + this.x = x; + } + @XmlAttribute + public String getY() { + return y; + } + public void setY(String y) { + this.y = y; + } + @XmlAttribute + public String getZ() { + return z; + } + public void setZ(String z) { + this.z = z; + } +} diff --git a/ch.psi.fda.core/src/main/java/ch/psi/fda/vdescriptor/VDescriptor.java b/ch.psi.fda.core/src/main/java/ch/psi/fda/vdescriptor/VDescriptor.java new file mode 100644 index 0000000..7637703 --- /dev/null +++ b/ch.psi.fda.core/src/main/java/ch/psi/fda/vdescriptor/VDescriptor.java @@ -0,0 +1,27 @@ +package ch.psi.fda.vdescriptor; + +import java.util.List; + +import javax.xml.bind.annotation.XmlElement; +import javax.xml.bind.annotation.XmlElementWrapper; +import javax.xml.bind.annotation.XmlElements; +import javax.xml.bind.annotation.XmlRootElement; + +@XmlRootElement(name="vdescriptor") +public class VDescriptor { + + private List plots; + + @XmlElementWrapper + @XmlElements({ + @XmlElement(name="lineplot",type=LinePlot.class), + @XmlElement(name="matrixplot",type=MatrixPlot.class), + }) + public List getPlots() { + return plots; + } + + public void setPlots(List plots) { + this.plots = plots; + } +} diff --git a/ch.psi.fda.core/src/test/java/ch/psi/fda/vdescriptor/VDescriptorTest.java b/ch.psi.fda.core/src/test/java/ch/psi/fda/vdescriptor/VDescriptorTest.java new file mode 100644 index 0000000..88e34a8 --- /dev/null +++ b/ch.psi.fda.core/src/test/java/ch/psi/fda/vdescriptor/VDescriptorTest.java @@ -0,0 +1,40 @@ +package ch.psi.fda.vdescriptor; + +import static org.junit.Assert.*; + +import java.io.File; +import java.util.logging.Logger; + +import javax.xml.bind.JAXBContext; +import javax.xml.bind.JAXBException; +import javax.xml.bind.Unmarshaller; + +import org.junit.After; +import org.junit.Before; +import org.junit.Test; + +public class VDescriptorTest { + + private static final Logger logger = Logger.getLogger(VDescriptorTest.class.getName()); + + @Before + public void setUp() throws Exception { + } + + @After + public void tearDown() throws Exception { + } + + @Test + public void test() throws JAXBException { + JAXBContext context = JAXBContext.newInstance(VDescriptor.class); + Unmarshaller u = context.createUnmarshaller(); + + VDescriptor descriptor = (VDescriptor) u.unmarshal(new File("src/test/resources/vdescriptor.xml")); + for(Plot p: descriptor.getPlots()){ + logger.info(p.getClass().getName()); + } + + } + +} diff --git a/ch.psi.fda.core/src/test/resources/vdescriptor.xml b/ch.psi.fda.core/src/test/resources/vdescriptor.xml new file mode 100644 index 0000000..5f6ca31 --- /dev/null +++ b/ch.psi.fda.core/src/test/resources/vdescriptor.xml @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + \ No newline at end of file