Revision 44871 trunk/org.gvsig.desktop/org.gvsig.desktop.compat.cdc/org.gvsig.fmap.dal/org.gvsig.fmap.dal.impl/src/main/java/org/gvsig/fmap/dal/feature/impl/DefaultFeatureRules.java
DefaultFeatureRules.java | ||
---|---|---|
24 | 24 |
package org.gvsig.fmap.dal.feature.impl; |
25 | 25 |
|
26 | 26 |
import java.util.ArrayList; |
27 |
import java.util.Iterator; |
|
28 |
import org.gvsig.expressionevaluator.Expression; |
|
29 |
import org.gvsig.expressionevaluator.impl.DefaultFeatureRuleExpression; |
|
27 | 30 |
|
28 | 31 |
import org.gvsig.fmap.dal.exception.DataException; |
29 | 32 |
import org.gvsig.fmap.dal.feature.Feature; |
30 | 33 |
import org.gvsig.fmap.dal.feature.FeatureRule; |
31 | 34 |
import org.gvsig.fmap.dal.feature.FeatureRules; |
32 | 35 |
import org.gvsig.fmap.dal.feature.FeatureStore; |
36 |
import org.gvsig.tools.persistence.PersistentState; |
|
37 |
import org.gvsig.tools.persistence.exception.PersistenceException; |
|
33 | 38 |
import org.slf4j.Logger; |
34 | 39 |
import org.slf4j.LoggerFactory; |
35 | 40 |
|
36 | 41 |
public class DefaultFeatureRules extends ArrayList<FeatureRule> implements FeatureRules { |
37 |
|
|
38 |
private final static Logger logger = LoggerFactory.getLogger(DefaultFeatureRules.class); |
|
39 |
|
|
40 |
/** |
|
41 |
* |
|
42 |
*/ |
|
43 |
private static final long serialVersionUID = -8084546505498274121L; |
|
44 | 42 |
|
45 |
@Override |
|
46 |
public boolean add(FeatureRule rule) { |
|
47 |
return super.add(rule); |
|
48 |
} |
|
43 |
private final static Logger LOGGER = LoggerFactory.getLogger(DefaultFeatureRules.class); |
|
49 | 44 |
|
50 |
@Override
|
|
51 |
public FeatureRule getRule(int index) {
|
|
52 |
return (FeatureRule) super.get(index);
|
|
53 |
}
|
|
45 |
/**
|
|
46 |
*
|
|
47 |
*/
|
|
48 |
private static final long serialVersionUID = -8084546505498274121L;
|
|
54 | 49 |
|
55 |
@Override
|
|
56 |
public boolean remove(FeatureRule rule) {
|
|
57 |
return super.remove(rule);
|
|
58 |
}
|
|
50 |
@Override |
|
51 |
public boolean add(FeatureRule rule) {
|
|
52 |
return super.add(rule);
|
|
53 |
}
|
|
59 | 54 |
|
60 |
@Override |
|
61 |
public FeatureRules getCopy() { |
|
62 |
DefaultFeatureRules copy = new DefaultFeatureRules(); |
|
63 |
copy.addAll(this); |
|
64 |
return copy; |
|
65 |
} |
|
55 |
@Override |
|
56 |
public boolean add(String name, String description, boolean checkAtUpdate, boolean checkAtFinishEdition, Expression expression) { |
|
57 |
FeatureRule rule = new DefaultFeatureRuleExpression(name, description, checkAtUpdate, checkAtFinishEdition, expression); |
|
58 |
return this.add(rule); |
|
59 |
} |
|
66 | 60 |
|
67 |
/** |
|
68 |
* @deprecated use validate(Feature feature, int mode) |
|
69 |
* @param feature |
|
70 |
* @throws DataException |
|
71 |
*/ |
|
72 |
public void validate(Feature feature) throws DataException { |
|
73 |
logger.warn("Calling deprecated method validate without mode."); |
|
74 |
FeatureStore store = ((DefaultFeature)feature).getStore(); |
|
75 |
for( FeatureRule rule : this ) { |
|
76 |
rule.validate(feature, store); |
|
77 |
} |
|
61 |
@Override |
|
62 |
public FeatureRule getRule(int index) { |
|
63 |
return (FeatureRule) super.get(index); |
|
64 |
} |
|
78 | 65 |
|
79 |
} |
|
66 |
@Override |
|
67 |
public boolean remove(FeatureRule rule) { |
|
68 |
return super.remove(rule); |
|
69 |
} |
|
80 | 70 |
|
81 |
public void validate(Feature feature, int mode) throws DataException { |
|
82 |
FeatureStore store = ((DefaultFeature)feature).getStore(); |
|
83 |
for( FeatureRule rule : this ) { |
|
84 |
if( rule.checkAtFinishEditing() && mode == Feature.FINISH_EDITING ) { |
|
85 |
rule.validate(feature, store); |
|
86 |
} |
|
87 |
if( rule.checkAtUpdate() && mode == Feature.UPDATE ) { |
|
88 |
rule.validate(feature, store); |
|
89 |
} |
|
90 |
} |
|
71 |
@Override |
|
72 |
public FeatureRules getCopy() { |
|
73 |
DefaultFeatureRules copy = new DefaultFeatureRules(); |
|
74 |
copy.addAll(this); |
|
75 |
return copy; |
|
76 |
} |
|
91 | 77 |
|
92 |
} |
|
78 |
// /** |
|
79 |
// * @deprecated use validate(Feature feature, int mode) |
|
80 |
// * @param feature |
|
81 |
// * @throws DataException |
|
82 |
// */ |
|
83 |
// public void validate(Feature feature) throws DataException { |
|
84 |
// logger.warn("Calling deprecated method validate without mode."); |
|
85 |
// FeatureStore store = ((DefaultFeature)feature).getStore(); |
|
86 |
// for( FeatureRule rule : this ) { |
|
87 |
// rule.validate(feature, store); |
|
88 |
// } |
|
89 |
// |
|
90 |
// } |
|
91 |
public void validate(Feature feature, int mode) throws DataException { |
|
92 |
FeatureStore store = ((DefaultFeature) feature).getStore(); |
|
93 |
for (FeatureRule rule : this) { |
|
94 |
if (rule.checkAtFinishEditing() && mode == Feature.FINISH_EDITING) { |
|
95 |
rule.validate(feature, store); |
|
96 |
} |
|
97 |
if (rule.checkAtUpdate() && mode == Feature.UPDATE) { |
|
98 |
rule.validate(feature, store); |
|
99 |
} |
|
100 |
} |
|
93 | 101 |
|
102 |
} |
|
94 | 103 |
|
104 |
public static void selfRegister() { |
|
105 |
|
|
106 |
} |
|
95 | 107 |
|
108 |
@Override |
|
109 |
public void saveToState(PersistentState state) throws PersistenceException { |
|
110 |
state.set("rules", this.iterator()); |
|
111 |
} |
|
96 | 112 |
|
113 |
@Override |
|
114 |
public void loadFromState(PersistentState state) throws PersistenceException { |
|
115 |
this.clear(); |
|
116 |
Iterator<FeatureRule> it = state.getIterator("rules"); |
|
117 |
while (it.hasNext()) { |
|
118 |
FeatureRule rule = it.next(); |
|
119 |
this.add(rule); |
|
120 |
} |
|
121 |
} |
|
122 |
|
|
97 | 123 |
} |
Also available in: Unified diff