diff --git a/src/tmltranslator/TMLCPSyntaxChecking.java b/src/tmltranslator/TMLCPSyntaxChecking.java index acee743a32be74fa36b270e504e70c3b51eeafef..830dc32692d4c95596346ed6d83e898b3fdc55b6 100755 --- a/src/tmltranslator/TMLCPSyntaxChecking.java +++ b/src/tmltranslator/TMLCPSyntaxChecking.java @@ -92,28 +92,32 @@ public class TMLCPSyntaxChecking { errors = new ArrayList<TMLCPError>(); warnings = new ArrayList<TMLCPError>(); - checkMainCP(); - /*checkActivityDiagrams();*/ + /*checkMainCP();*/ + checkActivityDiagrams(); checkSequenceDiagrams(); } //Check that all diagrams, forks, joins and choices are connected by retrieving the list - //of elements and checking if they appear as start or end name in the list of connectors - private void checkMainCP() { + //of elements and checking if they appear as start or end name in the list of connectors. + //First check the mainCP then check the other Activity Diagrams + private void checkActivityDiagrams() { TMLCPActivityDiagram mainCP = tmlcp.getMainCP(); - ArrayList<String> listConnectorsStartEndNames = new ArrayList<String>(); - ArrayList<String> listElementsToCheck = new ArrayList<String>(); - - //check that all diagrams are connected + //Checking mainCP ArrayList<TMLCPElement> currentListOfElements = mainCP.getElements(); - ArrayList<TMLCPElement> listOfElementsToCheck = mainCP.getElements(); - checkStartState( currentListOfElements, mainCP ); checkDisconnectedSubParts( currentListOfElements, mainCP ); checkDiagramsBetweenForkAndJoin( currentListOfElements, mainCP ); + //Checking the other ActivityDiagrams + ArrayList<TMLCPActivityDiagram> listADs = tmlcp.getCPActivityDiagrams(); + for( TMLCPActivityDiagram diag: listADs ) { + currentListOfElements = diag.getElements(); + checkStartState( currentListOfElements, diag ); + checkDisconnectedSubParts( currentListOfElements, diag ); + checkDiagramsBetweenForkAndJoin( currentListOfElements, diag ); + } /*for( TMLCPElement elem: listElements ) { if( elem instanceof tmltranslator.tmlcp.TMLCPRefAD ) { listElementsToCheck.add(((tmltranslator.tmlcp.TMLCPRefAD)elem).getName() ); @@ -155,7 +159,7 @@ public class TMLCPSyntaxChecking { int startCounter = 0; for( TMLCPElement elem: diag.getElements() ) { - TraceManager.addDev( "ELEMENT in MAINCP: " + elem ); + TraceManager.addDev( "ELEMENT in AD: " + elem ); if( elem instanceof TMLCPStart ) { startCounter++; } @@ -199,9 +203,6 @@ public class TMLCPSyntaxChecking { if( element instanceof TMLCPFork ) { listOfForks.add( (TMLCPFork) element ); } - /*if( element instanceof TMLCPJoin ) { - listOfJoins.add( (TMLCPJoin) element ); - }*/ } for( TMLCPFork fork: listOfForks ) { for( TMLCPElement element: fork.getNextElements() ) { @@ -219,9 +220,6 @@ public class TMLCPSyntaxChecking { } listOfJoins.clear(); } - /*TraceManager.addDev( "LIST OF FORKS: " + listOfForks.toString() ); - TraceManager.addDev( "########################################" ); - TraceManager.addDev( "LIST OF JOINS: " + listOfJoins.toString() );*/ } //Recursive function that explores the path from an element until a join node @@ -246,7 +244,7 @@ public class TMLCPSyntaxChecking { //Check that all diagrams are connected by retrieving the list of diagrams and checking if they appear as start or end name in //the list of connectors of the AD diagram under examination //At the same time, get the list of guards of choice elements - private void checkActivityDiagrams() { + private void checkActivityDiagramsOLD() { ArrayList<TMLCPActivityDiagram> listADs = tmlcp.getCPActivityDiagrams(); ArrayList<TMLCPSequenceDiagram> listSDs = tmlcp.getCPSequenceDiagrams();