Search in sources :

Example 46 with Issue

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

the class ImporterDL method computeHeaders.

private void computeHeaders() {
    //read format
    String form = (String) headerMap.get("format");
    if (form == null) {
        report.logIssue(new Issue(NbBundle.getMessage(ImporterDL.class, "importerDL_error_formatmissing"), Issue.Level.INFO));
    } else if (!form.equals("edgelist1") && !form.equals("fullmatrix")) {
        report.logIssue(new Issue(NbBundle.getMessage(ImporterDL.class, "importerDL_error_badformat", form), Issue.Level.SEVERE));
    } else if (form.equals("edgelist1")) {
        format = Format.EDGELIST1;
    } else if (form.equals("fullmatrix")) {
        format = Format.FULLMATRIX;
    }
    // read number of nodes
    try {
        String nArg = (String) headerMap.get("n");
        numNodes = Integer.parseInt(nArg);
    } catch (Exception e) {
        report.logIssue(new Issue(NbBundle.getMessage(ImporterDL.class, "importerDL_error_nmissing"), Issue.Level.SEVERE));
    }
    // read number matricies
    String mats = (String) headerMap.get("nm");
    if (mats != null) {
        try {
            numMatricies = Integer.parseInt(mats);
        } catch (Exception e) {
            report.logIssue(new Issue(NbBundle.getMessage(ImporterDL.class, "importerDL_error_mmissing"), Issue.Level.SEVERE));
        }
    } else {
        numMatricies = 1;
    }
}
Also used : Issue(org.gephi.io.importer.api.Issue) IOException(java.io.IOException)

Example 47 with Issue

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

the class ImporterDOT method edgeAttributes.

protected void edgeAttributes(StreamTokenizer streamTokenizer, final EdgeDraft edge) throws Exception {
    streamTokenizer.nextToken();
    if (streamTokenizer.ttype == ']' || streamTokenizer.ttype == StreamTokenizer.TT_EOF) {
        return;
    } else if (streamTokenizer.ttype == StreamTokenizer.TT_WORD || streamTokenizer.ttype == '"') {
        if (streamTokenizer.sval.equalsIgnoreCase("label")) {
            streamTokenizer.nextToken();
            if (streamTokenizer.ttype == '=') {
                streamTokenizer.nextToken();
                if (streamTokenizer.ttype == StreamTokenizer.TT_WORD || streamTokenizer.ttype == '"') {
                    edge.setLabel(streamTokenizer.sval);
                } else {
                    report.logIssue(new Issue(NbBundle.getMessage(ImporterDOT.class, "importerDOT_error_labelunreachable", streamTokenizer.lineno()), Issue.Level.WARNING));
                    streamTokenizer.pushBack();
                }
            } else {
                report.logIssue(new Issue(NbBundle.getMessage(ImporterDOT.class, "importerDOT_error_labelunreachable", streamTokenizer.lineno()), Issue.Level.WARNING));
                streamTokenizer.pushBack();
            }
        } else if (streamTokenizer.sval.equalsIgnoreCase("color")) {
            streamTokenizer.nextToken();
            if (streamTokenizer.ttype == '=') {
                streamTokenizer.nextToken();
                try {
                    edge.setColor(parseColor(streamTokenizer));
                } catch (ParseException e) {
                    report.logIssue(new Issue(NbBundle.getMessage(ImporterDOT.class, "importerDOT_error_colorunreachable", streamTokenizer.lineno()), Issue.Level.WARNING));
                    streamTokenizer.pushBack();
                }
            } else {
                report.logIssue(new Issue(NbBundle.getMessage(ImporterDOT.class, "importerDOT_color_labelunreachable", streamTokenizer.lineno()), Issue.Level.WARNING));
                streamTokenizer.pushBack();
            }
        } else if (streamTokenizer.sval.equalsIgnoreCase("style")) {
            streamTokenizer.nextToken();
            if (streamTokenizer.ttype == '=') {
                streamTokenizer.nextToken();
                if (streamTokenizer.ttype == StreamTokenizer.TT_WORD || streamTokenizer.ttype == '"')
                    ;
                else {
                    //System.err.println("couldn't find style at line " + streamTokenizer.lineno());
                    streamTokenizer.pushBack();
                }
            } else {
                //System.err.println("couldn't find style at line " + streamTokenizer.lineno());
                streamTokenizer.pushBack();
            }
        } else if (streamTokenizer.sval.equalsIgnoreCase("weight")) {
            streamTokenizer.nextToken();
            if (streamTokenizer.ttype == '=') {
                streamTokenizer.nextToken();
                if (streamTokenizer.ttype == StreamTokenizer.TT_WORD || streamTokenizer.ttype == '"') {
                    try {
                        Float weight = Float.parseFloat(streamTokenizer.sval);
                        edge.setWeight(weight);
                    } catch (Exception e) {
                        report.logIssue(new Issue(NbBundle.getMessage(ImporterDOT.class, "importerDOT_error_weightunreachable", streamTokenizer.lineno()), Issue.Level.WARNING));
                    }
                } else {
                    report.logIssue(new Issue(NbBundle.getMessage(ImporterDOT.class, "importerDOT_error_weightunreachable", streamTokenizer.lineno()), Issue.Level.WARNING));
                    streamTokenizer.pushBack();
                }
            } else {
                report.logIssue(new Issue(NbBundle.getMessage(ImporterDOT.class, "importerDOT_error_weightunreachable", streamTokenizer.lineno()), Issue.Level.WARNING));
                streamTokenizer.pushBack();
            }
        }
    }
    edgeAttributes(streamTokenizer, edge);
}
Also used : Issue(org.gephi.io.importer.api.Issue) IOException(java.io.IOException)

