throw new FatalException("Error parsing graph. Graph element must be specified before node element.");
}
String idString = (String) attributeMap.remove("id");
DeterministicDirectedSparseGraph.DeterministicVertex vertex =
new DeterministicDirectedSparseGraph.DeterministicVertex(new VertexID(idString));// this ID will be subsequently modified when we look at the "VERTEX" tag.
mGraph.addVertex(vertex);
try {
mLabeller.setLabel((Vertex) vertex,idString);
} catch (StringLabeller.UniqueLabelException ule) {
throw new FatalException("Ids must be unique");
}
for (Iterator keyIt = attributeMap.keySet().iterator();keyIt.hasNext();)
{
Object key = keyIt.next();
Object value = attributeMap.get(key);
MiniPair p=new MiniPair(key,value);
vertex.setUserDatum(p.getKey(), p.getValue(), UserData.SHARED);
}
String label = attributeMap.get("VERTEX").toString();
if(label.startsWith(Transform.Initial))
{
vertex.addUserDatum("startOrTerminal", "start", UserData.SHARED);
vertex.addUserDatum(JUConstants.INITIAL, true, UserData.SHARED);
label = label.replaceAll(Transform.Initial+" *", "");
}
vertex.setUserDatum(JUConstants.LABEL, new VertexID(label), UserData.SHARED);
if (!vertex.containsUserDatumKey(JUConstants.ACCEPTED))
vertex.setUserDatum(JUConstants.ACCEPTED, true, UserData.SHARED);
return vertex;
}