Search in sources :

Example 6 with Issue

use of org.gephi.io.importer.api.Issue in project gephi by gephi.

the class ImporterPajek method readArcsOrEdges.

private String readArcsOrEdges(String curLine, BufferedReader br) throws Exception {
    String nextLine = curLine;
    boolean reading_arcs = false;
    boolean reading_edges = false;
    if (nextLine.toLowerCase().startsWith("*arcs")) {
        reading_arcs = true;
    } else if (nextLine.toLowerCase().startsWith("*edges")) {
        reading_edges = true;
    }
    if (!(reading_arcs || reading_edges)) {
        return nextLine;
    }
    boolean is_list = false;
    if (nextLine.toLowerCase().endsWith("list")) {
        is_list = true;
    }
    while (br.ready()) {
        if (cancel) {
            return nextLine;
        }
        nextLine = br.readLine();
        if (nextLine == null || nextLine.startsWith("*")) {
            break;
        }
        if (nextLine.equals("")) {
            // skip blank lines
            report.logIssue(new Issue(NbBundle.getMessage(ImporterPajek.class, "importerNET_error_dataformat2", lineReader.getLineNumber()), Issue.Level.WARNING));
            continue;
        }
        StringTokenizer st = new StringTokenizer(nextLine.trim());
        int vid1 = Integer.parseInt(st.nextToken()) - 1;
        NodeDraft nodeFrom = verticesArray[vid1];
        if (// one source, multiple destinations
        is_list) {
            do {
                int vid2 = Integer.parseInt(st.nextToken()) - 1;
                NodeDraft nodeTo = verticesArray[vid2];
                EdgeDraft edge = container.factory().newEdgeDraft();
                edge.setSource(nodeFrom);
                edge.setTarget(nodeTo);
                container.addEdge(edge);
            } while (st.hasMoreTokens());
        } else // one source, one destination, at most one weight
        {
            int vid2 = Integer.parseInt(st.nextToken()) - 1;
            NodeDraft nodeTo = verticesArray[vid2];
            EdgeDraft edge = container.factory().newEdgeDraft();
            edge.setSource(nodeFrom);
            edge.setTarget(nodeTo);
            // get the edge weight if we care
            if (st.hasMoreTokens()) {
                double edgeWeight = 1.0;
                try {
                    edgeWeight = new Double(st.nextToken());
                } catch (Exception e) {
                    report.logIssue(new Issue(NbBundle.getMessage(ImporterPajek.class, "importerNET_error_dataformat7", lineReader.getLineNumber()), Issue.Level.WARNING));
                }
                edge.setWeight(edgeWeight);
            }
            container.addEdge(edge);
        }
    }
    return nextLine;
}
Also used : StringTokenizer(java.util.StringTokenizer) EdgeDraft(org.gephi.io.importer.api.EdgeDraft) Issue(org.gephi.io.importer.api.Issue) NodeDraft(org.gephi.io.importer.api.NodeDraft) IOException(java.io.IOException)

Example 7 with Issue

use of org.gephi.io.importer.api.Issue in project gephi by gephi.

the class ImporterDL method readLabels.

private void readLabels(String labels) {
    StringTokenizer labelkonizer = new StringTokenizer(labels, ",");
    // check that there are the right number of labels
    if (labelkonizer.countTokens() != numNodes) {
        report.logIssue(new Issue(NbBundle.getMessage(ImporterDL.class, "importerDL_error_labelscount", labelkonizer.countTokens(), numNodes), Issue.Level.SEVERE));
    }
    int nodeCount = 0;
    while (labelkonizer.hasMoreTokens()) {
        String label = labelkonizer.nextToken();
        nodeCount++;
        NodeDraft nodeDraft = container.factory().newNodeDraft("" + nodeCount);
        nodeDraft.setLabel(label);
        container.addNode(nodeDraft);
    }
}
Also used : StringTokenizer(java.util.StringTokenizer) Issue(org.gephi.io.importer.api.Issue) NodeDraft(org.gephi.io.importer.api.NodeDraft)

Example 8 with Issue

use of org.gephi.io.importer.api.Issue in project gephi by gephi.

the class ImporterDOT method edgeStructure.

protected void edgeStructure(StreamTokenizer streamTokenizer, final NodeDraft nodeDraft) throws Exception {
    streamTokenizer.nextToken();
    EdgeDraft edge = null;
    if (streamTokenizer.ttype == '>' || streamTokenizer.ttype == '-') {
        streamTokenizer.nextToken();
        if (streamTokenizer.ttype == '{') {
            while (true) {
                streamTokenizer.nextToken();
                if (streamTokenizer.ttype == '}') {
                    break;
                } else {
                    nodeID(streamTokenizer);
                    edge = container.factory().newEdgeDraft();
                    edge.setSource(nodeDraft);
                    edge.setTarget(getOrCreateNode("" + streamTokenizer.sval));
                    container.addEdge(edge);
                }
            }
        } else {
            nodeID(streamTokenizer);
            edge = container.factory().newEdgeDraft();
            edge.setSource(nodeDraft);
            edge.setTarget(getOrCreateNode("" + streamTokenizer.sval));
            container.addEdge(edge);
        }
    } else {
        report.logIssue(new Issue(NbBundle.getMessage(ImporterDOT.class, "importerDOT_error_edgeparsing", streamTokenizer.lineno()), Issue.Level.SEVERE));
        if (streamTokenizer.ttype == StreamTokenizer.TT_WORD) {
            streamTokenizer.pushBack();
        }
        return;
    }
    streamTokenizer.nextToken();
    if (streamTokenizer.ttype == '[') {
        edgeAttributes(streamTokenizer, edge);
    } else {
        streamTokenizer.pushBack();
    }
}
Also used : EdgeDraft(org.gephi.io.importer.api.EdgeDraft) Issue(org.gephi.io.importer.api.Issue)