Example 48 with Issue

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

the class ImporterDOT method nodeAttributes.

protected void nodeAttributes(StreamTokenizer streamTokenizer, final NodeDraft nodeDraft) throws Exception {
    streamTokenizer.nextToken();
    if (streamTokenizer.ttype == ']' || streamTokenizer.ttype == StreamTokenizer.TT_EOF) {
        return;
    } else if (streamTokenizer.ttype == StreamTokenizer.TT_WORD || streamTokenizer.ttype == '"') {
        if (streamTokenizer.sval.equalsIgnoreCase("label")) {
            streamTokenizer.nextToken();
            if (streamTokenizer.ttype == '=') {
                streamTokenizer.nextToken();
                if (streamTokenizer.ttype == StreamTokenizer.TT_WORD || streamTokenizer.ttype == '"') {
                    nodeDraft.setLabel(streamTokenizer.sval);
                } else {
                    report.logIssue(new Issue(NbBundle.getMessage(ImporterDOT.class, "importerDOT_error_labelunreachable", streamTokenizer.lineno()), Issue.Level.WARNING));
                    streamTokenizer.pushBack();
                }
            } else {
                report.logIssue(new Issue(NbBundle.getMessage(ImporterDOT.class, "importerDOT_error_labelunreachable", streamTokenizer.lineno()), Issue.Level.WARNING));
                streamTokenizer.pushBack();
            }
        } else if (streamTokenizer.sval.equalsIgnoreCase("color")) {
            streamTokenizer.nextToken();
            if (streamTokenizer.ttype == '=') {
                streamTokenizer.nextToken();
                try {
                    nodeDraft.setColor(parseColor(streamTokenizer));
                } catch (ParseException e) {
                    report.logIssue(new Issue(NbBundle.getMessage(ImporterDOT.class, "importerDOT_error_colorunreachable", streamTokenizer.lineno()), Issue.Level.WARNING));
                    streamTokenizer.pushBack();
                }
            } else {
                report.logIssue(new Issue(NbBundle.getMessage(ImporterDOT.class, "importerDOT_error_colorunreachable", streamTokenizer.lineno()), Issue.Level.WARNING));
                streamTokenizer.pushBack();
            }
        } else if (streamTokenizer.sval.equalsIgnoreCase("pos")) {
            streamTokenizer.nextToken();
            if (streamTokenizer.ttype == '=') {
                streamTokenizer.nextToken();
                if (streamTokenizer.ttype == StreamTokenizer.TT_WORD || streamTokenizer.ttype == '"') {
                    try {
                        String[] positions = streamTokenizer.sval.split(",");
                        if (positions.length == 2) {
                            nodeDraft.setX(Float.parseFloat(positions[0]));
                            nodeDraft.setY(Float.parseFloat(positions[1]));
                        } else if (positions.length == 3) {
                            nodeDraft.setX(Float.parseFloat(positions[0]));
                            nodeDraft.setY(Float.parseFloat(positions[1]));
                            nodeDraft.setZ(Float.parseFloat(positions[2]));
                        }
                    } catch (Exception e) {
                    }
                } else {
                    report.logIssue(new Issue(NbBundle.getMessage(ImporterDOT.class, "importerDOT_error_posunreachable", streamTokenizer.lineno()), Issue.Level.WARNING));
                    streamTokenizer.pushBack();
                }
            } else {
                report.logIssue(new Issue(NbBundle.getMessage(ImporterDOT.class, "importerDOT_error_posunreachable", streamTokenizer.lineno()), Issue.Level.WARNING));
                streamTokenizer.pushBack();
            }
        } else if (streamTokenizer.sval.equalsIgnoreCase("style")) {
            streamTokenizer.nextToken();
            if (streamTokenizer.ttype == '=') {
                streamTokenizer.nextToken();
                if (streamTokenizer.ttype == StreamTokenizer.TT_WORD || streamTokenizer.ttype == '"') {
                } else {
                    //System.err.println("couldn't find style at line " + streamTokenizer.lineno());
                    streamTokenizer.pushBack();
                }
            } else {
                //System.err.println("couldn't find style at line " + streamTokenizer.lineno());
                streamTokenizer.pushBack();
            }
        } else {
            // other attributes
            String attributeName = streamTokenizer.sval;
            streamTokenizer.nextToken();
            if (streamTokenizer.ttype == '=') {
                streamTokenizer.nextToken();
                if (streamTokenizer.ttype == StreamTokenizer.TT_WORD || streamTokenizer.ttype == '"') {
                    String value = streamTokenizer.sval;
                    if (value != null && !value.isEmpty()) {
                        nodeDraft.setValue(attributeName, value);
                    }
                } else {
                    streamTokenizer.pushBack();
                }
            } else {
                streamTokenizer.pushBack();
            }
        }
    }
    nodeAttributes(streamTokenizer, nodeDraft);
}
Also used : Issue(org.gephi.io.importer.api.Issue) IOException(java.io.IOException)

