Search in sources :

Example 1 with Gexf

use of it.uniroma1.dis.wsngroup.gexf4j.core.Gexf in project gexf4j by francesco-ficarola.

the class DynamicGexfGraph method main.

public static void main(String[] args) {
    Gexf gexf = new GexfImpl();
    Calendar date = Calendar.getInstance();
    gexf.getMetadata().setLastModified(date.getTime()).setCreator("Gephi.org").setDescription("A Web network");
    Graph graph = gexf.getGraph();
    graph.setDefaultEdgeType(EdgeType.UNDIRECTED).setMode(Mode.DYNAMIC).setTimeType(TimeFormat.XSDDATETIME);
    AttributeList attrList = new AttributeListImpl(AttributeClass.NODE);
    graph.getAttributeLists().add(attrList);
    Attribute attUrl = attrList.createAttribute("0", AttributeType.STRING, "url");
    Attribute attIndegree = attrList.createAttribute("1", AttributeType.FLOAT, "indegree");
    Attribute attFrog = attrList.createAttribute("2", AttributeType.BOOLEAN, "frog").setDefaultValue("true");
    /** Node Gephi */
    Node gephi = graph.createNode("0");
    gephi.setLabel("Gephi").getAttributeValues().addValue(attUrl, "http://gephi.org").addValue(attIndegree, "1");
    Spell spellGephi = new SpellImpl();
    date.set(2012, 3, 28, 16, 10, 0);
    date.set(Calendar.MILLISECOND, 0);
    spellGephi.setStartValue(date.getTime());
    gephi.getSpells().add(spellGephi);
    /** Node Webatlas */
    Node webatlas = graph.createNode("1");
    webatlas.setLabel("Webatlas").getAttributeValues().addValue(attUrl, "http://webatlas.fr").addValue(attIndegree, "2");
    Spell spellWebatlas1 = new SpellImpl();
    date.set(Calendar.MINUTE, 15);
    spellWebatlas1.setStartValue(date.getTime());
    date.set(2012, 3, 28, 18, 57, 2);
    spellWebatlas1.setEndValue(date.getTime());
    webatlas.getSpells().add(spellWebatlas1);
    Spell spellWebatlas2 = new SpellImpl();
    date.set(2012, 3, 28, 20, 31, 10);
    spellWebatlas2.setStartValue(date.getTime()).setStartIntervalType(IntervalType.OPEN);
    date.set(Calendar.MINUTE, 45);
    date.set(Calendar.SECOND, 21);
    spellWebatlas2.setEndValue(date.getTime());
    webatlas.getSpells().add(spellWebatlas2);
    Spell spellWebatlas3 = new SpellImpl();
    date.set(2012, 3, 28, 21, 0, 0);
    spellWebatlas3.setStartValue(date.getTime());
    date.set(2012, 4, 11, 10, 49, 27);
    spellWebatlas3.setEndValue(date.getTime()).setEndIntervalType(IntervalType.OPEN);
    webatlas.getSpells().add(spellWebatlas3);
    /** Node RTGI */
    Node rtgi = graph.createNode("2");
    rtgi.setLabel("RTGI").getAttributeValues().addValue(attUrl, "http://rtgi.fr").addValue(attIndegree, "1");
    Spell spellRtgi = new SpellImpl();
    date.set(2012, 3, 27, 6, 0, 0);
    spellRtgi.setStartValue(date.getTime());
    date.set(2012, 4, 19);
    spellRtgi.setEndValue(date.getTime());
    rtgi.getSpells().add(spellRtgi);
    /** Node BarabasiLab */
    Node blab = graph.createNode("3");
    blab.setLabel("BarabasiLab").getAttributeValues().addValue(attUrl, "http://barabasilab.com").addValue(attIndegree, "3").addValue(attFrog, "false");
    /** Node foobar */
    Node foobar = graph.createNode("4");
    foobar.setLabel("FooBar").getAttributeValues().addValue(attUrl, "http://foo.bar").addValue(attIndegree, "1").addValue(attFrog, "false");
    /** Edge 0 [gephi, webatlas] */
    Edge edge0 = gephi.connectTo("0", webatlas);
    Spell spellEdge0 = new SpellImpl();
    date.set(2012, 3, 28, 16, 15, 36);
    spellEdge0.setStartValue(date.getTime());
    date.set(2012, 3, 28, 17, 41, 5);
    spellEdge0.setEndValue(date.getTime());
    edge0.getSpells().add(spellEdge0);
    /** Edge 1 [gephi, rtgi] */
    Edge edge1 = gephi.connectTo("1", rtgi);
    Spell spellEdge1 = new SpellImpl();
    date.set(2012, 3, 30, 11, 16, 6);
    spellEdge1.setStartValue(date.getTime());
    date.set(2012, 4, 3, 11, 52, 6);
    spellEdge1.setEndValue(date.getTime());
    edge1.getSpells().add(spellEdge1);
    /** Edge 2 [rtgi, webatlas] */
    Edge edge2 = rtgi.connectTo("2", webatlas);
    Spell spellEdge2 = new SpellImpl();
    date.set(2012, 4, 1, 11, 0, 0);
    spellEdge2.setStartValue(date.getTime()).setStartIntervalType(IntervalType.OPEN);
    date.set(2012, 4, 5, 11, 9, 44);
    spellEdge2.setEndValue(date.getTime());
    edge2.getSpells().add(spellEdge2);
    /** Edge 3 [gephi, blab] */
    Edge edge3 = gephi.connectTo("3", blab);
    Spell spellEdge3 = new SpellImpl();
    date.set(2012, 3, 30, 12, 13, 22);
    spellEdge3.setStartValue(date.getTime());
    date.set(Calendar.MINUTE, 58);
    date.set(Calendar.SECOND, 24);
    spellEdge3.setEndValue(date.getTime());
    edge3.getSpells().add(spellEdge3);
    /** Edge 4 [webatlas, blab] */
    Edge edge4 = webatlas.connectTo("4", blab);
    Spell spellEdge4 = new SpellImpl();
    date.set(2012, 3, 30, 21, 2, 37);
    spellEdge4.setStartValue(date.getTime());
    date.set(Calendar.MINUTE, 13);
    spellEdge4.setEndValue(date.getTime());
    edge4.getSpells().add(spellEdge4);
    /** Edge 5 [foobar, blab] */
    foobar.connectTo("5", blab);
    StaxGraphWriter graphWriter = new StaxGraphWriter();
    File f = new File("dynamic_graph_sample.gexf");
    Writer out;
    try {
        out = new FileWriter(f, false);
        graphWriter.writeToStream(gexf, out, "UTF-8");
        System.out.println(f.getAbsolutePath());
    } catch (IOException e) {
        e.printStackTrace();
    }
}
Also used : SpellImpl(it.uniroma1.dis.wsngroup.gexf4j.core.impl.SpellImpl) GexfImpl(it.uniroma1.dis.wsngroup.gexf4j.core.impl.GexfImpl) AttributeListImpl(it.uniroma1.dis.wsngroup.gexf4j.core.impl.data.AttributeListImpl) Attribute(it.uniroma1.dis.wsngroup.gexf4j.core.data.Attribute) AttributeList(it.uniroma1.dis.wsngroup.gexf4j.core.data.AttributeList) Calendar(java.util.Calendar) Node(it.uniroma1.dis.wsngroup.gexf4j.core.Node) FileWriter(java.io.FileWriter) IOException(java.io.IOException) Gexf(it.uniroma1.dis.wsngroup.gexf4j.core.Gexf) Spell(it.uniroma1.dis.wsngroup.gexf4j.core.dynamic.Spell) Graph(it.uniroma1.dis.wsngroup.gexf4j.core.Graph) Edge(it.uniroma1.dis.wsngroup.gexf4j.core.Edge) File(java.io.File) StaxGraphWriter(it.uniroma1.dis.wsngroup.gexf4j.core.impl.StaxGraphWriter) FileWriter(java.io.FileWriter) Writer(java.io.Writer) StaxGraphWriter(it.uniroma1.dis.wsngroup.gexf4j.core.impl.StaxGraphWriter)

