diff --git a/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/util/NsdResourceSetImpl.java b/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/util/NsdResourceSetImpl.java index 3675b7c99637ff0028decd76e72051409ab97ed2..b2f72334ef78308572d8df97d8465084a837e8e0 100644 --- a/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/util/NsdResourceSetImpl.java +++ b/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/util/NsdResourceSetImpl.java @@ -21,10 +21,14 @@ package fr.centralesupelec.edf.riseclipse.iec61850.nsd.util; import java.io.IOException; import java.util.HashMap; +import java.util.Iterator; import java.util.Map; +import java.util.stream.Stream; import org.eclipse.emf.ecore.resource.Resource; import fr.centralesupelec.edf.riseclipse.iec61850.nsd.DocumentRoot; +import fr.centralesupelec.edf.riseclipse.iec61850.nsd.LNClass; +import fr.centralesupelec.edf.riseclipse.iec61850.nsd.LNClasses; import fr.centralesupelec.edf.riseclipse.iec61850.nsd.NS; import fr.centralesupelec.edf.riseclipse.util.AbstractRiseClipseConsole; import fr.centralesupelec.edf.riseclipse.util.IRiseClipseConsole; @@ -227,4 +231,30 @@ public class NsdResourceSetImpl extends RiseClipseResourceSet { * Name: uniqueServiceCDC Selector: nsd:ServiceCDC Field: @cdc @variant * Within an ServiceNS, there shall not be two ServiceCDC sub-elements with same name and (if defined) variant. */ + + public Stream< LNClass > getLNClassStream() { + if( nsdResources.isEmpty() ) { + return null; + } + Stream< LNClass > lnClassStream = null; + Iterator< NS > it = nsdResources.values().iterator(); + while( it.hasNext() ) { + LNClasses lnClasses = it.next().getLNClasses(); + if( lnClasses != null ) { + if( lnClassStream == null ) { + lnClassStream = lnClasses.getLNClass().stream(); + } + else { + // Warning: Resource leak: 'lnClassStream' is not closed at this location ?? + //lnClassStream = Stream.concat( lnClassStream, lnClasses.getLNClass().stream() ); + Stream< LNClass > tmp = Stream.concat( lnClassStream, lnClasses.getLNClass().stream() ); + lnClassStream = tmp; + } + } + } + return lnClassStream; + } + } + +