Ignore:
Timestamp:
03/18/13 11:46:47 (11 years ago)
Author:
pharms
Message:
  • refactoring of task tree node comparison to be able to optimize the comparisons for the different comparison levels lexically, syntactically, semantically
File:
1 edited

Legend:

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

    r1113 r1125  
    2828public class EventTaskComparisonRule implements NodeComparisonRule { 
    2929     
    30     /* 
    31      * (non-Javadoc) 
    32      *  
    33      * @see de.ugoe.cs.tasktree.nodeequality.NodeEqualityRule#apply(TaskTreeNode, TaskTreeNode) 
     30    /* (non-Javadoc) 
     31     * @see NodeComparisonRule#isApplicable(ITaskTreeNode, ITaskTreeNode) 
    3432     */ 
    3533    @Override 
    36     public NodeEquality compare(ITaskTreeNode node1, ITaskTreeNode node2) { 
    37         if ((!(node1 instanceof IEventTask)) || (!(node2 instanceof IEventTask))) { 
    38             return null; 
    39         } 
     34    public boolean isApplicable(ITaskTreeNode node1, ITaskTreeNode node2) { 
     35        return (node1 instanceof IEventTask) && (node2 instanceof IEventTask); 
     36    } 
    4037 
    41         if (node1 == node2) { 
    42             return NodeEquality.IDENTICAL; 
    43         } 
    44  
     38    /* (non-Javadoc) 
     39     * @see NodeComparisonRule#areLexicallyEqual(ITaskTreeNode, ITaskTreeNode) 
     40     */ 
     41    @Override 
     42    public boolean areLexicallyEqual(ITaskTreeNode node1, ITaskTreeNode node2) { 
    4543        IEventTask task1 = (IEventTask) node1; 
    4644        IEventTask task2 = (IEventTask) node2; 
    4745         
    48         if (task1.getEventType().equals(task2.getEventType()) && 
    49             task1.getEventTarget().equals(task2.getEventTarget())) 
    50         { 
     46        return (task1.getEventType().equals(task2.getEventType()) && 
     47                task1.getEventTarget().equals(task2.getEventTarget())); 
     48    } 
     49 
     50    /* (non-Javadoc) 
     51     * @see NodeComparisonRule#areSyntacticallyEqual(ITaskTreeNode, ITaskTreeNode) 
     52     */ 
     53    @Override 
     54    public boolean areSyntacticallyEqual(ITaskTreeNode node1, ITaskTreeNode node2) { 
     55        return areLexicallyEqual(node1, node2); 
     56    } 
     57 
     58    /* (non-Javadoc) 
     59     * @see NodeComparisonRule#areSemanticallyEqual(ITaskTreeNode, ITaskTreeNode) 
     60     */ 
     61    @Override 
     62    public boolean areSemanticallyEqual(ITaskTreeNode node1, ITaskTreeNode node2) { 
     63        return areLexicallyEqual(node1, node2); 
     64    } 
     65 
     66    @Override 
     67    public NodeEquality compare(ITaskTreeNode node1, ITaskTreeNode node2) { 
     68        if (areLexicallyEqual(node1, node2)) { 
    5169            return NodeEquality.LEXICALLY_EQUAL; 
    5270        } 
Note: See TracChangeset for help on using the changeset viewer.