Revision 886 org.gvsig.topology/trunk/org.gvsig.topology/org.gvsig.topology.lib/org.gvsig.topology.lib.impl/src/main/java/org/gvsig/topology/lib/impl/DefaultTopologyManager.java
DefaultTopologyManager.java | ||
---|---|---|
25 | 25 |
|
26 | 26 |
import java.util.ArrayList; |
27 | 27 |
import java.util.Collections; |
28 |
import java.util.HashMap; |
|
28 | 29 |
import java.util.List; |
29 |
import org.apache.commons.lang3.StringUtils;
|
|
30 |
import java.util.Map;
|
|
30 | 31 |
import org.gvsig.fmap.dal.DataStore; |
31 |
import org.gvsig.fmap.dal.feature.FeatureStore; |
|
32 | 32 |
import org.gvsig.topology.lib.api.TopologyDataSet; |
33 | 33 |
import org.gvsig.topology.lib.api.TopologyManager; |
34 | 34 |
import org.gvsig.topology.lib.api.TopologyPlan; |
... | ... | |
41 | 41 |
*/ |
42 | 42 |
public class DefaultTopologyManager implements TopologyManager { |
43 | 43 |
|
44 |
private final List<TopologyRuleFactory> factories;
|
|
44 |
private final Map<String,TopologyRuleFactory> factories;
|
|
45 | 45 |
private TopologyServices services; |
46 | 46 |
|
47 | 47 |
public DefaultTopologyManager() { |
48 |
this.factories = new ArrayList<>();
|
|
48 |
this.factories = new HashMap<>();
|
|
49 | 49 |
} |
50 | 50 |
|
51 | 51 |
@Override |
... | ... | |
56 | 56 |
|
57 | 57 |
@Override |
58 | 58 |
public List<TopologyRuleFactory> getRuleFactories() { |
59 |
return Collections.unmodifiableList(this.factories); |
|
59 |
List<TopologyRuleFactory> l = new ArrayList<>(this.factories.values()); |
|
60 |
return Collections.unmodifiableList(l); |
|
60 | 61 |
} |
61 | 62 |
|
62 | 63 |
@Override |
63 | 64 |
public List<TopologyRuleFactory> getRuleFactories(TopologyDataSet dataSet) { |
64 | 65 |
List<TopologyRuleFactory> f = new ArrayList<>(); |
65 |
for (TopologyRuleFactory factory : this.factories) { |
|
66 |
for (TopologyRuleFactory factory : this.factories.values()) {
|
|
66 | 67 |
if( factory.canApplyToDataSet(dataSet) ) { |
67 | 68 |
f.add(factory); |
68 | 69 |
} |
... | ... | |
72 | 73 |
|
73 | 74 |
@Override |
74 | 75 |
public TopologyRuleFactory getRulefactory(String id) { |
75 |
for (TopologyRuleFactory factory : this.factories) { |
|
76 |
if( StringUtils.equalsIgnoreCase(id, factory.getId()) ) { |
|
77 |
return factory; |
|
78 |
} |
|
76 |
if( id==null ) { |
|
77 |
return null; |
|
79 | 78 |
} |
80 |
return null; |
|
79 |
TopologyRuleFactory factory = this.factories.get(id.toLowerCase()); |
|
80 |
return factory; |
|
81 | 81 |
} |
82 | 82 |
|
83 | 83 |
@Override |
84 | 84 |
public void addRuleFactories(TopologyRuleFactory factory) { |
85 |
this.factories.add(factory); |
|
85 |
if( factory==null ) { |
|
86 |
throw new IllegalArgumentException("Invalid null value."); |
|
87 |
} |
|
88 |
this.factories.put(factory.getId().toLowerCase(), factory); |
|
86 | 89 |
} |
87 | 90 |
|
88 | 91 |
@Override |
Also available in: Unified diff