Example 9 with Issue

use of org.gephi.io.importer.api.Issue in project gephi by gephi.

the class ImporterDOT method graph.

protected void graph(StreamTokenizer streamTokenizer) throws Exception {
    boolean found = false;
    while (streamTokenizer.nextToken() != StreamTokenizer.TT_EOF) {
        if (streamTokenizer.ttype == StreamTokenizer.TT_WORD) {
            if (streamTokenizer.sval.equalsIgnoreCase("digraph") || streamTokenizer.sval.equalsIgnoreCase("graph")) {
                found = true;
                container.setEdgeDefault(streamTokenizer.sval.equalsIgnoreCase("digraph") ? EdgeDirectionDefault.DIRECTED : EdgeDirectionDefault.UNDIRECTED);
                streamTokenizer.nextToken();
                if (streamTokenizer.ttype == StreamTokenizer.TT_WORD) {
                    graphName = streamTokenizer.sval;
                    streamTokenizer.nextToken();
                }
                while (streamTokenizer.ttype != '{') {
                    streamTokenizer.nextToken();
                    if (streamTokenizer.ttype == StreamTokenizer.TT_EOF) {
                        return;
                    }
                }
                stmtList(streamTokenizer);
            }
        }
    }
    if (!found) {
        report.logIssue(new Issue(NbBundle.getMessage(ImporterDOT.class, "importerDOT_error_nothingfound"), Issue.Level.SEVERE));
    }
}
Also used : Issue(org.gephi.io.importer.api.Issue)

Example 10 with Issue

use of org.gephi.io.importer.api.Issue in project gephi by gephi.

the class ImporterGDF method setNodeData.

private void setNodeData(NodeDraft node, GDFColumn column, String data) throws Exception {
    if (column.getNodeColumn() != null) {
        try {
            switch(column.getNodeColumn()) {
                case X:
                    node.setX(Float.parseFloat(data));
                    break;
                case Y:
                    node.setY(Float.parseFloat(data));
                    break;
                case COLOR:
                    String[] rgb = data.replace(" ", "").split(",");
                    if (rgb.length == 3) {
                        node.setColor(rgb[0], rgb[1], rgb[2]);
                    } else {
                        node.setColor(data);
                    }
                    break;
                case FIXED:
                    node.setFixed(Boolean.parseBoolean(data));
                    break;
                case HEIGHT:
                    break;
                case WIDTH:
                    node.setSize(Float.parseFloat(data));
                    break;
                case LABEL:
                    node.setLabel(data);
                    break;
                case LABELVISIBLE:
                    node.setLabelVisible(Boolean.parseBoolean(data));
                    break;
            }
        } catch (Exception e) {
            String message = NbBundle.getMessage(ImporterGDF.class, "importerGDF_error_dataformat3", column.getNodeColumn(), node, data);
            report.logIssue(new Issue(message, Issue.Level.WARNING, e));
        }
    } else if (column.getAttributeColumn() != null) {
        try {
            node.parseAndSetValue(column.getAttributeColumn().getId(), data);
        } catch (Exception e) {
            String message = NbBundle.getMessage(ImporterGDF.class, "importerGDF_error_dataformat4", column.getAttributeColumn().getTypeClass().getSimpleName(), column.getAttributeColumn().getTitle(), node);
            report.logIssue(new Issue(message, Issue.Level.WARNING, e));
        }
    }
}
Also used : Issue(org.gephi.io.importer.api.Issue) IOException(java.io.IOException)

Aggregations

Issue (org.gephi.io.importer.api.Issue)52 NodeDraft (org.gephi.io.importer.api.NodeDraft)14 IOException (java.io.IOException)11 ColumnDraft (org.gephi.io.importer.api.ColumnDraft)10 EdgeDraft (org.gephi.io.importer.api.EdgeDraft)9 StringTokenizer (java.util.StringTokenizer)5 SQLException (java.sql.SQLException)4 ArrayList (java.util.ArrayList)4 XMLStreamException (javax.xml.stream.XMLStreamException)3 Interval (org.gephi.graph.api.Interval)3 EdgeProperties (org.gephi.io.importer.api.PropertiesAssociations.EdgeProperties)3 NodeProperties (org.gephi.io.importer.api.PropertiesAssociations.NodeProperties)3 Color (java.awt.Color)2 ResultSet (java.sql.ResultSet)2 ResultSetMetaData (java.sql.ResultSetMetaData)2 Statement (java.sql.Statement)2 Pattern (java.util.regex.Pattern)2 IntervalSet (org.gephi.graph.api.types.IntervalSet)2 TimestampSet (org.gephi.graph.api.types.TimestampSet)2 ElementDraft (org.gephi.io.importer.api.ElementDraft)2