source: trunk/autoquest-core-usability-evaluation/src/main/java/de/ugoe/cs/autoquest/usability/tasktree/filters/TaskModelFilter.java @ 1152

Last change on this file since 1152 was 1152, checked in by pharms, 11 years ago
  • complete refactoring of task tree model with a separation of task models and task instances
  • Property svn:mime-type set to text/plain
File size: 2.8 KB
Line 
1//   Copyright 2012 Georg-August-Universität Göttingen, Germany
2//
3//   Licensed under the Apache License, Version 2.0 (the "License");
4//   you may not use this file except in compliance with the License.
5//   You may obtain a copy of the License at
6//
7//       http://www.apache.org/licenses/LICENSE-2.0
8//
9//   Unless required by applicable law or agreed to in writing, software
10//   distributed under the License is distributed on an "AS IS" BASIS,
11//   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12//   See the License for the specific language governing permissions and
13//   limitations under the License.
14
15package de.ugoe.cs.autoquest.usability.tasktree.filters;
16
17import com.google.common.base.Preconditions;
18
19import de.ugoe.cs.autoquest.tasktrees.treeifc.ITaskModel;
20import de.ugoe.cs.autoquest.usability.tasktree.FilterResult;
21import de.ugoe.cs.autoquest.usability.tasktree.TaskModelFilterStrategy;
22
23/**
24 * <p>
25 * TODO comment
26 * </p>
27 *
28 * @author Alexander Deicke
29 */
30public class TaskModelFilter {
31
32    private final TaskModelFilterStrategy taskModelFilterStrategy;
33
34    public TaskModelFilter(TaskModelFilterStrategy treeTraversalStrategy) {
35        Preconditions.checkNotNull(treeTraversalStrategy);
36        this.taskModelFilterStrategy = treeTraversalStrategy;
37    }
38
39    public FilterEventTargetStep filterByEventTarget(EventTargetFilter eventTarget) {
40        return new FilterEventTargetStep(eventTarget);
41    }
42
43    public FilterEventTypeStep filterByEventType(EventTypeFilter eventType) {
44        return new FilterEventTypeStep(eventType);
45    }
46
47    public FilterNodeTypeStep filterByNodeType(TaskTypeFilter nodeType) {
48        return new FilterNodeTypeStep(nodeType);
49    }
50
51    public class FilterEventTargetStep {
52
53        private final EventTargetFilter eventTarget;
54
55        public FilterEventTargetStep(EventTargetFilter eventTarget) {
56            this.eventTarget = eventTarget;
57        }
58
59        public FilterResult from(ITaskModel taskModel) {
60            return taskModelFilterStrategy.filter(taskModel, eventTarget);
61        }
62
63    }
64
65    public class FilterEventTypeStep {
66
67        private final EventTypeFilter eventType;
68
69        public FilterEventTypeStep(EventTypeFilter eventType) {
70            this.eventType = eventType;
71        }
72
73        public FilterResult from(ITaskModel taskModel) {
74            return taskModelFilterStrategy.filter(taskModel, eventType);
75        }
76
77    }
78
79    public class FilterNodeTypeStep {
80
81        private final TaskTypeFilter nodeType;
82
83        public FilterNodeTypeStep(TaskTypeFilter nodeType) {
84            this.nodeType = nodeType;
85        }
86
87        public FilterResult from(ITaskModel taskModel) {
88            return taskModelFilterStrategy.filter(taskModel, nodeType);
89        }
90
91    }
92}
Note: See TracBrowser for help on using the repository browser.