diff --git a/tools/model_generator/src/com/libiec61850/scl/SclParser.java b/tools/model_generator/src/com/libiec61850/scl/SclParser.java index 4ed22e51..4faa143b 100644 --- a/tools/model_generator/src/com/libiec61850/scl/SclParser.java +++ b/tools/model_generator/src/com/libiec61850/scl/SclParser.java @@ -30,6 +30,7 @@ import java.io.InputStream; import java.util.LinkedList; import java.util.List; import java.util.Stack; +import java.util.stream.Stream; import javax.xml.parsers.DocumentBuilder; import javax.xml.parsers.DocumentBuilderFactory; @@ -118,6 +119,15 @@ public class SclParser { public Communication getCommunication() { return communication; } + + public Stream getIeds() { + return ieds.stream(); + } + + public int getIedsCount() { + return ieds.size(); + } + public static Document parseXmlWithLineNumberInformation(InputStream xmlInputStream) throws IOException, SAXException { final Document xmlDocument; @@ -314,4 +324,4 @@ public class SclParser { return null; } -} \ No newline at end of file +} diff --git a/tools/model_generator/src/com/libiec61850/scl/model/AccessPoint.java b/tools/model_generator/src/com/libiec61850/scl/model/AccessPoint.java index 91fec813..69d07cd1 100644 --- a/tools/model_generator/src/com/libiec61850/scl/model/AccessPoint.java +++ b/tools/model_generator/src/com/libiec61850/scl/model/AccessPoint.java @@ -42,12 +42,11 @@ public class AccessPoint { Node serverNode = ParserUtils.getChildNodeWithTag(apNode, "Server"); - if (serverNode == null) - throw new SclParserException(apNode, "AccessPoint has no server defined!"); - - this.server = new Server(serverNode, typeDeclarations); - - } + if (serverNode == null) { + server = null; + } else { + server = new Server(serverNode, typeDeclarations); + } public String getName() { return name; diff --git a/tools/model_generator/src/com/libiec61850/scl/model/IED.java b/tools/model_generator/src/com/libiec61850/scl/model/IED.java index fb381aeb..45936a04 100644 --- a/tools/model_generator/src/com/libiec61850/scl/model/IED.java +++ b/tools/model_generator/src/com/libiec61850/scl/model/IED.java @@ -41,9 +41,6 @@ public class IED { List accessPointNodes = ParserUtils.getChildNodesWithTag(iedNode, "AccessPoint"); - if (accessPointNodes.size() == 0) - throw new SclParserException(iedNode, "no AccessPoint defined in IED " + name); - this.accessPoints = new LinkedList(); for (Node accessPointNode : accessPointNodes) {