private int oldOrNextId(Object node) { if (null != prevNodeMap && prevNodeMap.containsKey(node)) { NodeElement nodeElem = prevNodeMap.get(node); return nodeElem.getId(); } else { return nextId(); } }
final void setNodeProperty(Object node, String propertyName, Object value) { NodeElement nodeElem = getElementByObject(node); nodeElem.getProperties().put(propertyName, value); }
final void createElementForNode(Object node) { boolean exists = nodeMap.containsKey(node); if (!exists) { int nodeId = !exists ? oldOrNextId(node) : nextId(); nodeMap.put(node, new NodeElement(nodeId)); String className = NodeUtil.className(node.getClass()); setNodeProperty(node, "name", dropNodeSuffix(className)); NodeInfo nodeInfo = node.getClass().getAnnotation(NodeInfo.class); if (nodeInfo != null) { setNodeProperty(node, "cost", nodeInfo.cost()); if (!nodeInfo.shortName().isEmpty()) { setNodeProperty(node, "shortName", nodeInfo.shortName()); } } setNodeProperty(node, "class", className); if (node instanceof Node) { readNodeProperties((Node) node); copyDebugProperties((Node) node); } } }
final void createElementForNode(Object node) { boolean exists = nodeMap.containsKey(node); if (!exists) { int nodeId = !exists ? oldOrNextId(node) : nextId(); nodeMap.put(node, new NodeElement(nodeId)); String className = NodeUtil.className(node.getClass()); setNodeProperty(node, "name", dropNodeSuffix(className)); NodeInfo nodeInfo = node.getClass().getAnnotation(NodeInfo.class); if (nodeInfo != null) { setNodeProperty(node, "cost", nodeInfo.cost()); if (!nodeInfo.shortName().isEmpty()) { setNodeProperty(node, "shortName", nodeInfo.shortName()); } } setNodeProperty(node, "class", className); if (node instanceof Node) { readNodeProperties((Node) node); copyDebugProperties((Node) node); } } }
private void writeNodes() { for (NodeElement node : nodeMap.values()) { xmlstream.writeStartElement("node"); xmlstream.writeAttribute("id", String.valueOf(node.getId())); xmlstream.writeStartElement("properties"); for (Map.Entry<String, Object> property : node.getProperties().entrySet()) { xmlstream.writeStartElement("p"); xmlstream.writeAttribute("name", property.getKey()); xmlstream.writeCharacters(safeToString(property.getValue())); xmlstream.writeEndElement(); // p } xmlstream.writeEndElement(); // properties xmlstream.writeEndElement(); // node } }
private void writeNodes() { for (NodeElement node : nodeMap.values()) { xmlstream.writeStartElement("node"); xmlstream.writeAttribute("id", String.valueOf(node.getId())); xmlstream.writeStartElement("properties"); for (Map.Entry<String, Object> property : node.getProperties().entrySet()) { xmlstream.writeStartElement("p"); xmlstream.writeAttribute("name", property.getKey()); xmlstream.writeCharacters(safeToString(property.getValue())); xmlstream.writeEndElement(); // p } xmlstream.writeEndElement(); // properties xmlstream.writeEndElement(); // node } }
private void writeEdges() { for (EdgeElement edge : edgeList) { xmlstream.writeStartElement("edge"); xmlstream.writeAttribute("from", String.valueOf(edge.getFrom().getId())); xmlstream.writeAttribute("to", String.valueOf(edge.getTo().getId())); xmlstream.writeAttribute("index", String.valueOf(edge.getIndex())); if (edge.getLabel() != null) { xmlstream.writeAttribute("label", edge.getLabel()); } xmlstream.writeEndElement(); // edge } }
private void readNodeProperties(Node node) { NodeClass nodeClass = NodeClass.get(node); for (Object field : nodeClass.getNodeFields()) { if (isDataField(nodeClass, field)) { String key = nodeClass.getFieldName(field); if (!getElementByObject(node).getProperties().containsKey(key)) { Object value = nodeClass.getFieldValue(field, node); setNodeProperty(node, key, value); } } } }
final void setNodeProperty(Object node, String propertyName, Object value) { NodeElement nodeElem = getElementByObject(node); nodeElem.getProperties().put(propertyName, value); }
private void readNodeProperties(Node node) { NodeClass nodeClass = NodeClass.get(node); for (Object field : nodeClass.getNodeFields()) { if (isDataField(nodeClass, field)) { String key = nodeClass.getFieldName(field); if (!getElementByObject(node).getProperties().containsKey(key)) { Object value = nodeClass.getFieldValue(field, node); setNodeProperty(node, key, value); } } } }
private int oldOrNextId(Object node) { if (null != prevNodeMap && prevNodeMap.containsKey(node)) { NodeElement nodeElem = prevNodeMap.get(node); return nodeElem.getId(); } else { return nextId(); } }
private void writeEdges() { for (EdgeElement edge : edgeList) { xmlstream.writeStartElement("edge"); xmlstream.writeAttribute("from", String.valueOf(edge.getFrom().getId())); xmlstream.writeAttribute("to", String.valueOf(edge.getTo().getId())); xmlstream.writeAttribute("index", String.valueOf(edge.getIndex())); if (edge.getLabel() != null) { xmlstream.writeAttribute("label", edge.getLabel()); } xmlstream.writeEndElement(); // edge } }