Changeset 1152 for trunk/autoquest-core-usability-evaluation/src/main/java/de/ugoe/cs/autoquest/usability/rules
- Timestamp:
- 04/08/13 16:50:21 (11 years ago)
- Location:
- trunk/autoquest-core-usability-evaluation/src/main/java/de/ugoe/cs/autoquest/usability/rules
- Files:
-
- 15 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/autoquest-core-usability-evaluation/src/main/java/de/ugoe/cs/autoquest/usability/rules/UsabilityMetricsRuleset.java
r1138 r1152 19 19 import com.google.common.collect.Lists; 20 20 21 import de.ugoe.cs.autoquest.tasktrees.treeifc.ITask Tree;21 import de.ugoe.cs.autoquest.tasktrees.treeifc.ITaskModel; 22 22 import de.ugoe.cs.autoquest.usability.rules.metrics.NoLetterOrDigitRatioMetric; 23 23 import de.ugoe.cs.autoquest.usability.rules.metrics.TextInputEntryRepetitionsMetric; … … 41 41 * 42 42 */ 43 private UsabilityMetricsRuleset(ITask Tree taskTree) {43 private UsabilityMetricsRuleset(ITaskModel taskModel) { 44 44 this.metrics = Lists.newArrayList(); 45 metrics.add(new NoLetterOrDigitRatioMetric(task Tree));46 metrics.add(new TextInputEntryRepetitionsMetric(task Tree));47 metrics.add(new TextInputRatioMetric(task Tree));45 metrics.add(new NoLetterOrDigitRatioMetric(taskModel)); 46 metrics.add(new TextInputEntryRepetitionsMetric(taskModel)); 47 metrics.add(new TextInputRatioMetric(taskModel)); 48 48 } 49 49 -
trunk/autoquest-core-usability-evaluation/src/main/java/de/ugoe/cs/autoquest/usability/rules/UsabilityRule.java
r1150 r1152 17 17 import com.google.common.base.Optional; 18 18 19 import de.ugoe.cs.autoquest.tasktrees.treeifc.ITask Tree;19 import de.ugoe.cs.autoquest.tasktrees.treeifc.ITaskModel; 20 20 import de.ugoe.cs.autoquest.usability.EvaluationMethodCaller; 21 21 import de.ugoe.cs.autoquest.usability.result.UsabilityDefect; … … 30 30 public abstract class UsabilityRule { 31 31 32 protected final ITask Tree taskTree;32 protected final ITaskModel taskModel; 33 33 34 34 protected String name; … … 42 42 * 43 43 */ 44 public UsabilityRule(ITask Tree taskTree) {45 this.task Tree = taskTree;44 public UsabilityRule(ITaskModel taskModel) { 45 this.taskModel = taskModel; 46 46 } 47 47 -
trunk/autoquest-core-usability-evaluation/src/main/java/de/ugoe/cs/autoquest/usability/rules/metrics/NoLetterOrDigitRatioMetric.java
r1150 r1152 25 25 import com.google.common.collect.Multiset; 26 26 27 import de.ugoe.cs.autoquest.tasktrees.treeifc.ITask Tree;28 import de.ugoe.cs.autoquest.tasktrees.treeifc.ITask TreeNode;27 import de.ugoe.cs.autoquest.tasktrees.treeifc.ITask; 28 import de.ugoe.cs.autoquest.tasktrees.treeifc.ITaskModel; 29 29 import de.ugoe.cs.autoquest.usability.EvaluationMethodCaller; 30 30 import de.ugoe.cs.autoquest.usability.result.DefectDescriptionResolver; … … 34 34 import de.ugoe.cs.autoquest.usability.tasktree.FilterResult; 35 35 import de.ugoe.cs.autoquest.usability.tasktree.IterativeDFSFilterStrategy; 36 import de.ugoe.cs.autoquest.usability.tasktree.filters.Task TreeFilter;36 import de.ugoe.cs.autoquest.usability.tasktree.filters.TaskModelFilter; 37 37 38 38 /** … … 52 52 * @param taskTree 53 53 */ 54 public NoLetterOrDigitRatioMetric(ITask Tree taskTree) {55 super(task Tree);54 public NoLetterOrDigitRatioMetric(ITaskModel taskModel) { 55 super(taskModel); 56 56 this.name = "NoLetterOrDigitRatio"; 57 57 this.defect = new DefectDescriptionResolver().descriptionFor(this.getClass().getSimpleName()); … … 64 64 public Optional<UsabilityDefect> calculate() { 65 65 FilterResult textInputEvents = extractNodesFromTaskTree(); 66 float evaluationMetric = calculateEvaluationMetric(textInputEvents. nodesMatchedFilter());66 float evaluationMetric = calculateEvaluationMetric(textInputEvents.tasksMatchedFilter()); 67 67 return this.defect.isPresent(evaluationMetric); 68 68 } 69 69 70 70 private FilterResult extractNodesFromTaskTree() { 71 return new Task TreeFilter(new IterativeDFSFilterStrategy()).filterByEventType(TEXT_INPUT)72 .from(this.task Tree);71 return new TaskModelFilter(new IterativeDFSFilterStrategy()).filterByEventType(TEXT_INPUT) 72 .from(this.taskModel); 73 73 } 74 74 75 private float calculateEvaluationMetric(List<ITask TreeNode> textInputEvents) {75 private float calculateEvaluationMetric(List<ITask> textInputEvents) { 76 76 Multiset<String> enteredTextFragments = 77 77 aggregateEnteredTextFromTextInputs(textInputEvents); -
trunk/autoquest-core-usability-evaluation/src/main/java/de/ugoe/cs/autoquest/usability/rules/metrics/TextInputEntryRepetitionsMetric.java
r1150 r1152 25 25 import com.google.common.collect.Multisets; 26 26 27 import de.ugoe.cs.autoquest.tasktrees.treeifc.ITask Tree;28 import de.ugoe.cs.autoquest.tasktrees.treeifc.ITask TreeNode;27 import de.ugoe.cs.autoquest.tasktrees.treeifc.ITask; 28 import de.ugoe.cs.autoquest.tasktrees.treeifc.ITaskModel; 29 29 import de.ugoe.cs.autoquest.usability.EvaluationMethodCaller; 30 30 import de.ugoe.cs.autoquest.usability.result.DefectDescriptionResolver; … … 34 34 import de.ugoe.cs.autoquest.usability.tasktree.FilterResult; 35 35 import de.ugoe.cs.autoquest.usability.tasktree.IterativeDFSFilterStrategy; 36 import de.ugoe.cs.autoquest.usability.tasktree.filters.Task TreeFilter;36 import de.ugoe.cs.autoquest.usability.tasktree.filters.TaskModelFilter; 37 37 38 38 /** … … 52 52 * @param taskTree 53 53 */ 54 public TextInputEntryRepetitionsMetric(ITask Tree taskTree) {55 super(task Tree);54 public TextInputEntryRepetitionsMetric(ITaskModel taskModel) { 55 super(taskModel); 56 56 this.name = "TextInputEntryRepetitions"; 57 57 this.defect = new DefectDescriptionResolver().descriptionFor(this.getClass().getSimpleName()); … … 64 64 public Optional<UsabilityDefect> calculate() { 65 65 FilterResult textInputEvents = extractNodesFromTaskTree(); 66 float evaluationMetric = calculateEvaluationMetric(textInputEvents. nodesMatchedFilter());66 float evaluationMetric = calculateEvaluationMetric(textInputEvents.tasksMatchedFilter()); 67 67 return this.defect.isPresent(evaluationMetric); 68 68 } 69 69 70 70 private FilterResult extractNodesFromTaskTree() { 71 return new Task TreeFilter(new IterativeDFSFilterStrategy()).filterByEventType(TEXT_INPUT)72 .from(this.task Tree);71 return new TaskModelFilter(new IterativeDFSFilterStrategy()).filterByEventType(TEXT_INPUT) 72 .from(this.taskModel); 73 73 } 74 74 75 private float calculateEvaluationMetric(List<ITask TreeNode> textInputEvents) {75 private float calculateEvaluationMetric(List<ITask> textInputEvents) { 76 76 Multiset<String> enteredTextFragments = 77 77 aggregateEnteredTextFromTextInputs(textInputEvents); -
trunk/autoquest-core-usability-evaluation/src/main/java/de/ugoe/cs/autoquest/usability/rules/metrics/TextInputRatioMetric.java
r1150 r1152 23 23 import com.google.common.collect.Iterables; 24 24 25 import de.ugoe.cs.autoquest.tasktrees.treeifc.ITaskTree; 26 import de.ugoe.cs.autoquest.tasktrees.treeifc.ITaskTreeNode; 25 import de.ugoe.cs.autoquest.tasktrees.treeifc.IEventTask; 26 import de.ugoe.cs.autoquest.tasktrees.treeifc.ITask; 27 import de.ugoe.cs.autoquest.tasktrees.treeifc.ITaskModel; 27 28 import de.ugoe.cs.autoquest.usability.EvaluationMethodCaller; 28 29 import de.ugoe.cs.autoquest.usability.result.DefectDescriptionResolver; … … 32 33 import de.ugoe.cs.autoquest.usability.tasktree.FilterResult; 33 34 import de.ugoe.cs.autoquest.usability.tasktree.IterativeDFSFilterStrategy; 34 import de.ugoe.cs.autoquest.usability.tasktree.filters.Task TreeFilter;35 import de.ugoe.cs.autoquest.usability.tasktree.filters.TaskModelFilter; 35 36 36 37 /** … … 50 51 * @param taskTree 51 52 */ 52 public TextInputRatioMetric(ITask Tree taskTree) {53 super(task Tree);53 public TextInputRatioMetric(ITaskModel taskModel) { 54 super(taskModel); 54 55 this.name = "TextInputRatio"; 55 56 this.defect = new DefectDescriptionResolver().descriptionFor(this.getClass().getSimpleName()); … … 62 63 public Optional<UsabilityDefect> calculate() { 63 64 FilterResult textInputEvents = extractNodesFromTaskTree(); 64 float evaluationMetric = calculateEvaluationMetric(textInputEvents. nodesMatchedFilter(), textInputEvents.nodesNotMatchedFilter());65 float evaluationMetric = calculateEvaluationMetric(textInputEvents.tasksMatchedFilter(), textInputEvents.tasksNotMatchedFilter()); 65 66 return this.defect.isPresent(evaluationMetric); 66 67 } 67 68 68 69 private FilterResult extractNodesFromTaskTree() { 69 return new Task TreeFilter(new IterativeDFSFilterStrategy()).filterByEventType(TEXT_INPUT)70 .from(this.task Tree);70 return new TaskModelFilter(new IterativeDFSFilterStrategy()).filterByEventType(TEXT_INPUT) 71 .from(this.taskModel); 71 72 } 72 73 73 private float calculateEvaluationMetric(List<ITask TreeNode> textInputEvents, List<ITaskTreeNode> nonTextInputEvents) {74 private float calculateEvaluationMetric(List<ITask> textInputEvents, List<ITask> nonTextInputEvents) { 74 75 float numberOfTextInputEvents = textInputEvents.size(); 75 float numberOfNonTextInputEvents = nrOfEvent NodesNotMatchedFilter(nonTextInputEvents);76 float numberOfNonTextInputEvents = nrOfEventTasksNotMatchedFilter(nonTextInputEvents); 76 77 return numberOfTextInputEvents / (numberOfTextInputEvents + numberOfNonTextInputEvents); 77 78 } 78 79 79 private int nrOfEvent NodesNotMatchedFilter(List<ITaskTreeNode> nonTextInputEvents) {80 private int nrOfEventTasksNotMatchedFilter(List<ITask> nonTextInputEvents) { 80 81 return Iterables.size(Iterables.filter(nonTextInputEvents, 81 new Predicate<ITask TreeNode>() {82 new Predicate<ITask>() { 82 83 83 84 @Override 84 public boolean apply(ITaskTreeNode node) { 85 return (node.getChildren() == null) || 86 (node.getChildren().size() == 0); 85 public boolean apply(ITask task) { 86 return task instanceof IEventTask; 87 87 } 88 88 })); -
trunk/autoquest-core-usability-evaluation/src/main/java/de/ugoe/cs/autoquest/usability/rules/patterns/LongFormUsageDefect.java
r1150 r1152 18 18 import static de.ugoe.cs.autoquest.usability.tasktree.filters.EventTypeFilter.SCROLL; 19 19 import static de.ugoe.cs.autoquest.usability.tasktree.filters.EventTypeFilter.TEXT_INPUT; 20 import static de.ugoe.cs.autoquest.usability.tasktree.filters.TaskT reeNodeTypeFilter.ITERATION;21 import static de.ugoe.cs.autoquest.usability.tasktree.filters.TaskT reeNodeTypeFilter.SEQUENCE;20 import static de.ugoe.cs.autoquest.usability.tasktree.filters.TaskTypeFilter.ITERATION; 21 import static de.ugoe.cs.autoquest.usability.tasktree.filters.TaskTypeFilter.SEQUENCE; 22 22 23 23 import com.google.common.base.Optional; 24 24 25 import de.ugoe.cs.autoquest.tasktrees.treeifc.ITask Tree;25 import de.ugoe.cs.autoquest.tasktrees.treeifc.ITaskModel; 26 26 import de.ugoe.cs.autoquest.usability.EvaluationMethodCaller; 27 27 import de.ugoe.cs.autoquest.usability.result.DefectDescriptionResolver; … … 48 48 * @param taskTree 49 49 */ 50 public LongFormUsageDefect(ITask Tree taskTree) {51 super(task Tree);50 public LongFormUsageDefect(ITaskModel taskModel) { 51 super(taskModel); 52 52 this.name = "LongFormUsagePattern"; 53 53 this.defect = new DefectDescriptionResolver().descriptionFor(this.getClass().getSimpleName()); … … 73 73 public Optional<UsabilityDefect> check() { 74 74 Optional<UsabilityDefect> present = Optional.absent(); 75 if(this.longFormUsagePattern.containedIn(task Tree)) {75 if(this.longFormUsagePattern.containedIn(taskModel)) { 76 76 present = Optional.of(this.defect); 77 77 } -
trunk/autoquest-core-usability-evaluation/src/main/java/de/ugoe/cs/autoquest/usability/rules/patterns/UsagePattern.java
r1150 r1152 22 22 import com.google.common.collect.Iterables; 23 23 24 import de.ugoe.cs.autoquest.tasktrees.treeifc.ITask Tree;25 import de.ugoe.cs.autoquest.tasktrees.treeifc.ITask TreeNode;24 import de.ugoe.cs.autoquest.tasktrees.treeifc.ITask; 25 import de.ugoe.cs.autoquest.tasktrees.treeifc.ITaskModel; 26 26 import de.ugoe.cs.autoquest.usability.tasktree.IterativeDFSFilterStrategy; 27 import de.ugoe.cs.autoquest.usability.tasktree.filters.Task TreeFilter;28 import de.ugoe.cs.autoquest.usability.tasktree.filters.TaskT reeNodeTypeFilter;27 import de.ugoe.cs.autoquest.usability.tasktree.filters.TaskModelFilter; 28 import de.ugoe.cs.autoquest.usability.tasktree.filters.TaskTypeFilter; 29 29 30 30 /** … … 37 37 public class UsagePattern { 38 38 39 private Task TreeFilter taskTreeFilter = new TaskTreeFilter(new IterativeDFSFilterStrategy());39 private TaskModelFilter taskTreeFilter = new TaskModelFilter(new IterativeDFSFilterStrategy()); 40 40 41 private TaskT reeNodeTypeFilter concernedNode;41 private TaskTypeFilter concernedTask; 42 42 43 43 private List<UsagePatternVisitor> patternVisitors; … … 53 53 * @param eventType 54 54 */ 55 public UsagePattern(TaskT reeNodeTypeFilter concernedNode,55 public UsagePattern(TaskTypeFilter concernedNode, 56 56 UsagePatternVisitor... patternVisitor) 57 57 { 58 58 this.patternVisitors = Arrays.asList(patternVisitor); 59 this.concerned Node= concernedNode;59 this.concernedTask = concernedNode; 60 60 } 61 61 62 public boolean containedIn(ITask Tree taskTree) {63 List<ITask TreeNode> allConcernedNodes = filterAllConcernedNodeFrom(taskTree);64 for(ITask TreeNode concernedNode : allConcernedNodes) {65 applyAllVisitors(concerned Node);62 public boolean containedIn(ITaskModel taskModel) { 63 List<ITask> allConcernedTasks = filterAllConcernedTasksFrom(taskModel); 64 for(ITask concernedTask : allConcernedTasks) { 65 applyAllVisitors(concernedTask); 66 66 if(allVisitorsArePresent()) { 67 67 this.present = true; … … 75 75 } 76 76 77 private void applyAllVisitors(ITask TreeNode concernedNode) {77 private void applyAllVisitors(ITask concernedTask) { 78 78 Optional<UsagePatternVisitor> previousVisitor = Optional.absent(); 79 79 for(UsagePatternVisitor visitor : patternVisitors) { 80 80 if(appliedOnSelectionNode(previousVisitor)) { 81 for(ITask TreeNode selectionNode: previousVisitor.get().getRetainedSelectionNodes()) {82 selection Node.accept(visitor);81 for(ITask selection : previousVisitor.get().getRetainedSelectionNodes()) { 82 selection.accept(visitor); 83 83 } 84 84 } else { 85 85 previousVisitor = Optional.of(visitor); 86 concerned Node.accept(visitor);86 concernedTask.accept(visitor); 87 87 } 88 88 } … … 101 101 * @return 102 102 */ 103 private List<ITask TreeNode> filterAllConcernedNodeFrom(ITaskTree taskTree) {104 return this.taskTreeFilter.filterByNodeType(this.concerned Node).from(taskTree).nodesMatchedFilter();103 private List<ITask> filterAllConcernedTasksFrom(ITaskModel taskModel) { 104 return this.taskTreeFilter.filterByNodeType(this.concernedTask).from(taskModel).tasksMatchedFilter(); 105 105 } 106 106 -
trunk/autoquest-core-usability-evaluation/src/main/java/de/ugoe/cs/autoquest/usability/rules/patterns/UsagePatternBuilder.java
r1150 r1152 22 22 import de.ugoe.cs.autoquest.usability.rules.patterns.visitors.StartsWithPatternVisitor; 23 23 import de.ugoe.cs.autoquest.usability.tasktree.filters.EventTypeFilter; 24 import de.ugoe.cs.autoquest.usability.tasktree.filters.TaskT reeNodeTypeFilter;24 import de.ugoe.cs.autoquest.usability.tasktree.filters.TaskTypeFilter; 25 25 26 26 /** … … 33 33 public class UsagePatternBuilder { 34 34 35 protected TaskT reeNodeTypeFilter concernedNode;35 protected TaskTypeFilter concernedNode; 36 36 37 37 protected EventTypeFilter startsWithEvent; … … 55 55 * @return 56 56 */ 57 public SpecifyPatternStep concernedNode(TaskT reeNodeTypeFilter concernedNode) {57 public SpecifyPatternStep concernedNode(TaskTypeFilter concernedNode) { 58 58 this.concernedNode = concernedNode; 59 59 return new SpecifyPatternStep(); -
trunk/autoquest-core-usability-evaluation/src/main/java/de/ugoe/cs/autoquest/usability/rules/patterns/UsagePatternVisitor.java
r1150 r1152 26 26 import de.ugoe.cs.autoquest.tasktrees.treeifc.IEventTask; 27 27 import de.ugoe.cs.autoquest.tasktrees.treeifc.ISelection; 28 import de.ugoe.cs.autoquest.tasktrees.treeifc.ITaskTree; 29 import de.ugoe.cs.autoquest.tasktrees.treeifc.ITaskTreeNode; 30 import de.ugoe.cs.autoquest.tasktrees.treeifc.NodeVisitor; 28 import de.ugoe.cs.autoquest.tasktrees.treeifc.ITask; 29 import de.ugoe.cs.autoquest.tasktrees.treeifc.ITaskModel; 31 30 import de.ugoe.cs.autoquest.usability.tasktree.filters.EventTypeFilter; 32 31 import de.ugoe.cs.autoquest.usability.util.PatternsVisitorUtil; … … 47 46 protected boolean present = false; 48 47 49 protected List<ITask TreeNode> retainedChildrenNodesFromSelectionNodes = Lists.newArrayList();48 protected List<ITask> retainedChildrenTasksFromSelections = Lists.newArrayList(); 50 49 51 50 /* (non-Javadoc) … … 85 84 this.present = patternIsPresent(); 86 85 } else { 87 ITask Tree taskTree = PatternsVisitorUtil.createTaskTreeFromNode(selection);88 this.present = containedPattern.containedIn(task Tree);86 ITaskModel taskModel = PatternsVisitorUtil.createTaskModelFromNode(selection); 87 this.present = containedPattern.containedIn(taskModel); 89 88 } 90 89 } 91 90 92 protected void retainNodesWherePatternIsPresent(List<ITask TreeNode> children) {93 for(ITask TreeNode node: children) {91 protected void retainNodesWherePatternIsPresent(List<ITask> children) { 92 for(ITask task : children) { 94 93 this.present = false; 95 node.accept(this);94 task.accept(this); 96 95 if(this.present) { 97 this.retainedChildren NodesFromSelectionNodes.add(node);96 this.retainedChildrenTasksFromSelections.add(task); 98 97 } 99 98 } … … 101 100 102 101 private boolean patternIsPresent() { 103 return !this.retainedChildren NodesFromSelectionNodes.isEmpty();102 return !this.retainedChildrenTasksFromSelections.isEmpty(); 104 103 } 105 104 … … 122 121 */ 123 122 public void reset() { 124 this.retainedChildren NodesFromSelectionNodes.clear();123 this.retainedChildrenTasksFromSelections.clear(); 125 124 this.present = false; 126 125 } … … 144 143 * @return 145 144 */ 146 public List<ITask TreeNode> getRetainedSelectionNodes() {147 return this.retainedChildren NodesFromSelectionNodes;145 public List<ITask> getRetainedSelectionNodes() { 146 return this.retainedChildrenTasksFromSelections; 148 147 } 149 148 -
trunk/autoquest-core-usability-evaluation/src/main/java/de/ugoe/cs/autoquest/usability/rules/patterns/visitors/ContainsEventVisitor.java
r1150 r1152 19 19 import de.ugoe.cs.autoquest.tasktrees.treeifc.IIteration; 20 20 import de.ugoe.cs.autoquest.tasktrees.treeifc.ISequence; 21 import de.ugoe.cs.autoquest.tasktrees.treeifc.ITask TreeNode;21 import de.ugoe.cs.autoquest.tasktrees.treeifc.ITask; 22 22 import de.ugoe.cs.autoquest.usability.rules.patterns.UsagePatternVisitor; 23 23 import de.ugoe.cs.autoquest.usability.tasktree.filters.EventTypeFilter; … … 47 47 */ 48 48 public void visit(IIteration iteration) { 49 check AllChildrenAndReturnIfPatternIsPresent(iteration.getChildren());49 checkTaskAndReturnIfPatternIsPresent(iteration.getMarkedTask()); 50 50 } 51 51 … … 57 57 } 58 58 59 private void checkAllChildrenAndReturnIfPatternIsPresent(List<ITaskTreeNode> children) { 60 for(ITaskTreeNode node : children) { 61 node.accept(this); 62 if(this.present) { 59 private void checkAllChildrenAndReturnIfPatternIsPresent(List<ITask> children) { 60 for (ITask task : children) { 61 if (checkTaskAndReturnIfPatternIsPresent(task)) { 63 62 break; 64 63 } … … 66 65 } 67 66 67 /** 68 * 69 */ 70 private boolean checkTaskAndReturnIfPatternIsPresent(ITask task) { 71 task.accept(this); 72 return this.present; 73 } 68 74 } -
trunk/autoquest-core-usability-evaluation/src/main/java/de/ugoe/cs/autoquest/usability/rules/patterns/visitors/ContainsPatternVisitor.java
r1150 r1152 15 15 package de.ugoe.cs.autoquest.usability.rules.patterns.visitors; 16 16 17 import de.ugoe.cs.autoquest.tasktrees.treeifc.IEventTask; 17 18 import de.ugoe.cs.autoquest.tasktrees.treeifc.IIteration; 18 19 import de.ugoe.cs.autoquest.tasktrees.treeifc.ISequence; 19 import de.ugoe.cs.autoquest.tasktrees.treeifc.ITask Tree;20 import de.ugoe.cs.autoquest.tasktrees.treeifc.ITask TreeNode;20 import de.ugoe.cs.autoquest.tasktrees.treeifc.ITask; 21 import de.ugoe.cs.autoquest.tasktrees.treeifc.ITaskModel; 21 22 import de.ugoe.cs.autoquest.usability.rules.patterns.UsagePattern; 22 23 import de.ugoe.cs.autoquest.usability.rules.patterns.UsagePatternVisitor; … … 47 48 */ 48 49 public void visit(IIteration iteration) { 49 check AllChildrenAndReturnIfPatternIsPresent(iteration);50 checkTaskAndReturnIfPatternIsPresent(iteration.getMarkedTask()); 50 51 51 52 } … … 59 60 } 60 61 61 private void checkAllChildrenAndReturnIfPatternIsPresent(ITaskTreeNode node) { 62 for(ITaskTreeNode child : node.getChildren()) { 63 ITaskTree taskTree; 64 if(isEvent(child)) { 65 taskTree = PatternsVisitorUtil.createTaskTreeFromNode(node); 66 } else { 67 taskTree = PatternsVisitorUtil.createTaskTreeFromNode(child); 68 } 69 this.present = containedPattern.containedIn(taskTree); 70 if(this.present) { 62 private void checkAllChildrenAndReturnIfPatternIsPresent(ISequence sequence) { 63 for (ITask child : sequence.getChildren()) { 64 if(checkTaskAndReturnIfPatternIsPresent(child)) { 71 65 break; 72 66 } … … 74 68 } 75 69 76 private boolean isEvent(ITaskTreeNode firstNode) { 77 return firstNode.getChildren().isEmpty(); 70 private boolean checkTaskAndReturnIfPatternIsPresent(ITask task) { 71 ITaskModel taskModel = PatternsVisitorUtil.createTaskModelFromNode(task); 72 this.present = containedPattern.containedIn(taskModel); 73 } 74 75 private boolean isEvent(ITask task) { 76 return task instanceof IEventTask; 78 77 } 79 78 -
trunk/autoquest-core-usability-evaluation/src/main/java/de/ugoe/cs/autoquest/usability/rules/patterns/visitors/EndsWithEventVisitor.java
r1150 r1152 45 45 */ 46 46 public void visit(IIteration iteration) { 47 PatternsVisitorUtil.lastNodeOf(iteration.getChildren()).accept(this);47 iteration.getMarkedTask().accept(this); 48 48 } 49 49 -
trunk/autoquest-core-usability-evaluation/src/main/java/de/ugoe/cs/autoquest/usability/rules/patterns/visitors/EndsWithPatternVisitor.java
r1150 r1152 15 15 package de.ugoe.cs.autoquest.usability.rules.patterns.visitors; 16 16 17 import de.ugoe.cs.autoquest.tasktrees.treeifc.IEventTask; 17 18 import de.ugoe.cs.autoquest.tasktrees.treeifc.IIteration; 18 19 import de.ugoe.cs.autoquest.tasktrees.treeifc.ISequence; 19 import de.ugoe.cs.autoquest.tasktrees.treeifc.ITask Tree;20 import de.ugoe.cs.autoquest.tasktrees.treeifc.ITask TreeNode;20 import de.ugoe.cs.autoquest.tasktrees.treeifc.ITask; 21 import de.ugoe.cs.autoquest.tasktrees.treeifc.ITaskModel; 21 22 import de.ugoe.cs.autoquest.usability.rules.patterns.UsagePattern; 22 23 import de.ugoe.cs.autoquest.usability.rules.patterns.UsagePatternVisitor; … … 47 48 */ 48 49 public void visit(IIteration iteration) { 49 ITask Tree taskTree = PatternsVisitorUtil.createTaskTreeFromNode(iteration);50 this.present = containedPattern.containedIn(task Tree);50 ITaskModel taskModel = PatternsVisitorUtil.createTaskModelFromNode(iteration); 51 this.present = containedPattern.containedIn(taskModel); 51 52 52 53 } … … 56 57 */ 57 58 public void visit(ISequence sequence) { 58 ITask TreeNode lastNode= PatternsVisitorUtil.lastNodeOf(sequence.getChildren());59 ITask Tree taskTree;60 if(isEvent(last Node)) {61 task Tree = PatternsVisitorUtil.createTaskTreeFromNode(sequence);59 ITask lastTask = PatternsVisitorUtil.lastNodeOf(sequence.getChildren()); 60 ITaskModel taskModel; 61 if(isEvent(lastTask)) { 62 taskModel = PatternsVisitorUtil.createTaskModelFromNode(sequence); 62 63 } else { 63 task Tree = PatternsVisitorUtil.createTaskTreeFromNode(lastNode);64 taskModel = PatternsVisitorUtil.createTaskModelFromNode(lastTask); 64 65 } 65 this.present = containedPattern.containedIn(task Tree);66 this.present = containedPattern.containedIn(taskModel); 66 67 } 67 68 68 private boolean isEvent(ITask TreeNode firstNode) {69 return firstNode.getChildren().isEmpty();69 private boolean isEvent(ITask lastTask) { 70 return lastTask instanceof IEventTask; 70 71 } 71 72 -
trunk/autoquest-core-usability-evaluation/src/main/java/de/ugoe/cs/autoquest/usability/rules/patterns/visitors/StartsWithEventVisitor.java
r1150 r1152 45 45 */ 46 46 public void visit(IIteration iteration) { 47 PatternsVisitorUtil.firstNodeOf(iteration.getChildren()).accept(this);47 iteration.getMarkedTask().accept(this); 48 48 } 49 49 -
trunk/autoquest-core-usability-evaluation/src/main/java/de/ugoe/cs/autoquest/usability/rules/patterns/visitors/StartsWithPatternVisitor.java
r1150 r1152 15 15 package de.ugoe.cs.autoquest.usability.rules.patterns.visitors; 16 16 17 import de.ugoe.cs.autoquest.tasktrees.treeifc.IEventTask; 17 18 import de.ugoe.cs.autoquest.tasktrees.treeifc.IIteration; 18 19 import de.ugoe.cs.autoquest.tasktrees.treeifc.ISequence; 19 import de.ugoe.cs.autoquest.tasktrees.treeifc.ITask Tree;20 import de.ugoe.cs.autoquest.tasktrees.treeifc.ITask TreeNode;20 import de.ugoe.cs.autoquest.tasktrees.treeifc.ITask; 21 import de.ugoe.cs.autoquest.tasktrees.treeifc.ITaskModel; 21 22 import de.ugoe.cs.autoquest.usability.rules.patterns.UsagePattern; 22 23 import de.ugoe.cs.autoquest.usability.rules.patterns.UsagePatternVisitor; … … 47 48 */ 48 49 public void visit(IIteration iteration) { 49 ITask Tree taskTree = PatternsVisitorUtil.createTaskTreeFromNode(iteration);50 this.present = containedPattern.containedIn(task Tree);50 ITaskModel taskModel = PatternsVisitorUtil.createTaskModelFromNode(iteration); 51 this.present = containedPattern.containedIn(taskModel); 51 52 } 52 53 … … 55 56 */ 56 57 public void visit(ISequence sequence) { 57 ITask TreeNode firstNode= PatternsVisitorUtil.firstNodeOf(sequence.getChildren());58 ITask Tree taskTree;59 if(isEvent(first Node)) {60 task Tree = PatternsVisitorUtil.createTaskTreeFromNode(sequence);58 ITask firstTask = PatternsVisitorUtil.firstNodeOf(sequence.getChildren()); 59 ITaskModel taskModel; 60 if(isEvent(firstTask)) { 61 taskModel = PatternsVisitorUtil.createTaskModelFromNode(sequence); 61 62 } else { 62 task Tree = PatternsVisitorUtil.createTaskTreeFromNode(firstNode);63 taskModel = PatternsVisitorUtil.createTaskModelFromNode(firstTask); 63 64 } 64 this.present = containedPattern.containedIn(task Tree);65 this.present = containedPattern.containedIn(taskModel); 65 66 } 66 67 67 private boolean isEvent(ITask TreeNode firstNode) {68 return first Node.getChildren().isEmpty();68 private boolean isEvent(ITask firstTask) { 69 return firstTask instanceof IEventTask; 69 70 } 70 71
Note: See TracChangeset
for help on using the changeset viewer.