Statistics
| Revision:

svn-gvsig-desktop / trunk / org.gvsig.desktop / org.gvsig.desktop.plugin / org.gvsig.app / org.gvsig.app.mainplugin / src / main / java / org / gvsig / app / extension / updatetable / UpdateTableProcessParametersImpl.java @ 47674

History | View | Annotate | Download (6.79 KB)

1
/*
2
 * To change this license header, choose License Headers in Project Properties.
3
 * To change this template file, choose Tools | Templates
4
 * and open the template in the editor.
5
 */
6
package org.gvsig.app.extension.updatetable;
7

    
8
import java.util.Iterator;
9
import java.util.LinkedHashMap;
10
import java.util.Map;
11
import org.gvsig.app.extension.updatetable.UpdateTableProcessParametersImpl.ProcessFieldParametersImpl;
12
import org.gvsig.expressionevaluator.Expression;
13
import org.gvsig.fmap.dal.feature.FeatureStore;
14
import org.gvsig.tools.dispose.DisposeUtils;
15
import org.gvsig.tools.dispose.impl.AbstractDisposable;
16
import org.gvsig.tools.exception.BaseException;
17

    
18
/**
19
 *
20
 * @author jjdelcerro
21
 */
22
public class UpdateTableProcessParametersImpl extends AbstractDisposable implements UpdateTableProcessParameters{
23
    
24
    // FIXME: Deberiamos implementar esto como persistente. Ojo con el store, deberiamos guardar tambien el storeid del repositorio.
25
    
26

    
27
    public static class ProcessFieldParametersImpl implements ProcessFieldParameters {
28
    
29
        private final String name;
30
        private final boolean update;
31
        private final Expression expression;
32
        
33
        public ProcessFieldParametersImpl(String name, boolean update, Expression expression) {
34
            this.name = name;
35
            this.update = update;
36
            this.expression = expression;
37
        }
38

    
39
        /**
40
         * @return the name
41
         */
42
        @Override
43
        public String getName() {
44
            return name;
45
        }
46

    
47
        /**
48
         * @return the update
49
         */
50
        @Override
51
        public boolean isUpdate() {
52
            return update;
53
        }
54

    
55
        /**
56
         * @return the expression
57
         */
58
        @Override
59
        public Expression getExpression() {
60
            return expression;
61
        }
62
        
63
        
64
    }
65
    
66
    
67
    private int rowsToProcess; //selection, edited or all
68
    private Expression filter;
69
    private final Map<String,ProcessFieldParameters> fields;
70
    private FeatureStore store;
71
    private int editMode;
72
    private int finishAndRestarEditEach;
73
    private boolean finishAndRestarEdit;
74
    private boolean beginEditIfNeed;
75
    private boolean finishEditAfterTerminate;
76
    private boolean notifyUserIfNeedBeginEditing;
77
    
78

    
79
    public UpdateTableProcessParametersImpl() {
80
        super();
81
        this.fields = new LinkedHashMap<>();
82
        this.rowsToProcess = BATCHUPDATE_PROCESS_ALL;
83
        this.filter = null;
84
        this.store = null;
85
    }
86

    
87
    @Override
88
    protected void doDispose() throws BaseException {
89
        DisposeUtils.dispose(store);
90
        this.store = null;
91
        this.fields.clear();
92
        this.filter = null;
93
        this.rowsToProcess = BATCHUPDATE_PROCESS_ALL;
94
    }
95

    
96
    @Override
97
    public UpdateTableProcessParameters add(String name, boolean update, Expression expression) {
98
        ProcessFieldParametersImpl x = new ProcessFieldParametersImpl(name, update, expression);
99
        this.fields.put(name,x);
100
        return this;
101
    }
102

    
103
    @Override
104
    public ProcessFieldParameters get(String name) {
105
        return this.fields.get(name);
106
    }
107
    
108
    @Override
109
    public Iterator<ProcessFieldParameters> iterator() {
110
        return this.fields.values().iterator();
111
    }
112

    
113
    @Override
114
    public UpdateTableProcessParameters setStore(FeatureStore store) {
115
        DisposeUtils.dispose(this.store);
116
        this.store = store;
117
        DisposeUtils.bind(this.store);
118
        return this;
119
    }
120

    
121
    @Override
122
    public FeatureStore getStore() {
123
        return store;
124
    }
125
    
126
    /**
127
     * @return the rowsToProcess
128
     */
129
    @Override
130
    public int getRowsToProcess() {
131
        return rowsToProcess;
132
    }
133

    
134
    /**
135
     * @param rowsToProcess the rowsToProcess to set
136
     * @return 
137
     */
138
    @Override
139
    public UpdateTableProcessParameters setRowsToProcess(int rowsToProcess) {
140
        this.rowsToProcess = rowsToProcess;
141
        return this;
142
    }
143

    
144
    /**
145
     * @return the filter
146
     */
147
    @Override
148
    public Expression getFilter() {
149
        return filter;
150
    }
151

    
152
    /**
153
     * @param filter the filter to set
154
     * @return 
155
     */
156
    @Override
157
    public UpdateTableProcessParameters setFilter(Expression filter) {
158
        this.filter = filter;
159
        return this;
160
    }
161

    
162
    /**
163
     * @return the editMode
164
     */
165
    @Override
166
    public int getEditMode() {
167
        return editMode;
168
    }
169

    
170
    /**
171
     * @param editMode the editMode to set
172
     * @return 
173
     */
174
    @Override
175
    public UpdateTableProcessParameters setEditMode(int editMode) {
176
        this.editMode = editMode;
177
        return this;
178
    }
179

    
180
    /**
181
     * @return the finishAndRestarEditEach
182
     */
183
    @Override
184
    public int getFinishAndRestarEditEach() {
185
        return finishAndRestarEditEach;
186
    }
187

    
188
    /**
189
     * @param finishAndRestarEditEach the finishAndRestarEditEach to set
190
     * @return 
191
     */
192
    @Override
193
    public UpdateTableProcessParameters setFinishAndRestarEditEach(int finishAndRestarEditEach) {
194
        this.finishAndRestarEditEach = finishAndRestarEditEach;
195
        return this;
196
    }
197

    
198
    /**
199
     * @return the beginEditIfNeed
200
     */
201
    @Override
202
    public boolean isBeginEditIfNeed() {
203
        return beginEditIfNeed;
204
    }
205

    
206
    /**
207
     * @param beginEditIfNeed the beginEditIfNeed to set
208
     * @return 
209
     */
210
    @Override
211
    public UpdateTableProcessParameters setBeginEditIfNeed(boolean beginEditIfNeed) {
212
        this.beginEditIfNeed = beginEditIfNeed;
213
        return this;
214
    }
215

    
216
    /**
217
     * @return the finishEditAfterTerminate
218
     */
219
    @Override
220
    public boolean isFinishEditAfterTerminate() {
221
        return finishEditAfterTerminate;
222
    }
223

    
224
    /**
225
     * @param finishEditAfterTerminate the finishEditAfterTerminate to set
226
     */
227
    @Override
228
    public UpdateTableProcessParameters setFinishEditAfterTerminate(boolean finishEditAfterTerminate) {
229
        this.finishEditAfterTerminate = finishEditAfterTerminate;
230
        return this;
231
    }
232

    
233
    /**
234
     * @return the notifyUserIfNeedBeginEditing
235
     */
236
    @Override
237
    public boolean isNotifyUserIfNeedBeginEditing() {
238
        return notifyUserIfNeedBeginEditing;
239
    }
240

    
241
    /**
242
     * @param notifyUserIfNeedBeginEditing the notifyUserIfNeedBeginEditing to set
243
     */
244
    @Override
245
    public UpdateTableProcessParameters setNotifyUserIfNeedBeginEditing(boolean notifyUserIfNeedBeginEditing) {
246
        this.notifyUserIfNeedBeginEditing = notifyUserIfNeedBeginEditing;
247
        return this;
248
    }
249

    
250
    /**
251
     * @return the finishAndRestarEdit
252
     */
253
    @Override
254
    public boolean isFinishAndRestarEdit() {
255
        return finishAndRestarEdit;
256
    }
257

    
258
    /**
259
     * @param finishAndRestarEdit the finishAndRestarEdit to set
260
     */
261
    @Override
262
    public UpdateTableProcessParameters setFinishAndRestarEdit(boolean finishAndRestarEdit) {
263
        this.finishAndRestarEdit = finishAndRestarEdit;
264
        return this;
265
    }
266

    
267
}