Search in sources :

Example 51 with Issue

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

the class ImporterGDF method walkFile.

private void walkFile(BufferedReader reader) throws Exception {
    if (reader.ready()) {
        String firstLine = reader.readLine();
        if (isNodeFirstLine(firstLine)) {
            findNodeColumns(firstLine);
            boolean edgesWalking = false;
            while (reader.ready() && !cancel) {
                String line = reader.readLine();
                if (isEdgeFirstLine(line)) {
                    edgesWalking = true;
                    findEdgeColumns(line);
                } else if (!edgesWalking) {
                    //Nodes
                    nodeLines.add(line);
                } else {
                    //Edges
                    edgeLines.add(line);
                }
            }
        } else {
            report.logIssue(new Issue(NbBundle.getMessage(ImporterGDF.class, "importerGDF_error_dataformat1"), Issue.Level.CRITICAL));
        }
    } else {
        report.logIssue(new Issue(NbBundle.getMessage(ImporterGDF.class, "importerGDF_error_dataformat1"), Issue.Level.CRITICAL));
    }
}
Also used : Issue(org.gephi.io.importer.api.Issue)

Example 52 with Issue

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

the class ImporterGDF method findNodeColumns.

private void findNodeColumns(String line) throws Exception {
    String[] columns = line.split(",");
    nodeColumns = new GDFColumn[columns.length - 1];
    for (int i = 1; i < columns.length; i++) {
        String columnString = columns[i];
        String typeString = "";
        String columnName = "";
        Class type = String.class;
        try {
            typeString = columnString.substring(columnString.lastIndexOf(" ")).trim().toLowerCase();
        } catch (IndexOutOfBoundsException e) {
        }
        try {
            int end = columnString.lastIndexOf(" ");
            if (end != -1) {
                columnName = columnString.substring(0, end).trim().toLowerCase();
            } else {
                columnName = columnString.trim().toLowerCase();
            }
        } catch (IndexOutOfBoundsException e) {
        }
        //Check error
        if (columnName.isEmpty()) {
            report.logIssue(new Issue(NbBundle.getMessage(ImporterGDF.class, "importerGDF_error_dataformat2"), Issue.Level.SEVERE));
            columnName = "default" + i;
        }
        if (typeString.isEmpty()) {
            report.logIssue(new Issue(NbBundle.getMessage(ImporterGDF.class, "importerGDF_error_dataformat6", columnName), Issue.Level.INFO));
            typeString = "varchar";
        }
        //Clean parenthesis
        typeString = typeString.replaceAll("\\([0-9]*\\)", "");
        if (typeString.equals("varchar")) {
            type = String.class;
        } else if (typeString.equals("bool")) {
            type = Boolean.class;
        } else if (typeString.equals("boolean")) {
            type = Boolean.class;
        } else if (typeString.equals("integer")) {
            type = Integer.class;
        } else if (typeString.equals("tinyint")) {
            type = Integer.class;
        } else if (typeString.equals("int")) {
            type = Integer.class;
        } else if (typeString.equals("double")) {
            type = Double.class;
        } else if (typeString.equals("float")) {
            type = Float.class;
        } else {
            report.logIssue(new Issue(NbBundle.getMessage(ImporterGDF.class, "importerGDF_error_dataformat5", typeString), Issue.Level.WARNING));
        }
        if (columnName.equals("x")) {
            nodeColumns[i - 1] = new GDFColumn(GDFColumn.NodeGuessColumn.X);
            report.log("Node property found: x");
        } else if (columnName.equals("y")) {
            nodeColumns[i - 1] = new GDFColumn(GDFColumn.NodeGuessColumn.Y);
            report.log("Node property found: y");
        } else if (columnName.equals("visible")) {
            nodeColumns[i - 1] = new GDFColumn(GDFColumn.NodeGuessColumn.VISIBLE);
            report.log("Node property found: visible");
        } else if (columnName.equals("color")) {
            nodeColumns[i - 1] = new GDFColumn(GDFColumn.NodeGuessColumn.COLOR);
            report.log("Node property found: color");
        } else if (columnName.equals("fixed")) {
            nodeColumns[i - 1] = new GDFColumn(GDFColumn.NodeGuessColumn.FIXED);
            report.log("Node property found: fixed");
        } else if (columnName.equals("style")) {
            nodeColumns[i - 1] = new GDFColumn(GDFColumn.NodeGuessColumn.STYLE);
            report.log("Node property found: style");
        } else if (columnName.equals("width")) {
            nodeColumns[i - 1] = new GDFColumn(GDFColumn.NodeGuessColumn.WIDTH);
            report.log("Node property found: width");
        } else if (columnName.equals("height")) {
            nodeColumns[i - 1] = new GDFColumn(GDFColumn.NodeGuessColumn.HEIGHT);
            report.log("Node property found: height");
        } else if (columnName.equals("label")) {
            nodeColumns[i - 1] = new GDFColumn(GDFColumn.NodeGuessColumn.LABEL);
            report.log("Node property found: label");
        } else if (columnName.equals("labelvisible")) {
            nodeColumns[i - 1] = new GDFColumn(GDFColumn.NodeGuessColumn.LABELVISIBLE);
            report.log("Node property found: labelvisible");
        } else {
            ColumnDraft column = container.getNodeColumn(columnName);
            if (column == null) {
                column = container.addNodeColumn(columnName, type);
                nodeColumns[i - 1] = new GDFColumn(column);
                report.log("Node attribute " + columnName + " (" + type.getSimpleName() + ")");
            } else {
                report.logIssue(new Issue(NbBundle.getMessage(ImporterGDF.class, "importerGDF_error_dataformat8", columnName), Issue.Level.SEVERE));
            }
        }
    }
}
Also used : ColumnDraft(org.gephi.io.importer.api.ColumnDraft) Issue(org.gephi.io.importer.api.Issue)

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