Search in sources :

Example 26 with Issue

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

the class ImportContainerImpl method addNode.

@Override
public void addNode(NodeDraft nodeDraft) {
    checkElementDraftImpl(nodeDraft);
    NodeDraftImpl nodeDraftImpl = (NodeDraftImpl) nodeDraft;
    if (nodeMap.containsKey(nodeDraftImpl.getId())) {
        String message = NbBundle.getMessage(ImportContainerImpl.class, "ImportContainerException_nodeExist", nodeDraftImpl.getId());
        report.logIssue(new Issue(message, Level.WARNING));
        return;
    }
    int index = nodeList.size();
    nodeList.add(nodeDraftImpl);
    nodeMap.put(nodeDraftImpl.getId(), index);
}
Also used : Issue(org.gephi.io.importer.api.Issue)

Example 27 with Issue

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

the class ImportContainerImpl method verify.

@Override
public boolean verify() {
    //Edge weight zero or negative
    for (EdgeDraftImpl edge : new NullFilterIterable<EdgeDraftImpl>(edgeList)) {
        String id = edge.getId();
        if (edge.getWeight() < 0f) {
            report.logIssue(new Issue(NbBundle.getMessage(ImportContainerImpl.class, "ImportContainerException_Negative_Weight", id), Level.WARNING));
        } else if (edge.getWeight() == 0) {
            removeEdge(edge);
            report.logIssue(new Issue(NbBundle.getMessage(ImportContainerImpl.class, "ImportContainerException_Weight_Zero_Ignored", id), Level.SEVERE));
        }
    }
    //Graph EdgeDefault
    if (directedEdgesCount > 0 && undirectedEdgesCount == 0) {
        setEdgeDefault(EdgeDirectionDefault.DIRECTED);
    } else if (directedEdgesCount == 0 && undirectedEdgesCount > 0) {
        setEdgeDefault(EdgeDirectionDefault.UNDIRECTED);
    } else if (directedEdgesCount > 0 && undirectedEdgesCount > 0) {
        setEdgeDefault(EdgeDirectionDefault.MIXED);
    }
    //IdType
    if (elementIdType.equals(ElementIdType.INTEGER) || elementIdType.equals(ElementIdType.LONG)) {
        try {
            for (NodeDraftImpl node : nodeList) {
                if (elementIdType.equals(ElementIdType.INTEGER)) {
                    Integer.parseInt(node.getId());
                } else if (elementIdType.equals(ElementIdType.LONG)) {
                    Long.parseLong(node.getId());
                }
            }
            for (EdgeDraftImpl edge : edgeList) {
                if (elementIdType.equals(ElementIdType.INTEGER)) {
                    Integer.parseInt(edge.getId());
                } else if (elementIdType.equals(ElementIdType.LONG)) {
                    Long.parseLong(edge.getId());
                }
            }
        } catch (NumberFormatException e) {
            report.logIssue(new Issue(NbBundle.getMessage(ImportContainerImpl.class, "ImportContainerException_ElementIdType_Parse_Error", elementIdType), Level.WARNING));
            elementIdType = ElementIdType.STRING;
        }
    }
    //Is dynamic graph
    for (NodeDraftImpl node : nodeList) {
        if (node != null) {
            if (node.isDynamic()) {
                dynamicGraph = true;
            }
            if (node.hasDynamicAttributes()) {
                dynamicAttributes = true;
            }
        }
    }
    for (EdgeDraftImpl edge : edgeList) {
        if (edge != null) {
            if (edge.isDynamic()) {
                dynamicGraph = true;
            }
            if (edge.hasDynamicAttributes()) {
                dynamicAttributes = true;
            }
        }
    }
    //Print TimeFormat
    if (dynamicGraph) {
        report.log(NbBundle.getMessage(ImportContainerImpl.class, "ImportContainerLog.TimeFormat", timeFormat.toString()));
        report.log(NbBundle.getMessage(ImportContainerImpl.class, "ImportContainerLog.TimeRepresentation", timeRepresentation.toString()));
        report.log(NbBundle.getMessage(ImportContainerImpl.class, "ImportContainerLog.TimeZone", timeZone.toString()));
    }
    //Print edge label type
    if (lastEdgeType != null) {
        report.log(NbBundle.getMessage(ImportContainerImpl.class, "ImportContainerLog.EdgeLabelType", lastEdgeType.getSimpleName()));
    }
    //Print edge types
    if (isMultiGraph()) {
        report.log(NbBundle.getMessage(ImportContainerImpl.class, "ImportContainerLog.MultiGraphCount", edgeTypeMap.size() - 1));
    }
    return true;
}
Also used : Issue(org.gephi.io.importer.api.Issue)

