1 | package com.hammurapi.extract; |
2 | |
3 | import java.util.Collections; |
4 | import java.util.Set; |
5 | import java.util.TreeSet; |
6 | import java.util.concurrent.TimeUnit; |
7 | |
8 | /** |
9 | * Base class for extractors. |
10 | * @author Pavel Vlasov |
11 | * |
12 | * @param <T> |
13 | * @param <V> |
14 | * @param <C> |
15 | */ |
16 | public abstract class AbstractExtractor<T, V, C> extends ExtractorBase<T, V, C> { |
17 | |
18 | private Set<Integer> parameterIndices; |
19 | private boolean contextDependent; |
20 | |
21 | public AbstractExtractor(double initialCost, TimeUnit costUnit, boolean contextDependent, int... parameterIndices) { |
22 | super(initialCost, costUnit); |
23 | Set<Integer> pi = new TreeSet<Integer>(); |
24 | for (int idx:parameterIndices) { |
25 | pi.add(idx); |
26 | } |
27 | this.parameterIndices=Collections.unmodifiableSet(pi); |
28 | this.contextDependent=contextDependent; |
29 | } |
30 | |
31 | @Override |
32 | public Set<Integer> parameterIndices() { |
33 | return parameterIndices; |
34 | } |
35 | |
36 | @Override |
37 | public boolean isContextDependent() { |
38 | return contextDependent; |
39 | } |
40 | |
41 | } |