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

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

Replaced constructor with appropriate annotation.

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