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