Example 2 with Gexf

use of it.uniroma1.dis.wsngroup.gexf4j.core.Gexf in project gexf4j by francesco-ficarola.

the class GexfImplFileUtf8Test method testStaticGexfGraph.

/**
     * Test of getGraph method, of class GexfImpl.
     */
@Test
public void testStaticGexfGraph() throws IOException, SAXException {
    System.out.println("getGraph");
    StaxGraphWriter graphWriter = new StaxGraphWriter();
    StringWriter stringWriter = new StringWriter();
    graphWriter.writeToStream(gexf, new FileWriter("target/testStaticUtf.gexf"), "UTF-8");
    graphWriter.writeToStream(gexf, stringWriter, "UTF-8");
    String found = IOUtils.toString(new FileReader("target/testStaticUtf.gexf"));
    String start = stringWriter.toString();
    Diff myDiff = new Diff(found, start);
    //        myDiff.overrideElementQualifier(new ElementNameAndTextQualifier());
    assertTrue("XML similar " + myDiff.toString(), myDiff.similar());
}
Also used : StringWriter(java.io.StringWriter) Diff(org.custommonkey.xmlunit.Diff) FileWriter(java.io.FileWriter) FileReader(java.io.FileReader) StaxGraphWriter(it.uniroma1.dis.wsngroup.gexf4j.core.impl.StaxGraphWriter) Test(org.junit.Test)