Example 49 with Issue

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

the class ImporterGDF method findEdgeColumns.

private void findEdgeColumns(String line) throws Exception {
    String[] columns = line.split(",");
    edgeColumns = new GDFColumn[columns.length - 2];
    for (int i = 2; 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("color")) {
            edgeColumns[i - 2] = new GDFColumn(GDFColumn.EdgeGuessColumn.COLOR);
            report.log("Edge property found: color");
        } else if (columnName.equals("visible")) {
            edgeColumns[i - 2] = new GDFColumn(GDFColumn.EdgeGuessColumn.VISIBLE);
            report.log("Edge property found: visible");
        } else if (columnName.equals("weight")) {
            edgeColumns[i - 2] = new GDFColumn(GDFColumn.EdgeGuessColumn.WEIGHT);
            report.log("Edge property found: weight");
        } else if (columnName.equals("directed")) {
            edgeColumns[i - 2] = new GDFColumn(GDFColumn.EdgeGuessColumn.DIRECTED);
            report.log("Edge property found: directed");
        } else if (columnName.equals("label")) {
            edgeColumns[i - 2] = new GDFColumn(GDFColumn.EdgeGuessColumn.LABEL);
            report.log("Edge property found: label");
        } else if (columnName.equals("labelvisible")) {
            edgeColumns[i - 2] = new GDFColumn(GDFColumn.EdgeGuessColumn.LABELVISIBLE);
            report.log("Edge property found: labelvisible");
        } else {
            ColumnDraft column = container.getEdgeColumn(columnName);
            if (column == null) {
                column = container.addEdgeColumn(columnName, type);
                edgeColumns[i - 2] = new GDFColumn(column);
                report.log("Edge attribute " + columnName + " (" + type.getSimpleName() + ")");
            } else {
                report.logIssue(new Issue(NbBundle.getMessage(ImporterGDF.class, "importerGDF_error_dataformat9", columnName), Issue.Level.SEVERE));
            }
        }
    }
}
Also used : ColumnDraft(org.gephi.io.importer.api.ColumnDraft) Issue(org.gephi.io.importer.api.Issue)

Example 50 with Issue

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

the class ImporterGDF method setEdgeData.

private void setEdgeData(EdgeDraft edge, GDFColumn column, String data) throws Exception {
    if (column.getEdgeColumn() != null) {
        try {
            switch(column.getEdgeColumn()) {
                case COLOR:
                    String[] rgb = data.replace(" ", "").split(",");
                    if (rgb.length == 3) {
                        edge.setColor(rgb[0], rgb[1], rgb[2]);
                    } else {
                        edge.setColor(data);
                    }
                    break;
                case WEIGHT:
                    edge.setWeight(Float.parseFloat(data));
                    break;
                case DIRECTED:
                    if (Boolean.parseBoolean(data)) {
                        edge.setDirection(EdgeDirection.DIRECTED);
                    } else {
                        edge.setDirection(EdgeDirection.UNDIRECTED);
                    }
                    break;
                case LABEL:
                    edge.setLabel(data);
                    break;
                case LABELVISIBLE:
                    edge.setLabelVisible(Boolean.parseBoolean(data));
                    break;
            }
        } catch (Exception e) {
            String message = NbBundle.getMessage(ImporterGDF.class, "importerGDF_error_dataformat3", column.getEdgeColumn(), data);
            report.logIssue(new Issue(message, Issue.Level.WARNING, e));
        }
    } else if (column.getAttributeColumn() != null) {
        try {
            edge.parseAndSetValue(column.getAttributeColumn().getId(), data);
        } catch (Exception e) {
            String message = NbBundle.getMessage(ImporterGDF.class, "importerGDF_error_dataformat4", column.getAttributeColumn().getTypeClass().getSimpleName(), column.getAttributeColumn().getTitle(), edge);
            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