@@ -132,11 +132,17 @@ private ArrayList<Object> parseList(LineNumberReader reader) throws IOException
132132 case '\t' :
133133 case '\n' :
134134 if (!stringBuffer .isEmpty ()) {
135+ //First try to parse as long, if not possible, try double.
135136 try {
136- Double doubleValue = Double .valueOf (stringBuffer );
137- list .add (doubleValue );
138- } catch (NumberFormatException e ) {
139- list .add (stringBuffer );
137+ Long longValue = Long .valueOf (stringBuffer );
138+ list .add (longValue );
139+ } catch (NumberFormatException e1 ) {
140+ try {
141+ Double doubleValue = Double .valueOf (stringBuffer );
142+ list .add (doubleValue );
143+ } catch (NumberFormatException e2 ) {
144+ list .add (stringBuffer );
145+ }
140146 }
141147 stringBuffer = new String ();
142148 }
@@ -165,8 +171,8 @@ private boolean parseGraph(ArrayList list) {
165171 } else if ("edge" .equals (key )) {
166172 ret = parseEdge ((ArrayList ) value );
167173 } else if ("directed" .equals (key )) {
168- if (value instanceof Double ) {
169- EdgeDirectionDefault edgeDefault = ((Double ) value ) == 1.0 ? EdgeDirectionDefault .DIRECTED : EdgeDirectionDefault .UNDIRECTED ;
174+ if (value instanceof Number ) {
175+ EdgeDirectionDefault edgeDefault = ((Number ) value ). intValue () == 1 ? EdgeDirectionDefault .DIRECTED : EdgeDirectionDefault .UNDIRECTED ;
170176 container .setEdgeDefault (edgeDefault );
171177 } else {
172178 report .logIssue (new Issue (NbBundle .getMessage (ImporterGML .class , "importerGML_error_directedgraphparse" ), Issue .Level .WARNING ));
@@ -227,14 +233,14 @@ private boolean addNodeAttributes(NodeDraft node, String prefix, ArrayList list)
227233 if (!ret ) {
228234 break ;
229235 }
230- } else if ("x" .equalsIgnoreCase (key ) && value instanceof Double ) {
231- node .setX (((Double ) value ).floatValue ());
232- } else if ("y" .equalsIgnoreCase (key ) && value instanceof Double ) {
233- node .setY (((Double ) value ).floatValue ());
234- } else if ("z" .equalsIgnoreCase (key ) && value instanceof Double ) {
235- node .setZ (((Double ) value ).floatValue ());
236- } else if ("w" .equalsIgnoreCase (key ) && value instanceof Double ) {
237- node .setSize (((Double ) value ).floatValue ());
236+ } else if ("x" .equalsIgnoreCase (key ) && value instanceof Number ) {
237+ node .setX (((Number ) value ).floatValue ());
238+ } else if ("y" .equalsIgnoreCase (key ) && value instanceof Number ) {
239+ node .setY (((Number ) value ).floatValue ());
240+ } else if ("z" .equalsIgnoreCase (key ) && value instanceof Number ) {
241+ node .setZ (((Number ) value ).floatValue ());
242+ } else if ("w" .equalsIgnoreCase (key ) && value instanceof Number ) {
243+ node .setSize (((Number ) value ).floatValue ());
238244 } else if ("h" .equalsIgnoreCase (key )) {
239245 } else if ("d" .equalsIgnoreCase (key )) {
240246 } else if ("fill" .equalsIgnoreCase (key )) {
@@ -276,8 +282,8 @@ private boolean parseEdge(ArrayList list) {
276282 NodeDraft target = container .getNode (value .toString ());
277283 edgeDraft .setTarget (target );
278284 } else if ("value" .equals (key ) || "weight" .equals (key )) {
279- if (value instanceof Double ) {
280- edgeDraft .setWeight (((Double ) value ));
285+ if (value instanceof Number ) {
286+ edgeDraft .setWeight (((Number ) value ). doubleValue ( ));
281287 }
282288 } else if ("label" .equals (key )) {
283289 edgeDraft .setLabel (value .toString ());
@@ -303,8 +309,8 @@ private boolean addEdgeAttributes(EdgeDraft edge, String prefix, ArrayList list)
303309 break ;
304310 }
305311 } else if ("directed" .equalsIgnoreCase (key )) {
306- if (value instanceof Double ) {
307- EdgeDirection type = ((Double ) value ) == 1 ? EdgeDirection .DIRECTED : EdgeDirection .UNDIRECTED ;
312+ if (value instanceof Number ) {
313+ EdgeDirection type = ((Number ) value ). intValue ( ) == 1 ? EdgeDirection .DIRECTED : EdgeDirection .UNDIRECTED ;
308314 edge .setDirection (type );
309315 } else {
310316 report .logIssue (new Issue (NbBundle .getMessage (ImporterGML .class , "importerGML_error_directedparse" , edge .toString ()), Issue .Level .WARNING ));
0 commit comments