source: autoquest-core-usability-evaluation/src/main/java/de/ugoe/cs/autoquest/usability/UsabilityEvaluationFacade.java @ 1030

Last change on this file since 1030 was 1030, checked in by adeicke, 11 years ago

Initial commit.

  • Property svn:mime-type set to text/plain
File size: 1.8 KB
Line 
1package de.ugoe.cs.autoquest.usability;
2
3import java.util.EnumSet;
4import java.util.List;
5
6import lombok.AccessLevel;
7import lombok.NoArgsConstructor;
8
9import com.google.common.base.Optional;
10import com.google.common.base.Preconditions;
11import com.google.common.collect.Lists;
12
13import de.ugoe.cs.autoquest.tasktrees.treeifc.ITaskTree;
14import de.ugoe.cs.autoquest.usability.evaluation.result.UsabilityDefect;
15import de.ugoe.cs.autoquest.usability.evaluation.rule.set.UsabilityRule;
16import de.ugoe.cs.autoquest.usability.evaluation.rule.set.UsabilityRuleset;
17
18@NoArgsConstructor(access = AccessLevel.PRIVATE)
19public class UsabilityEvaluationFacade {
20
21    public static ExecuteUsabilityEvaluationStep applyUsabilityRuleset(UsabilityRuleset usabilityRuleset) {
22        Preconditions.checkNotNull(usabilityRuleset);
23        return new ExecuteUsabilityEvaluationStep(usabilityRuleset);
24    }
25
26    protected static class ExecuteUsabilityEvaluationStep {
27       
28        private UsabilityRuleset usabilityRuleset;
29
30        public ExecuteUsabilityEvaluationStep(UsabilityRuleset usabilityRuleset) {
31            this.usabilityRuleset = usabilityRuleset;
32        }
33
34        public UsabilityEvaluationReport evaluateUsabilityOf(ITaskTree taskTree) {
35            Preconditions.checkNotNull(taskTree);
36            EnumSet<? extends UsabilityRule> rulesetForUsabilityEvaluation = usabilityRuleset.getRulesetForUsabilityEvaluation();
37            List<UsabilityDefect> evaluationResults =
38                    Lists.newArrayListWithCapacity(rulesetForUsabilityEvaluation.size());
39            for(UsabilityRule usabilityRule : rulesetForUsabilityEvaluation) {
40                Optional<UsabilityDefect> ruleEvaluationResult = usabilityRule.evaluate(taskTree);
41                if(ruleEvaluationResult.isPresent()) {
42                    evaluationResults.add(ruleEvaluationResult.get());
43                }
44            }
45            return UsabilityEvaluationReport.from(evaluationResults);
46        }
47       
48    }
49
50}
Note: See TracBrowser for help on using the repository browser.