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