Changeset 1152 for trunk/autoquest-core-usability-evaluation/src/main/java/de/ugoe/cs/autoquest/usability/tasktree
- Timestamp:
- 04/08/13 16:50:21 (11 years ago)
- Location:
- trunk/autoquest-core-usability-evaluation/src/main/java/de/ugoe/cs/autoquest/usability/tasktree
- Files:
-
- 4 edited
- 4 moved
Legend:
- Unmodified
- Added
- Removed
-
trunk/autoquest-core-usability-evaluation/src/main/java/de/ugoe/cs/autoquest/usability/tasktree/FilterResult.java
r1135 r1152 20 20 import com.google.common.collect.Lists; 21 21 22 import de.ugoe.cs.autoquest.tasktrees.treeifc.ITask TreeNode;22 import de.ugoe.cs.autoquest.tasktrees.treeifc.ITask; 23 23 24 24 /** … … 34 34 private final Predicate filterPredicate; 35 35 36 private List<ITask TreeNode> filteredNodes = Lists.newArrayList();36 private List<ITask> filteredTasks = Lists.newArrayList(); 37 37 38 private List<ITask TreeNode> nodesNotMatchedFilter = Lists.newArrayList();38 private List<ITask> tasksNotMatchedFilter = Lists.newArrayList(); 39 39 40 40 @SuppressWarnings("rawtypes") … … 44 44 45 45 @SuppressWarnings("unchecked") 46 public void add Node(ITaskTreeNode node) {47 if (filterPredicate.apply( node)) {48 filtered Nodes.add(node);46 public void addTask(ITask task) { 47 if (filterPredicate.apply(task)) { 48 filteredTasks.add(task); 49 49 } 50 50 else { 51 nodesNotMatchedFilter.add(node);51 tasksNotMatchedFilter.add(task); 52 52 } 53 53 } 54 54 55 public List<ITask TreeNode> nodesMatchedFilter() {56 return this.filtered Nodes;55 public List<ITask> tasksMatchedFilter() { 56 return this.filteredTasks; 57 57 } 58 58 59 public int nrOf NodesMatchedFilter() {60 return this.filtered Nodes.size();59 public int nrOfTasksMatchedFilter() { 60 return this.filteredTasks.size(); 61 61 } 62 62 63 public List<ITask TreeNode> nodesNotMatchedFilter() {64 return this. nodesNotMatchedFilter;63 public List<ITask> tasksNotMatchedFilter() { 64 return this.tasksNotMatchedFilter; 65 65 } 66 66 67 public int nrOf NodesNotMatchedFilter() {68 return this. nodesNotMatchedFilter.size();67 public int nrOfTasksNotMatchedFilter() { 68 return this.tasksNotMatchedFilter.size(); 69 69 } 70 70 -
trunk/autoquest-core-usability-evaluation/src/main/java/de/ugoe/cs/autoquest/usability/tasktree/IterativeDFSFilterStrategy.java
r1135 r1152 22 22 import de.ugoe.cs.autoquest.eventcore.IEventTarget; 23 23 import de.ugoe.cs.autoquest.eventcore.IEventType; 24 import de.ugoe.cs.autoquest.tasktrees.treeifc.ITaskTree; 25 import de.ugoe.cs.autoquest.tasktrees.treeifc.ITaskTreeNode; 24 import de.ugoe.cs.autoquest.tasktrees.treeifc.IMarkingTemporalRelationship; 25 import de.ugoe.cs.autoquest.tasktrees.treeifc.IStructuringTemporalRelationship; 26 import de.ugoe.cs.autoquest.tasktrees.treeifc.ITask; 27 import de.ugoe.cs.autoquest.tasktrees.treeifc.ITaskModel; 26 28 import de.ugoe.cs.autoquest.usability.tasktree.filters.EventTargetFilter; 27 29 import de.ugoe.cs.autoquest.usability.tasktree.filters.EventTypeFilter; 28 import de.ugoe.cs.autoquest.usability.tasktree.filters.TaskT reeNodeTypeFilter;30 import de.ugoe.cs.autoquest.usability.tasktree.filters.TaskTypeFilter; 29 31 30 32 /** … … 35 37 * @author Alexander Deicke 36 38 */ 37 public class IterativeDFSFilterStrategy implements Task TreeFilterStrategy {39 public class IterativeDFSFilterStrategy implements TaskModelFilterStrategy { 38 40 39 41 private FilterResult filterStatistic; … … 41 43 @SuppressWarnings("unchecked") 42 44 @Override 43 public FilterResult filter(ITask Tree taskTree, EventTargetFilter eventTarget) {45 public FilterResult filter(ITaskModel taskModel, EventTargetFilter eventTarget) { 44 46 Predicate<IEventTarget> filterPredicate = eventTarget.filterPredicate(); 45 47 this.filterStatistic = new FilterResult(filterPredicate); 46 traverse(task Tree);48 traverse(taskModel); 47 49 return this.filterStatistic; 48 50 } … … 50 52 @SuppressWarnings("unchecked") 51 53 @Override 52 public FilterResult filter(ITask Tree taskTree, EventTypeFilter eventType) {54 public FilterResult filter(ITaskModel taskModel, EventTypeFilter eventType) { 53 55 Predicate<IEventType> filterPredicate = eventType.filterPredicate(); 54 56 this.filterStatistic = new FilterResult(filterPredicate); 55 traverse(task Tree);57 traverse(taskModel); 56 58 return this.filterStatistic; 57 59 } … … 59 61 @SuppressWarnings("unchecked") 60 62 @Override 61 public FilterResult filter(ITask Tree taskTree, TaskTreeNodeTypeFilter nodeType) {62 Predicate<ITask TreeNode> filterPredicate = nodeType.filterPredicate();63 public FilterResult filter(ITaskModel taskModel, TaskTypeFilter nodeType) { 64 Predicate<ITask> filterPredicate = nodeType.filterPredicate(); 63 65 this.filterStatistic = new FilterResult(filterPredicate); 64 traverse(task Tree);66 traverse(taskModel); 65 67 return this.filterStatistic; 66 68 } 67 69 68 private void traverse(ITask Tree taskTree) {69 Queue<ITask TreeNode> unvisitedNodes = new LinkedList<ITaskTreeNode>();70 unvisited Nodes.add(taskTree.getRoot());71 while (stillUnvisited Nodes(unvisitedNodes)) {72 ITask TreeNode node = unvisitedNodes.poll();73 processCurrent Node(node);74 processChildrenOfCurrent Node(unvisitedNodes, node);70 private void traverse(ITaskModel taskModel) { 71 Queue<ITask> unvisitedTasks = new LinkedList<ITask>(); 72 unvisitedTasks.addAll(taskModel.getTasks()); 73 while (stillUnvisitedTasks(unvisitedTasks)) { 74 ITask task = unvisitedTasks.poll(); 75 processCurrentTask(task); 76 processChildrenOfCurrentTask(unvisitedTasks, task); 75 77 } 76 78 } 77 79 78 private boolean stillUnvisited Nodes(Queue<ITaskTreeNode> unvisitedNodes) {79 return !unvisited Nodes.isEmpty();80 private boolean stillUnvisitedTasks(Queue<ITask> unvisitedTasks) { 81 return !unvisitedTasks.isEmpty(); 80 82 } 81 83 82 private void processCurrent Node(ITaskTreeNode node) {83 this.filterStatistic.add Node(node);84 private void processCurrentTask(ITask task) { 85 this.filterStatistic.addTask(task); 84 86 } 85 87 86 private void processChildrenOfCurrent Node(Queue<ITaskTreeNode> unvisitedNodes,87 ITask TreeNode node)88 private void processChildrenOfCurrentTask(Queue<ITask> unvisitedTasks, 89 ITask task) 88 90 { 89 for (ITaskTreeNode child : node.getChildren()) { 90 unvisitedNodes.add(child); 91 if (task instanceof IStructuringTemporalRelationship) { 92 for (ITask child : ((IStructuringTemporalRelationship) task).getChildren()) { 93 unvisitedTasks.add(child); 94 } 95 } 96 else if (task instanceof IMarkingTemporalRelationship) { 97 unvisitedTasks.add(((IMarkingTemporalRelationship) task).getMarkedTask()); 91 98 } 92 99 } -
trunk/autoquest-core-usability-evaluation/src/main/java/de/ugoe/cs/autoquest/usability/tasktree/TaskModelFilterStrategy.java
r1150 r1152 15 15 package de.ugoe.cs.autoquest.usability.tasktree; 16 16 17 import de.ugoe.cs.autoquest.tasktrees.treeifc.ITask Tree;17 import de.ugoe.cs.autoquest.tasktrees.treeifc.ITaskModel; 18 18 import de.ugoe.cs.autoquest.usability.tasktree.filters.EventTargetFilter; 19 19 import de.ugoe.cs.autoquest.usability.tasktree.filters.EventTypeFilter; 20 import de.ugoe.cs.autoquest.usability.tasktree.filters.TaskT reeNodeTypeFilter;20 import de.ugoe.cs.autoquest.usability.tasktree.filters.TaskTypeFilter; 21 21 22 22 /** … … 27 27 * @author Alexander Deicke 28 28 */ 29 public interface Task TreeFilterStrategy {29 public interface TaskModelFilterStrategy { 30 30 31 public FilterResult filter(ITask Tree taskTree, EventTargetFilter eventTarget);31 public FilterResult filter(ITaskModel taskModel, EventTargetFilter eventTarget); 32 32 33 public FilterResult filter(ITask Tree taskTree, EventTypeFilter eventType);33 public FilterResult filter(ITaskModel taskModel, EventTypeFilter eventType); 34 34 35 public FilterResult filter(ITask Tree taskTree, TaskTreeNodeTypeFilter nodeType);35 public FilterResult filter(ITaskModel taskModel, TaskTypeFilter nodeType); 36 36 37 37 } -
trunk/autoquest-core-usability-evaluation/src/main/java/de/ugoe/cs/autoquest/usability/tasktree/filters/EventTargetFilter.java
r1135 r1152 23 23 import de.ugoe.cs.autoquest.eventcore.guimodel.ITextField; 24 24 import de.ugoe.cs.autoquest.tasktrees.treeifc.IEventTask; 25 import de.ugoe.cs.autoquest.tasktrees.treeifc.ITask TreeNode;25 import de.ugoe.cs.autoquest.tasktrees.treeifc.ITask; 26 26 27 27 /** … … 32 32 * @author Alexander Deicke 33 33 */ 34 public enum EventTargetFilter implements Task TreeNodeFilter<IEventTarget> {34 public enum EventTargetFilter implements TaskFilter<IEventTarget> { 35 35 36 36 TEXT_FIELD(ITextField.class), … … 54 54 public Predicate filterPredicate() { 55 55 Predicate<Object> instanceOfIEventTaskPredicate = Predicates.instanceOf(IEventTask.class); 56 Predicate<ITask TreeNode> nodeHoldsInstanceOfFilterArgument =57 Predicates.compose(Predicates.instanceOf(eventTargetClazz), nodeExtractionFunction());58 return Predicates.and(instanceOfIEventTaskPredicate, nodeHoldsInstanceOfFilterArgument);56 Predicate<ITask> taskHoldsInstanceOfFilterArgument = 57 Predicates.compose(Predicates.instanceOf(eventTargetClazz), taskExtractionFunction()); 58 return Predicates.and(instanceOfIEventTaskPredicate, taskHoldsInstanceOfFilterArgument); 59 59 } 60 60 61 private Function<ITask TreeNode, IEventTarget> nodeExtractionFunction() {62 return new Function<ITask TreeNode, IEventTarget>() {61 private Function<ITask, IEventTarget> taskExtractionFunction() { 62 return new Function<ITask, IEventTarget>() { 63 63 64 64 @Override 65 public IEventTarget apply(ITask TreeNode treeNode) {66 return ((IEventTask) t reeNode).getEventTarget();65 public IEventTarget apply(ITask task) { 66 return ((IEventTask) task).getEventTarget(); 67 67 } 68 68 }; -
trunk/autoquest-core-usability-evaluation/src/main/java/de/ugoe/cs/autoquest/usability/tasktree/filters/EventTypeFilter.java
r1150 r1152 27 27 import de.ugoe.cs.autoquest.eventcore.gui.TextInput; 28 28 import de.ugoe.cs.autoquest.tasktrees.treeifc.IEventTask; 29 import de.ugoe.cs.autoquest.tasktrees.treeifc.ITask TreeNode;29 import de.ugoe.cs.autoquest.tasktrees.treeifc.ITask; 30 30 31 31 /** … … 36 36 * @author Alexander Deicke 37 37 */ 38 public enum EventTypeFilter implements Task TreeNodeFilter<IEventType> {38 public enum EventTypeFilter implements TaskFilter<IEventType> { 39 39 40 40 MOUSE_BUTTON_INTERACTION(MouseButtonInteraction.class), … … 66 66 public Predicate filterPredicate() { 67 67 Predicate<Object> instanceOfIEventTaskPredicate = Predicates.instanceOf(IEventTask.class); 68 Predicate<ITask TreeNode> nodeHoldsInstanceOfFilterArgument =69 Predicates.compose(Predicates.instanceOf(eventTypeClazz), nodeExtractionFunction());70 return Predicates.and(instanceOfIEventTaskPredicate, nodeHoldsInstanceOfFilterArgument);68 Predicate<ITask> taskHoldsInstanceOfFilterArgument = 69 Predicates.compose(Predicates.instanceOf(eventTypeClazz), taskExtractionFunction()); 70 return Predicates.and(instanceOfIEventTaskPredicate, taskHoldsInstanceOfFilterArgument); 71 71 } 72 72 73 private Function<ITask TreeNode, IEventType> nodeExtractionFunction() {74 return new Function<ITask TreeNode, IEventType>() {73 private Function<ITask, IEventType> taskExtractionFunction() { 74 return new Function<ITask, IEventType>() { 75 75 76 76 @Override 77 public IEventType apply(ITask TreeNode treeNode) {78 return ((IEventTask) t reeNode).getEventType();77 public IEventType apply(ITask task) { 78 return ((IEventTask) task).getEventType(); 79 79 } 80 80 }; -
trunk/autoquest-core-usability-evaluation/src/main/java/de/ugoe/cs/autoquest/usability/tasktree/filters/TaskFilter.java
r1150 r1152 24 24 * @author Alexander Deicke 25 25 */ 26 public interface Task TreeNodeFilter<T> {26 public interface TaskFilter<T> { 27 27 28 28 public Class<T> clazz(); -
trunk/autoquest-core-usability-evaluation/src/main/java/de/ugoe/cs/autoquest/usability/tasktree/filters/TaskModelFilter.java
r1150 r1152 17 17 import com.google.common.base.Preconditions; 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.tasktree.FilterResult; 21 import de.ugoe.cs.autoquest.usability.tasktree.Task TreeFilterStrategy;21 import de.ugoe.cs.autoquest.usability.tasktree.TaskModelFilterStrategy; 22 22 23 23 /** … … 28 28 * @author Alexander Deicke 29 29 */ 30 public class Task TreeFilter {30 public class TaskModelFilter { 31 31 32 private final Task TreeFilterStrategy taskTreeFilterStrategy;32 private final TaskModelFilterStrategy taskModelFilterStrategy; 33 33 34 public Task TreeFilter(TaskTreeFilterStrategy treeTraversalStrategy) {34 public TaskModelFilter(TaskModelFilterStrategy treeTraversalStrategy) { 35 35 Preconditions.checkNotNull(treeTraversalStrategy); 36 this.task TreeFilterStrategy = treeTraversalStrategy;36 this.taskModelFilterStrategy = treeTraversalStrategy; 37 37 } 38 38 … … 45 45 } 46 46 47 public FilterNodeTypeStep filterByNodeType(TaskT reeNodeTypeFilter nodeType) {47 public FilterNodeTypeStep filterByNodeType(TaskTypeFilter nodeType) { 48 48 return new FilterNodeTypeStep(nodeType); 49 49 } … … 57 57 } 58 58 59 public FilterResult from(ITask Tree taskTree) {60 return task TreeFilterStrategy.filter(taskTree, eventTarget);59 public FilterResult from(ITaskModel taskModel) { 60 return taskModelFilterStrategy.filter(taskModel, eventTarget); 61 61 } 62 62 … … 71 71 } 72 72 73 public FilterResult from(ITask Tree taskTree) {74 return task TreeFilterStrategy.filter(taskTree, eventType);73 public FilterResult from(ITaskModel taskModel) { 74 return taskModelFilterStrategy.filter(taskModel, eventType); 75 75 } 76 76 … … 79 79 public class FilterNodeTypeStep { 80 80 81 private final TaskT reeNodeTypeFilter nodeType;81 private final TaskTypeFilter nodeType; 82 82 83 public FilterNodeTypeStep(TaskT reeNodeTypeFilter nodeType) {83 public FilterNodeTypeStep(TaskTypeFilter nodeType) { 84 84 this.nodeType = nodeType; 85 85 } 86 86 87 public FilterResult from(ITask Tree taskTree) {88 return task TreeFilterStrategy.filter(taskTree, nodeType);87 public FilterResult from(ITaskModel taskModel) { 88 return taskModelFilterStrategy.filter(taskModel, nodeType); 89 89 } 90 90 -
trunk/autoquest-core-usability-evaluation/src/main/java/de/ugoe/cs/autoquest/usability/tasktree/filters/TaskTypeFilter.java
r1150 r1152 22 22 import de.ugoe.cs.autoquest.tasktrees.treeifc.ISelection; 23 23 import de.ugoe.cs.autoquest.tasktrees.treeifc.ISequence; 24 import de.ugoe.cs.autoquest.tasktrees.treeifc.ITask TreeNode;24 import de.ugoe.cs.autoquest.tasktrees.treeifc.ITask; 25 25 26 26 /** … … 31 31 * @author Alexander Deicke 32 32 */ 33 public enum TaskT reeNodeTypeFilter implements TaskTreeNodeFilter<ITaskTreeNode> {33 public enum TaskTypeFilter implements TaskFilter<ITask> { 34 34 35 35 EVENT_TASK_NODE(IEventTask.class), … … 41 41 SELECTION(ISelection.class),; 42 42 43 private Class<? extends ITask TreeNode> nodeTypeClazz;43 private Class<? extends ITask> taskTypeClazz; 44 44 45 private TaskT reeNodeTypeFilter(Class<? extends ITaskTreeNode> nodeTypeClazz) {46 this. nodeTypeClazz = nodeTypeClazz;45 private TaskTypeFilter(Class<? extends ITask> taskTypeClazz) { 46 this.taskTypeClazz = taskTypeClazz; 47 47 } 48 48 49 49 @SuppressWarnings("unchecked") 50 50 @Override 51 public Class<ITask TreeNode> clazz() {52 return (Class<ITask TreeNode>) this.nodeTypeClazz;51 public Class<ITask> clazz() { 52 return (Class<ITask>) this.taskTypeClazz; 53 53 } 54 54 … … 56 56 @Override 57 57 public Predicate filterPredicate() { 58 return Predicates.instanceOf( nodeTypeClazz);58 return Predicates.instanceOf(taskTypeClazz); 59 59 } 60 60
Note: See TracChangeset
for help on using the changeset viewer.