diff --git a/tools/model_generator/modelviewer.jar b/tools/model_generator/modelviewer.jar index 50a70924..b1dab806 100644 Binary files a/tools/model_generator/modelviewer.jar and b/tools/model_generator/modelviewer.jar differ diff --git a/tools/model_generator/src/com/libiec61850/tools/ModelViewer.java b/tools/model_generator/src/com/libiec61850/tools/ModelViewer.java index b1059043..0997a4d9 100644 --- a/tools/model_generator/src/com/libiec61850/tools/ModelViewer.java +++ b/tools/model_generator/src/com/libiec61850/tools/ModelViewer.java @@ -71,6 +71,22 @@ public class ModelViewer { } } + private static void printDataObjects(List dataObjects, PrintStream output, String indent, String add) + { + for (DataObject dObject : dataObjects) { + output.println(indent + dObject.getName()); + + printDataObjects(dObject.getSubDataObjects(), output, indent + add, add); + + for (DataAttribute dAttribute : dObject.getDataAttributes()) { + output.println(indent + add + dAttribute.getName() + " [" + dAttribute.getFc().toString() + "]"); + + printSubAttributes(dAttribute, output, indent + add, add); + } + + } + } + private static void printModelStructure(InputStream stream, String icdFile, PrintStream output, String iedName, String accessPointName) throws SclParserException { @@ -97,16 +113,7 @@ public class ModelViewer { for (LogicalNode lNode : lNodes) { output.println(" " + lNode.getName()); - for (DataObject dObject : lNode.getDataObjects()) { - output.println(" " + dObject.getName()); - - for (DataAttribute dAttribute : dObject.getDataAttributes()) { - output.println(" " + dAttribute.getName() + " [" + dAttribute.getFc().toString() + "]"); - - printSubAttributes(dAttribute, output, " ", " "); - } - - } + printDataObjects(lNode.getDataObjects(), output, " ", " "); } } @@ -128,6 +135,24 @@ public class ModelViewer { } } + private static void printObjectList(List dataObjects, PrintStream output, String prefix) + { + for (DataObject dataObject : dataObjects) { + String dOPrefix = prefix + "." + dataObject.getName(); + + printObjectList(dataObject.getSubDataObjects(), output, dOPrefix); + + for (DataAttribute dAttribute : dataObject.getDataAttributes()) { + + String daPrefix = dOPrefix + "." + dAttribute.getName(); + + output.println(daPrefix + " [" + dAttribute.getFc().toString() + "]"); + + printSubAttributeList(dAttribute, output, daPrefix); + } + } + } + private static void printAttributeList(InputStream stream, String icdFile, PrintStream output, String iedName, String accessPointName) throws SclParserException { @@ -158,20 +183,22 @@ public class ModelViewer { for (LogicalNode lNode : lNodes) { String lNodePrefix = devPrefix + lNode.getName(); - for (DataObject dObject : lNode.getDataObjects()) { - - String dOPrefix = lNodePrefix + "." + dObject.getName(); - - for (DataAttribute dAttribute : dObject.getDataAttributes()) { - - String daPrefix = dOPrefix + "." + dAttribute.getName(); - - output.println(daPrefix + " [" + dAttribute.getFc().toString() + "]"); - - printSubAttributeList(dAttribute, output, daPrefix); - } - - } + printObjectList(lNode.getDataObjects(), output, lNodePrefix); + +// for (DataObject dObject : lNode.getDataObjects()) { +// +// String dOPrefix = lNodePrefix + "." + dObject.getName(); +// +// for (DataAttribute dAttribute : dObject.getDataAttributes()) { +// +// String daPrefix = dOPrefix + "." + dAttribute.getName(); +// +// output.println(daPrefix + " [" + dAttribute.getFc().toString() + "]"); +// +// printSubAttributeList(dAttribute, output, daPrefix); +// } +// +// } } }