Example 28 with Issue

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

the class ImportContainerImpl method addNodeColumn.

@Override
public ColumnDraft addNodeColumn(String key, Class typeClass, boolean dynamic) {
    key = key.toLowerCase();
    ColumnDraft column = nodeColumns.get(key);
    typeClass = AttributeUtils.getStandardizedType(typeClass);
    if (column == null) {
        int index = nodeColumns.size();
        column = new ColumnDraftImpl(key, index, dynamic, typeClass);
        nodeColumns.put(key, column);
        if (dynamic) {
            report.log(NbBundle.getMessage(ImportContainerImpl.class, "ImportContainerLog.AddDynamicNodeColumn", key, typeClass.getSimpleName()));
        } else {
            report.log(NbBundle.getMessage(ImportContainerImpl.class, "ImportContainerLog.AddNodeColumn", key, typeClass.getSimpleName()));
        }
    } else if (!column.getTypeClass().equals(typeClass)) {
        report.logIssue(new Issue(NbBundle.getMessage(ImportContainerImpl.class, "ImportContainerException_Column_Type_Mismatch", key, column.getTypeClass()), Level.SEVERE));
    }
    return column;
}
Also used : ColumnDraft(org.gephi.io.importer.api.ColumnDraft) Issue(org.gephi.io.importer.api.Issue)

Example 29 with Issue

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

the class ElementDraftImpl method setValue.

@Override
public void setValue(String key, Object value) {
    Class type = value.getClass();
    if (AttributeUtils.isDynamicType(type)) {
        type = AttributeUtils.getStaticType(type);
    }
    ColumnDraft column = getColumn(key, type);
    try {
        setAttributeValue(column, value);
    } catch (Exception ex) {
        String message = NbBundle.getMessage(ElementDraftImpl.class, "ElementDraftException_SetValueError", value.toString(), id, ex.getMessage());
        container.getReport().logIssue(new Issue(message, Issue.Level.SEVERE));
    }
}
Also used : ColumnDraft(org.gephi.io.importer.api.ColumnDraft) Issue(org.gephi.io.importer.api.Issue)

Example 30 with Issue

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

the class ImporterPajek method importData.

private void importData(LineNumberReader reader) throws Exception {
    //Progress
    Progress.start(progressTicket);
    try {
        // ignore everything until we see '*Vertices'
        String curLine = skip(reader, "*vertices");
        if (// no vertices in the graph; return empty graph
        curLine == null) {
            report.logIssue(new Issue(NbBundle.getMessage(ImporterPajek.class, "importerNET_error_dataformat1"), Issue.Level.CRITICAL));
        }
        // create appropriate number of vertices
        StringTokenizer stringTokenizer = new StringTokenizer(curLine);
        // skip past "*vertices";
        stringTokenizer.nextToken();
        int num_vertices = Integer.parseInt(stringTokenizer.nextToken());
        //Progress
        Progress.switchToDeterminate(progressTicket, num_vertices);
        verticesArray = new NodeDraft[num_vertices];
        for (int i = 0; i < num_vertices; i++) {
            String label = "" + (i + 1);
            NodeDraft node = container.factory().newNodeDraft(label);
            node.setLabel(label);
            verticesArray[i] = node;
        }
        curLine = null;
        while (reader.ready()) {
            if (cancel) {
                reader.close();
                return;
            }
            curLine = reader.readLine();
            if (curLine == null || curLine.startsWith("*")) {
                break;
            }
            if (curLine.isEmpty()) {
                // skip blank lines
                report.logIssue(new Issue(NbBundle.getMessage(ImporterPajek.class, "importerNET_error_dataformat2", reader.getLineNumber()), Issue.Level.WARNING));
                continue;
            }
            try {
                readVertex(curLine, num_vertices);
            } catch (IllegalArgumentException iae) {
                reader.close();
                throw iae;
            }
            Progress.progress(progressTicket);
        }
        //Append nodes
        for (NodeDraft node : verticesArray) {
            container.addNode(node);
        }
        //Get arcs
        curLine = readArcsOrEdges(curLine, reader);
        //Get edges
        readArcsOrEdges(curLine, reader);
        reader.close();
    } catch (Exception e) {
        e.printStackTrace();
        throw new RuntimeException(e);
    }
    Progress.finish(progressTicket);
}
Also used : StringTokenizer(java.util.StringTokenizer) Issue(org.gephi.io.importer.api.Issue) NodeDraft(org.gephi.io.importer.api.NodeDraft) 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