Skip to content
Snippets Groups Projects
Commit 1e379865 authored by Ludovic Apvrille's avatar Ludovic Apvrille
Browse files

Update on non connected elements

parent 8100d70f
No related branches found
No related tags found
No related merge requests found
......@@ -337,20 +337,40 @@ public class TMLCP extends TMLElement {
}
public TMLCPElement getNonConnectedElement() {
TMLCPElement elt;
elt = mainCP.getNonConnectedElement();
if (elt != null) {
return elt;
}
for(TMLCPActivityDiagram diag: otherCPs) {
TMLCPElement elt;
elt = mainCP.getNonConnectedElement();
if (elt != null) {
return elt;
}
for(TMLCPActivityDiagram diag: otherCPs) {
elt = diag.getNonConnectedElement();
if (elt != null) {
return elt;
}
if (elt != null) {
return elt;
}
}
return null;
}
public LinkedList<TMLCPElement> getAllNonConnectedElements() {
LinkedList<TMLCPElement> list = new LinkedList<TMLCPElement>();
TMLCPElement elt;
list.addAll(mainCP.getAllNonConnectedElements());
for(TMLCPActivityDiagram diag: otherCPs) {
list.addAll(diag.getAllNonConnectedElements());
}
return null;
return list;
}
public LinkedList<TMLCPElement> removeAllNonConnectedElements() {
LinkedList<TMLCPElement> list = new LinkedList<TMLCPElement>();
TMLCPElement elt;
list.addAll(mainCP.removeAllNonConnectedElements());
for(TMLCPActivityDiagram diag: otherCPs) {
list.addAll(diag.removeAllNonConnectedElements());
}
return list;
}
public void printDataStructure() {
ArrayList<TMLCPActivityDiagram> CPlist = new ArrayList<TMLCPActivityDiagram>();
......
......@@ -436,6 +436,53 @@ public class TMLCPActivityDiagram extends TMLElement {
return null;
}
public LinkedList<TMLCPElement> getAllNonConnectedElements() {
// Starting from Start state ... reaching all elements
// Then, see elements which are not in the reachable ones
if (start == null) {
return null;
}
LinkedList<TMLCPElement> list = new LinkedList<TMLCPElement>();
ArrayList<TMLCPElement> reached = new ArrayList<TMLCPElement>();
computeReachableElements(start, reached);
// Find elements which were not reached
for(TMLCPElement elt: elements) {
if (!(reached.contains(elt))) {
list.add(elt);
}
}
return list;
}
public LinkedList<TMLCPElement> removeAllNonConnectedElements() {
// Starting from Start state ... reaching all elements
// Then, see elements which are not in the reachable ones
if (start == null) {
return null;
}
LinkedList<TMLCPElement> list = new LinkedList<TMLCPElement>();
ArrayList<TMLCPElement> reached = new ArrayList<TMLCPElement>();
computeReachableElements(start, reached);
// Find elements which were not reached
for(TMLCPElement elt: elements) {
if (!(reached.contains(elt))) {
list.add(elt);
}
}
for(TMLCPElement elt: list) {
elements.remove(elt);
}
return list;
}
private void computeReachableElements(TMLCPElement _elt, ArrayList<TMLCPElement> _reached) {
if (_reached.contains(_elt)) {
return;
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment