source: trunk/autoquest-plugin-usability2/src/main/java/de/ugoe/cs/autoquest/plugin/usability2/rules/operator/MarkingFilter.java @ 1326

Last change on this file since 1326 was 1326, checked in by khartmann, 10 years ago

Moved alexanders code into a new plugin project.
First commit of my experimental code (needs a lot of cleanup).

File size: 1.1 KB
Line 
1package de.ugoe.cs.autoquest.plugin.usability2.rules.operator;
2
3import de.ugoe.cs.autoquest.plugin.usability2.rules.results.IResult;
4import de.ugoe.cs.autoquest.tasktrees.treeifc.ITask;
5
6public abstract class MarkingFilter implements IFilter {
7
8    private static final IResultTransformer IDENTITY_TRANSFORMER = new IResultTransformer() {
9        @Override
10        public IResult transform(IResult result, IFilter filter, ITask task) {
11            return result;
12        }
13    };
14
15    private final IFilter filter;
16    private final IResultTransformer transformer;
17   
18    public MarkingFilter(IFilter marked) {
19        this(marked, IDENTITY_TRANSFORMER);
20    }
21
22    public MarkingFilter(IFilter marked, IResultTransformer transformer) {
23        this.filter = marked;
24        if(transformer == null)
25            this.transformer = IDENTITY_TRANSFORMER;
26        else
27            this.transformer = transformer;
28    }
29   
30    @Override
31    public IResult match(ITask task) {
32        return transformer.transform(match(task, filter), filter, task);
33    }
34   
35    protected abstract IResult match(ITask task, IFilter filter);
36}
Note: See TracBrowser for help on using the repository browser.