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);
}
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;
}
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;
}
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));
}
}
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);
}
Aggregations