Example 3 with Gexf

use of it.uniroma1.dis.wsngroup.gexf4j.core.Gexf in project gexf4j by francesco-ficarola.

the class StaxGraphWriter method writeToStream.

@Override
public void writeToStream(Gexf gexf, Writer out, String encoding) throws IOException {
    try {
        XMLOutputFactory xmlOutputFactory = WstxOutputFactory.newInstance();
        XMLStreamWriter streamWriter = xmlOutputFactory.createXMLStreamWriter(out);
        PrettyPrintHandler handler = new PrettyPrintHandler(streamWriter);
        streamWriter = (XMLStreamWriter) Proxy.newProxyInstance(XMLStreamWriter.class.getClassLoader(), new Class[] { XMLStreamWriter.class }, handler);
        streamWriter.writeStartDocument(encoding, "1.0");
        new GexfEntityWriter(streamWriter, gexf);
        streamWriter.writeEndDocument();
        streamWriter.flush();
        streamWriter.close();
    } catch (XMLStreamException e) {
        throw new IOException("XML Exception: " + e.getMessage(), e);
    }
}
Also used : XMLOutputFactory(javax.xml.stream.XMLOutputFactory) PrettyPrintHandler(it.uniroma1.dis.wsngroup.gexf4j.core.utils.PrettyPrintHandler) XMLStreamException(javax.xml.stream.XMLStreamException) GexfEntityWriter(it.uniroma1.dis.wsngroup.gexf4j.core.impl.writer.GexfEntityWriter) XMLStreamWriter(javax.xml.stream.XMLStreamWriter) IOException(java.io.IOException)

Example 4 with Gexf

use of it.uniroma1.dis.wsngroup.gexf4j.core.Gexf in project gexf4j by francesco-ficarola.

the class StaticGexfGraph method main.

