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

View differences:

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