Ignore:
Timestamp:
04/04/13 16:06:07 (11 years ago)
Author:
pharms
Message:
  • complete refactoring of task tree model with a separation of task models and task instances
  • appropriate adaptation of task tree generation process
  • appropriate adaptation of commands and task tree visualization
Location:
trunk/autoquest-core-tasktrees/src/main/java/de/ugoe/cs/autoquest/tasktrees/taskequality
Files:
2 copied

Legend:

Unmodified
Added
Removed
  • trunk/autoquest-core-tasktrees/src/main/java/de/ugoe/cs/autoquest/tasktrees/taskequality/SequenceComparisonRule.java

    r1125 r1146  
    1313//   limitations under the License. 
    1414 
    15 package de.ugoe.cs.autoquest.tasktrees.nodeequality; 
     15package de.ugoe.cs.autoquest.tasktrees.taskequality; 
    1616 
    1717import java.util.List; 
    1818 
    1919import de.ugoe.cs.autoquest.tasktrees.treeifc.ISequence; 
    20 import de.ugoe.cs.autoquest.tasktrees.treeifc.ITaskTreeNode; 
     20import de.ugoe.cs.autoquest.tasktrees.treeifc.ITask; 
    2121 
    2222/** 
     
    3131 * @author 2012, last modified by $Author: patrick$ 
    3232 */ 
    33 public class SequenceComparisonRule implements NodeComparisonRule { 
     33public class SequenceComparisonRule implements TaskComparisonRule { 
    3434 
    35     /** the rule manager for internally comparing task tree nodes */ 
    36     private NodeEqualityRuleManager mRuleManager; 
     35    /** the rule manager for internally comparing tasks */ 
     36    private TaskEqualityRuleManager mRuleManager; 
    3737 
    3838    /** 
    3939     * <p> 
    40      * simple constructor to provide the rule with the node equality rule manager to be able 
    41      * to perform comparisons of the children of provided task tree nodes 
     40     * simple constructor to provide the rule with the task equality rule manager to be able 
     41     * to perform comparisons of the children of provided tasks 
    4242     * </p> 
    4343     *  
    44      * @param ruleManager the rule manager for comparing task tree nodes 
     44     * @param ruleManager the rule manager for comparing tasks 
    4545     */ 
    46     SequenceComparisonRule(NodeEqualityRuleManager ruleManager) { 
     46    SequenceComparisonRule(TaskEqualityRuleManager ruleManager) { 
    4747        super(); 
    4848        mRuleManager = ruleManager; 
     
    5050 
    5151    /* (non-Javadoc) 
    52      * @see NodeComparisonRule#isApplicable(ITaskTreeNode, ITaskTreeNode) 
     52     * @see NodeComparisonRule#isApplicable(ITask, ITask) 
    5353     */ 
    5454    @Override 
    55     public boolean isApplicable(ITaskTreeNode node1, ITaskTreeNode node2) { 
    56         return (node1 instanceof ISequence) && (node2 instanceof ISequence); 
     55    public boolean isApplicable(ITask task1, ITask task2) { 
     56        return (task1 instanceof ISequence) && (task2 instanceof ISequence); 
    5757    } 
    5858 
    5959    /* (non-Javadoc) 
    60      * @see NodeComparisonRule#areLexicallyEqual(ITaskTreeNode, ITaskTreeNode) 
     60     * @see NodeComparisonRule#areLexicallyEqual(ITask, ITask) 
    6161     */ 
    6262    @Override 
    63     public boolean areLexicallyEqual(ITaskTreeNode node1, ITaskTreeNode node2) { 
    64         NodeEquality equality = getEquality(node1, node2, NodeEquality.LEXICALLY_EQUAL); 
    65         return (equality != null) && (equality.isAtLeast(NodeEquality.LEXICALLY_EQUAL)); 
     63    public boolean areLexicallyEqual(ITask task1, ITask task2) { 
     64        TaskEquality equality = getEquality(task1, task2, TaskEquality.LEXICALLY_EQUAL); 
     65        return (equality != null) && (equality.isAtLeast(TaskEquality.LEXICALLY_EQUAL)); 
    6666    } 
    6767 
    6868    /* (non-Javadoc) 
    69      * @see NodeComparisonRule#areSyntacticallyEqual(ITaskTreeNode, ITaskTreeNode) 
     69     * @see NodeComparisonRule#areSyntacticallyEqual(ITask, ITask) 
    7070     */ 
    7171    @Override 
    72     public boolean areSyntacticallyEqual(ITaskTreeNode node1, ITaskTreeNode node2) { 
    73         NodeEquality equality = getEquality(node1, node2, NodeEquality.SYNTACTICALLY_EQUAL); 
    74         return (equality != null) && (equality.isAtLeast(NodeEquality.SYNTACTICALLY_EQUAL)); 
     72    public boolean areSyntacticallyEqual(ITask task1, ITask task2) { 
     73        TaskEquality equality = getEquality(task1, task2, TaskEquality.SYNTACTICALLY_EQUAL); 
     74        return (equality != null) && (equality.isAtLeast(TaskEquality.SYNTACTICALLY_EQUAL)); 
    7575    } 
    7676 
    7777    /* (non-Javadoc) 
    78      * @see NodeComparisonRule#areSemanticallyEqual(ITaskTreeNode, ITaskTreeNode) 
     78     * @see NodeComparisonRule#areSemanticallyEqual(ITask, ITask) 
    7979     */ 
    8080    @Override 
    81     public boolean areSemanticallyEqual(ITaskTreeNode node1, ITaskTreeNode node2) { 
    82         NodeEquality equality = getEquality(node1, node2, NodeEquality.SEMANTICALLY_EQUAL); 
    83         return (equality != null) && (equality.isAtLeast(NodeEquality.SEMANTICALLY_EQUAL)); 
     81    public boolean areSemanticallyEqual(ITask task1, ITask task2) { 
     82        TaskEquality equality = getEquality(task1, task2, TaskEquality.SEMANTICALLY_EQUAL); 
     83        return (equality != null) && (equality.isAtLeast(TaskEquality.SEMANTICALLY_EQUAL)); 
    8484    } 
    8585 
    8686    /* (non-Javadoc) 
    87      * @see NodeComparisonRule#compare(ITaskTreeNode, ITaskTreeNode) 
     87     * @see NodeComparisonRule#compare(ITask, ITask) 
    8888     */ 
    8989    @Override 
    90     public NodeEquality compare(ITaskTreeNode node1, ITaskTreeNode node2) { 
    91         return getEquality(node1, node2, null); 
     90    public TaskEquality compare(ITask task1, ITask task2) { 
     91        return getEquality(task1, task2, null); 
    9292    } 
    9393 
     
    9595     *  
    9696     */ 
    97     private NodeEquality getEquality(ITaskTreeNode node1, 
    98                                      ITaskTreeNode node2, 
    99                                      NodeEquality  requiredEqualityLevel) 
    100     { 
    101         List<ITaskTreeNode> children1 = node1.getChildren(); 
    102         List<ITaskTreeNode> children2 = node2.getChildren(); 
     97    private TaskEquality getEquality(ITask task1, ITask task2, TaskEquality requiredEqualityLevel) { 
     98        List<ITask> children1 = ((ISequence) task1).getChildren(); 
     99        List<ITask> children2 = ((ISequence) task2).getChildren(); 
    103100 
    104101        // if both sequences do not have children, they are equal although this doesn't make sense 
    105102        if ((children1.size() == 0) && (children2.size() == 0)) { 
    106             return NodeEquality.LEXICALLY_EQUAL; 
     103            return TaskEquality.LEXICALLY_EQUAL; 
    107104        } 
    108105 
    109106        if (children1.size() != children2.size()) { 
    110             return NodeEquality.UNEQUAL; 
     107            return TaskEquality.UNEQUAL; 
    111108        } 
    112109 
    113         NodeEquality resultingEquality = NodeEquality.LEXICALLY_EQUAL; 
     110        TaskEquality resultingEquality = TaskEquality.LEXICALLY_EQUAL; 
    114111        for (int i = 0; i < children1.size(); i++) { 
    115             ITaskTreeNode child1 = children1.get(i); 
    116             ITaskTreeNode child2 = children2.get(i); 
     112            ITask child1 = children1.get(i); 
     113            ITask child2 = children2.get(i); 
    117114 
    118             NodeEquality nodeEquality = callRuleManager(child1, child2, requiredEqualityLevel); 
     115            TaskEquality taskEquality = callRuleManager(child1, child2, requiredEqualityLevel); 
    119116 
    120             if ((nodeEquality == null) || (nodeEquality == NodeEquality.UNEQUAL)) { 
    121                 return NodeEquality.UNEQUAL; 
     117            if ((taskEquality == null) || (taskEquality == TaskEquality.UNEQUAL)) { 
     118                return TaskEquality.UNEQUAL; 
    122119            } 
    123120             
    124             resultingEquality = resultingEquality.getCommonDenominator(nodeEquality); 
     121            resultingEquality = resultingEquality.getCommonDenominator(taskEquality); 
    125122        } 
    126123 
     
    138135     * @return 
    139136     */ 
    140     private NodeEquality callRuleManager(ITaskTreeNode child1, 
    141                                          ITaskTreeNode child2, 
    142                                          NodeEquality requiredEqualityLevel) 
     137    private TaskEquality callRuleManager(ITask        child1, 
     138                                         ITask        child2, 
     139                                         TaskEquality requiredEqualityLevel) 
    143140    { 
    144141        if (requiredEqualityLevel == null) { 
     
    149146        } 
    150147        else { 
    151             return NodeEquality.UNEQUAL; 
     148            return TaskEquality.UNEQUAL; 
    152149        } 
    153150    } 
Note: See TracChangeset for help on using the changeset viewer.