public static void main(String[] args) {
    Gexf gexf = new GexfImpl();
    Calendar date = Calendar.getInstance();
    gexf.getMetadata().setLastModified(date.getTime()).setCreator("Gephi.org").setDescription("A Web network");
    gexf.setVisualization(true);
    Graph graph = gexf.getGraph();
    graph.setDefaultEdgeType(EdgeType.UNDIRECTED).setMode(Mode.STATIC);
    AttributeList attrList = new AttributeListImpl(AttributeClass.NODE);
    graph.getAttributeLists().add(attrList);
    Attribute attUrl = attrList.createAttribute("0", AttributeType.STRING, "url");
    Attribute attIndegree = attrList.createAttribute("1", AttributeType.FLOAT, "indegree");
    Attribute attFrog = attrList.createAttribute("2", AttributeType.BOOLEAN, "frog").setDefaultValue("true");
    Node gephi = graph.createNode("0");
    gephi.setLabel("Gephi").setSize(20).getAttributeValues().addValue(attUrl, "http://gephi.org").addValue(attIndegree, "1");
    gephi.getShapeEntity().setNodeShape(NodeShape.DIAMOND).setUri("GephiURI");
    Node webatlas = graph.createNode("1");
    webatlas.setLabel("Webatlas").getAttributeValues().addValue(attUrl, "http://webatlas.fr").addValue(attIndegree, "2");
    Node rtgi = graph.createNode("2");
    rtgi.setLabel("RTGI").getAttributeValues().addValue(attUrl, "http://rtgi.fr").addValue(attIndegree, "1");
    Node blab = graph.createNode("3");
    blab.setLabel("BarabasiLab").getAttributeValues().addValue(attUrl, "http://barabasilab.com").addValue(attIndegree, "1").addValue(attFrog, "false");
    gephi.connectTo("0", webatlas);
    gephi.connectTo("1", rtgi);
    webatlas.connectTo("2", gephi);
    rtgi.connectTo("3", webatlas);
    gephi.connectTo("4", blab);
    StaxGraphWriter graphWriter = new StaxGraphWriter();
    File f = new File("static_graph_sample.gexf");
    Writer out;
    try {
        out = new FileWriter(f, false);
        graphWriter.writeToStream(gexf, out, "UTF-8");
        System.out.println(f.getAbsolutePath());
    } catch (IOException e) {
        e.printStackTrace();
    }
}
Also used : GexfImpl(it.uniroma1.dis.wsngroup.gexf4j.core.impl.GexfImpl) AttributeListImpl(it.uniroma1.dis.wsngroup.gexf4j.core.impl.data.AttributeListImpl) Attribute(it.uniroma1.dis.wsngroup.gexf4j.core.data.Attribute) AttributeList(it.uniroma1.dis.wsngroup.gexf4j.core.data.AttributeList) Calendar(java.util.Calendar) Node(it.uniroma1.dis.wsngroup.gexf4j.core.Node) FileWriter(java.io.FileWriter) IOException(java.io.IOException) Gexf(it.uniroma1.dis.wsngroup.gexf4j.core.Gexf) Graph(it.uniroma1.dis.wsngroup.gexf4j.core.Graph) File(java.io.File) StaxGraphWriter(it.uniroma1.dis.wsngroup.gexf4j.core.impl.StaxGraphWriter) FileWriter(java.io.FileWriter) Writer(java.io.Writer) StaxGraphWriter(it.uniroma1.dis.wsngroup.gexf4j.core.impl.StaxGraphWriter)

Example 5 with Gexf

use of it.uniroma1.dis.wsngroup.gexf4j.core.Gexf in project gexf4j by francesco-ficarola.

the class GexfImplDefaultTest method testDynamicGexfGraph.

