3
3
import java.util.ArrayList;
4
4
import java.util.Collection;
6
7
import org.apache.log4j.Logger;
7
8
import org.workcraft.dom.Node;
8
9
import org.workcraft.plugins.son.ONGroup;
10
import org.workcraft.plugins.son.Phase;
9
11
import org.workcraft.plugins.son.SON;
10
12
import org.workcraft.plugins.son.algorithm.BSONAlg;
11
13
import org.workcraft.plugins.son.algorithm.BSONCycleAlg;
14
16
import org.workcraft.plugins.son.algorithm.Path;
15
17
import org.workcraft.plugins.son.algorithm.RelationAlgorithm;
16
18
import org.workcraft.plugins.son.algorithm.TSONAlg;
19
import org.workcraft.plugins.son.elements.Condition;
18
21
abstract class AbstractStructuralVerification implements StructuralVerification{
27
30
private BSONCycleAlg bsonPathAlg;
28
31
private ONCycleAlg onPathAlg;
29
32
private TSONAlg tsonAlg;
33
private Map<Condition, Collection<Phase>> allPhases;
31
35
public AbstractStructuralVerification(SON net){
33
38
relationAlg = new RelationAlgorithm(net);
34
39
csonPathAlg = new CSONCycleAlg(net);
35
40
bsonAlg = new BSONAlg(net);
36
bsonPathAlg = new BSONCycleAlg(net);
41
allPhases = bsonAlg.getAllPhases();
42
bsonPathAlg = new BSONCycleAlg(net, allPhases);
37
43
onPathAlg = new ONCycleAlg(net);
38
44
tsonAlg = new TSONAlg(net);
42
47
public abstract void task(Collection<ONGroup> groups);
44
public Collection<String> getRelationErrorsSetReferences(Collection<Node> set){
49
public Collection<String> getRelationErrorsSetRefs(Collection<Node> set){
45
50
Collection<String> result = new ArrayList<String>();
46
51
for(Node node : set)
47
52
result.add(net.getNodeReference(node));
51
public Collection<String> getGroupErrorsSetReferences(Collection<ONGroup> set){
56
public Collection<String> getGroupErrorsSetRefs(Collection<ONGroup> set){
52
57
Collection<String> result = new ArrayList<String>();
53
58
for(ONGroup node : set)
54
59
result.add(net.getNodeReference(node));
58
public Collection<ArrayList<String>> getcycleErrorsSetReferences(Collection<Path> set){
63
public Collection<ArrayList<String>> getCycleErrorsSetRefs(Collection<Path> set){
59
64
Collection<ArrayList<String>> result = new ArrayList<ArrayList<String>>();
60
65
for(Path path : set){
61
66
ArrayList<String> sPath = new ArrayList<String>();