@Test
public void testDynamicGexfGraph() throws IOException, SAXException {
    Gexf gexf = new GexfImpl();
    Calendar date = Calendar.getInstance();
    date.set(2012, 4, 03);
    //        date.setTimeZone(TimeZone.getTimeZone("GMT+0300"));
    gexf.getMetadata().setLastModified(date.getTime()).setCreator("Gephi.org").setDescription("A Web network");
    Graph graph = gexf.getGraph();
    graph.setDefaultEdgeType(EdgeType.UNDIRECTED).setMode(Mode.DYNAMIC).setTimeType(TimeFormat.XSDDATETIME);
    AttributeList attrList = new AttributeListImpl(AttributeClass.NODE);
    graph.getAttributeLists().add(attrList);
    Attribute attUrl = attrList.createAttribute("0", AttributeType.STRING, "url");
    Attribute attIndegree = attrList.createAttribute("1", AttributeType.FLOAT, "indegree");
    Attribute attFrog = attrList.createAttribute("2", AttributeType.BOOLEAN, "frog").setDefaultValue("true");
    /**
         * Node Gephi
         */
    Node gephi = graph.createNode("0");
    gephi.setLabel("Gephi").getAttributeValues().addValue(attUrl, "http://gephi.org").addValue(attIndegree, "1");
    Spell spellGephi = new SpellImpl();
    date.set(2012, 3, 28, 16, 10, 0);
    date.set(Calendar.MILLISECOND, 0);
    spellGephi.setStartValue(date.getTime());
    gephi.getSpells().add(spellGephi);
    /**
         * Node Webatlas
         */
    Node webatlas = graph.createNode("1");
    webatlas.setLabel("Webatlas").getAttributeValues().addValue(attUrl, "http://webatlas.fr").addValue(attIndegree, "2");
    Spell spellWebatlas1 = new SpellImpl();
    date.set(Calendar.MINUTE, 15);
    spellWebatlas1.setStartValue(date.getTime());
    date.set(2012, 3, 28, 18, 57, 2);
    spellWebatlas1.setEndValue(date.getTime());
    webatlas.getSpells().add(spellWebatlas1);
    Spell spellWebatlas2 = new SpellImpl();
    date.set(2012, 3, 28, 20, 31, 10);
    spellWebatlas2.setStartValue(date.getTime()).setStartIntervalType(IntervalType.OPEN);
    date.set(Calendar.MINUTE, 45);
    date.set(Calendar.SECOND, 21);
    spellWebatlas2.setEndValue(date.getTime());
    webatlas.getSpells().add(spellWebatlas2);
    Spell spellWebatlas3 = new SpellImpl();
    date.set(2012, 3, 28, 21, 0, 0);
    spellWebatlas3.setStartValue(date.getTime());
    date.set(2012, 4, 11, 10, 49, 27);
    spellWebatlas3.setEndValue(date.getTime()).setEndIntervalType(IntervalType.OPEN);
    webatlas.getSpells().add(spellWebatlas3);
    /**
         * Node RTGI
         */
    Node rtgi = graph.createNode("2");
    rtgi.setLabel("RTGI").getAttributeValues().addValue(attUrl, "http://rtgi.fr").addValue(attIndegree, "1");
    Spell spellRtgi = new SpellImpl();
    date.set(2012, 3, 27, 6, 0, 0);
    spellRtgi.setStartValue(date.getTime());
    date.set(2012, 4, 19);
    spellRtgi.setEndValue(date.getTime());
    rtgi.getSpells().add(spellRtgi);
    /**
         * Node BarabasiLab
         */
    Node blab = graph.createNode("3");
    blab.setLabel("BarabasiLab").getAttributeValues().addValue(attUrl, "http://barabasilab.com").addValue(attIndegree, "3").addValue(attFrog, "false");
    /**
         * Node foobar
         */
    Node foobar = graph.createNode("4");
    foobar.setLabel("FooBar").getAttributeValues().addValue(attUrl, "http://foo.bar").addValue(attIndegree, "1").addValue(attFrog, "false");
    /**
         * Edge 0 [gephi, webatlas]
         */
    Edge edge0 = gephi.connectTo("0", webatlas);
    Spell spellEdge0 = new SpellImpl();
    date.set(2012, 3, 28, 16, 15, 36);
    spellEdge0.setStartValue(date.getTime());
    date.set(2012, 3, 28, 17, 41, 5);
    spellEdge0.setEndValue(date.getTime());
    edge0.getSpells().add(spellEdge0);
    /**
         * Edge 1 [gephi, rtgi]
         */
    Edge edge1 = gephi.connectTo("1", rtgi);
    Spell spellEdge1 = new SpellImpl();
    date.set(2012, 3, 30, 11, 16, 6);
    spellEdge1.setStartValue(date.getTime());
    date.set(2012, 4, 3, 11, 52, 6);
    spellEdge1.setEndValue(date.getTime());
    edge1.getSpells().add(spellEdge1);
    /**
         * Edge 2 [rtgi, webatlas]
         */
    Edge edge2 = rtgi.connectTo("2", webatlas);
    Spell spellEdge2 = new SpellImpl();
    date.set(2012, 4, 1, 11, 0, 0);
    spellEdge2.setStartValue(date.getTime()).setStartIntervalType(IntervalType.OPEN);
    date.set(2012, 4, 5, 11, 9, 44);
    spellEdge2.setEndValue(date.getTime());
    edge2.getSpells().add(spellEdge2);
    /**
         * Edge 3 [gephi, blab]
         */
    Edge edge3 = gephi.connectTo("3", blab);
    Spell spellEdge3 = new SpellImpl();
    date.set(2012, 3, 30, 12, 13, 22);
    spellEdge3.setStartValue(date.getTime());
    date.set(Calendar.MINUTE, 58);
    date.set(Calendar.SECOND, 24);
    spellEdge3.setEndValue(date.getTime());
    edge3.getSpells().add(spellEdge3);
    /**
         * Edge 4 [webatlas, blab]
         */
    Edge edge4 = webatlas.connectTo("4", blab);
    Spell spellEdge4 = new SpellImpl();
    date.set(2012, 3, 30, 21, 2, 37);
    spellEdge4.setStartValue(date.getTime());
    date.set(Calendar.MINUTE, 13);
    spellEdge4.setEndValue(date.getTime());
    edge4.getSpells().add(spellEdge4);
    /**
         * Edge 5 [foobar, blab]
         */
    foobar.connectTo("5", blab);
    StaxGraphWriter graphWriter = new StaxGraphWriter();
    StringWriter stringWriter = new StringWriter();
    graphWriter.writeToStream(gexf, stringWriter, "UTF-8");
    String outputXml = stringWriter.toString();
    InputStream inputStream = GexfImplDefaultTest.class.getResourceAsStream("/dynamicGraph.gexf");
    String myControlXML = IOUtils.toString(inputStream, "UTF-8");
    System.out.println(outputXml);
    System.out.println(myControlXML);
    Diff myDiff = new Diff(myControlXML, outputXml);
    //        myDiff.overrideElementQualifier(new ElementNameAndTextQualifier());
    assertTrue("XML similar " + myDiff.toString(), myDiff.similar());
}
Also used : SpellImpl(it.uniroma1.dis.wsngroup.gexf4j.core.impl.SpellImpl) GexfImpl(it.uniroma1.dis.wsngroup.gexf4j.core.impl.GexfImpl) AttributeListImpl(it.uniroma1.dis.wsngroup.gexf4j.core.impl.data.AttributeListImpl) Attribute(it.uniroma1.dis.wsngroup.gexf4j.core.data.Attribute) Diff(org.custommonkey.xmlunit.Diff) AttributeList(it.uniroma1.dis.wsngroup.gexf4j.core.data.AttributeList) InputStream(java.io.InputStream) Calendar(java.util.Calendar) Node(it.uniroma1.dis.wsngroup.gexf4j.core.Node) Gexf(it.uniroma1.dis.wsngroup.gexf4j.core.Gexf) Spell(it.uniroma1.dis.wsngroup.gexf4j.core.dynamic.Spell) Graph(it.uniroma1.dis.wsngroup.gexf4j.core.Graph) StringWriter(java.io.StringWriter) Edge(it.uniroma1.dis.wsngroup.gexf4j.core.Edge) StaxGraphWriter(it.uniroma1.dis.wsngroup.gexf4j.core.impl.StaxGraphWriter) Test(org.junit.Test)

Aggregations

StaxGraphWriter (it.uniroma1.dis.wsngroup.gexf4j.core.impl.StaxGraphWriter)8 StringWriter (java.io.StringWriter)6 Diff (org.custommonkey.xmlunit.Diff)6 Test (org.junit.Test)6 Gexf (it.uniroma1.dis.wsngroup.gexf4j.core.Gexf)5 Graph (it.uniroma1.dis.wsngroup.gexf4j.core.Graph)5 Node (it.uniroma1.dis.wsngroup.gexf4j.core.Node)5 Attribute (it.uniroma1.dis.wsngroup.gexf4j.core.data.Attribute)5 AttributeList (it.uniroma1.dis.wsngroup.gexf4j.core.data.AttributeList)5 GexfImpl (it.uniroma1.dis.wsngroup.gexf4j.core.impl.GexfImpl)5 AttributeListImpl (it.uniroma1.dis.wsngroup.gexf4j.core.impl.data.AttributeListImpl)5 Calendar (java.util.Calendar)5 FileWriter (java.io.FileWriter)4 InputStream (java.io.InputStream)4 IOException (java.io.IOException)3 Edge (it.uniroma1.dis.wsngroup.gexf4j.core.Edge)2 Spell (it.uniroma1.dis.wsngroup.gexf4j.core.dynamic.Spell)2 SpellImpl (it.uniroma1.dis.wsngroup.gexf4j.core.impl.SpellImpl)2 File (java.io.File)2 FileInputStream (java.io.FileInputStream)2