Statistics
| Revision:

svn-gvsig-desktop / trunk / org.gvsig.desktop / org.gvsig.desktop.compat.cdc / org.gvsig.fmap.dal / org.gvsig.fmap.dal.api / src / main / java / org / gvsig / fmap / dal / DataManager.java @ 46996

History | View | Annotate | Download (24 KB)

1
/**
2
 * gvSIG. Desktop Geographic Information System.
3
 *
4
 * Copyright (C) 2007-2013 gvSIG Association.
5
 *
6
 * This program is free software; you can redistribute it and/or modify it under
7
 * the terms of the GNU General Public License as published by the Free Software
8
 * Foundation; either version 3 of the License, or (at your option) any later
9
 * version.
10
 *
11
 * This program is distributed in the hope that it will be useful, but WITHOUT
12
 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
13
 * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
14
 * details.
15
 *
16
 * You should have received a copy of the GNU General Public License along with
17
 * this program; if not, write to the Free Software Foundation, Inc., 51
18
 * Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
19
 *
20
 * For any additional information, do not hesitate to contact us at info AT
21
 * gvsig.com, or visit our website www.gvsig.com.
22
 */
23
package org.gvsig.fmap.dal;
24

    
25
import java.io.File;
26
import java.util.List;
27
import java.util.Map;
28
import java.util.Set;
29
import java.util.function.Predicate;
30
import javax.json.JsonObject;
31
import org.gvsig.expressionevaluator.Expression;
32
import org.gvsig.expressionevaluator.ExpressionBuilder;
33

    
34
import org.gvsig.fmap.dal.exception.DataException;
35
import org.gvsig.fmap.dal.exception.InitializeException;
36
import org.gvsig.fmap.dal.exception.ProviderNotRegisteredException;
37
import org.gvsig.fmap.dal.exception.ValidateDataParametersException;
38
import org.gvsig.fmap.dal.expressionevaluator.DALExpressionBuilder;
39
import org.gvsig.fmap.dal.expressionevaluator.FeatureSymbolTable;
40
import org.gvsig.fmap.dal.feature.EditableFeatureType;
41
import org.gvsig.fmap.dal.feature.Feature;
42
import org.gvsig.fmap.dal.feature.FeatureIndex;
43
import org.gvsig.fmap.dal.feature.FeatureQuery;
44
import org.gvsig.fmap.dal.feature.FeatureStore;
45
import org.gvsig.fmap.dal.feature.FeatureType;
46
import org.gvsig.fmap.dal.feature.paging.FeaturePagingHelper;
47
import org.gvsig.fmap.dal.resource.ResourceManager;
48
import org.gvsig.tools.dataTypes.DataType;
49
import org.gvsig.tools.dynobject.DynObject;
50
import org.gvsig.tools.dynobject.DynStruct;
51
import org.gvsig.tools.dynobject.Tags;
52
import org.gvsig.tools.evaluator.Evaluator;
53
import org.gvsig.tools.exception.BaseException;
54
import org.gvsig.tools.service.spi.Services;
55
import org.gvsig.fmap.dal.expressionevaluator.FeatureAttributeEmulatorExpression;
56
import org.gvsig.fmap.dal.feature.DataProfile;
57
import org.gvsig.fmap.dal.feature.EditableFeature;
58
import org.gvsig.fmap.dal.feature.EditableFeatureAttributeDescriptor;
59
import org.gvsig.fmap.dal.feature.FeatureAttributeDescriptor;
60
import org.gvsig.fmap.dal.feature.FeatureRuleExpression;
61
import org.gvsig.fmap.dal.feature.FeatureSet;
62
import org.gvsig.fmap.dal.feature.LabelsCacheForFieldValues;
63
import org.gvsig.tools.observer.Observer;
64
import org.gvsig.tools.resourcesstorage.ResourcesStorage;
65
import org.gvsig.tools.task.SimpleTaskStatus;
66
import org.gvsig.tools.util.Factory;
67
import org.gvsig.tools.util.Invocable;
68

    
69
/**
70
 * There are two top level management roles within DAL: data access and resource
71
 * management.
72
 *
73
 * This class is responsible of the data access management role. It provides
74
 * ways for registering and instantiating {@link DataServerExplorer}(s),
75
 * {@link DataStore}(s), {@link Evaluator}(s) and {@link FeatureIndex}(es).
76
 *
77
 * @see ResourceManager
78
 *
79
 */
80
public interface DataManager extends Services {
81

    
82
    public static final int RECOMENDED_SIZE_FOR_CLOB = 4096;
83
    
84
    public static final String CREATE_STORE_AUTHORIZATION = "dal-create-store";
85
    public static final String READ_STORE_AUTHORIZATION = "dal-read-store";
86
    public static final String WRITE_STORE_AUTHORIZATION = "dal-write-store";
87

    
88
    public static final String DAL_SYMBOL_TABLE = "DAL.SymbolTable.Global";
89
//    public static final String DAL_SYMBOL_TABLE_FEATURE = "DAL.SymbolTable.Feature";
90

    
91
    public static final String FUNCTION_FOREING_VALUE = "FOREING_VALUE";
92
    public static final String FUNCTION_FOREIGN_VALUE = "FOREIGN_VALUE";
93
    public static final String FUNCTION_SELECT = "SELECT";
94
    public static final String FUNCTION_UPDATE = "UPDATE";
95
    public static final String FUNCTION_SELECT_COUNT = "SELECT_COUNT";
96
    public static final String FUNCTION_EXISTS = "EXISTS";
97
    public static final String FUNCTION_EXISTS_TABLE = "EXISTS_TABLE";
98
    public static final String FUNCTION_ROW_TAG = "ROW_TAG";
99
    public static final String FUNCTION_SET_ROW_TAG = "SET_ROW_TAG";
100
    public static final String FUNCTION_CURRENT_ROW = "CURRENT_ROW";
101
    public static final String FUNCTION_CURRENT_STORE = "CURRENT_STORE";
102
    public static final String FUNCTION_ISSELECTED_CURRENT_ROW = "ISSELECTED_CURRENT_ROW";
103
    public static final String FUNCTION_GEOMETRY = "GEOMETRY";
104
    public static final String FUNCTION_CREATE_IN_MEMORY_TABLE = "CREATE_IN_MEMORY_TABLE";
105
    public static final String FUNCTION_INSERT_INTO_TABLE = "INSERT_INTO_TABLE";
106
    public static final String FUNCTION_CREATE_TABLE = "CREATE_TABLE";
107
    public static final String FUNCTION_CREATE_TABLE_STRUCTURE = "CREATE_TABLE_STRUCTURE";
108
    public static final String FUNCTION_SELECT_FROM_SELECTION = "SELECTFROMSELECTION";
109
    public static final String FUNCTION_SELECT_COUNT_FROM_SELECTION = "SELECTCOUNTFROMSELECTION";
110
    
111
    public static final String DAL_PREFERRED_COLUMNS = "DAL.Preferred.Columns";
112
    
113
    public static final String DAL_USE_LABELS = "DAL.useLabels";
114
    
115
    public static final String DAL_USE_LARGE_SELECTION = "DAL.useLargeSelection";
116
    public static final String DAL_STORE_ENVELOPE = "DAL.forcedEnvelope";
117
    public static final String DAL_FEATURETYPE_MODE_EDIT = "DAL.featureTypeEditMode";
118
    public static final String DAL_FEATURETYPE_MODE_EDIT_MSG = "DAL.featureTypeEditMode.msg";
119

    
120
    public static final int USE_LABELS_YES = 0;
121
    public static final int USE_LABELS_NO = 1;
122
    public static final int USE_LABELS_BOTH = 2;
123
    
124
    /**
125
     * 
126
     * Returns the default DAL's temporary directory
127
     *
128
     * @return Temporary directory name
129
     * @deprecated use FoldersManager of org.gvsig.tools
130
     */
131
    public String getTemporaryDirectory();
132

    
133
    /*
134
     * ====================================================================
135
     *
136
     * Store related services
137
     */
138
    /**
139
     * Creates, initializes and returns an instance of DataStoreParameters given
140
     * the name with which their provider is registered.
141
     *
142
     * @param name provider name
143
     * @param arguments
144
     * @return the data store parameters
145
     *
146
     * @throws ProviderNotRegisteredException if the memory provider is not
147
     * registered
148
     * @throws InitializeException if there is an error initializing the
149
     * parameters for the memory provider
150
     *
151
     */
152
    public DataStoreParameters createStoreParameters(String name, Object... arguments)
153
            throws InitializeException, ProviderNotRegisteredException;
154
    
155
    public DataStoreParameters createStoreParameters(String name)
156
            throws InitializeException, ProviderNotRegisteredException;
157

    
158
    public DataStoreParameters createStoreParameters(byte[] data);
159

    
160
    /**
161
     * Creates, initializes and fill an instance of DataStoreParameters from the
162
     * tags of the DynStruct passed as parameter.
163
     *
164
     * @param struct structure from which tags were created ths parameters.
165
     * @return the data store parameters
166
     *
167
     * @throws ProviderNotRegisteredException if the memory provider is not
168
     * registered
169
     * @throws InitializeException if there is an error initializing the
170
     * parameters for the memory provider
171
     *
172
     */
173
    public DataStoreParameters createStoreParameters(DynStruct struct)
174
            throws InitializeException, ProviderNotRegisteredException;
175

    
176
    public DataStoreParameters createStoreParameters(Tags tags) throws InitializeException, ProviderNotRegisteredException;
177

    
178
    /**
179
     * Creates, initializes and returns an instance of NewDataStoreParameters
180
     * given the name with which their provider is registered.
181
     *
182
     * @param explorer
183
     * @param provider
184
     * @return
185
     *
186
     * @throws InitializeException
187
     * @throws ProviderNotRegisteredException
188
     */
189
    public NewDataStoreParameters createNewStoreParameters(String explorer, String provider)
190
            throws InitializeException, ProviderNotRegisteredException;
191

    
192
    public NewDataStoreParameters createNewStoreParameters(String provider)
193
            throws InitializeException, ProviderNotRegisteredException;
194

    
195
    /**
196
     *
197
     * Creates, initializes and returns an instance of DataStore given the
198
     * DataStoreParameters.
199
     *
200
     * @param provider
201
     * @param parameters parameters used to instantiate and initialize the
202
     * DataStore
203
     * @return
204
     *
205
     * @throws ProviderNotRegisteredException if the memory provider is not
206
     * registered
207
     * @throws InitializeException if there is an error initializing the
208
     * parameters for the memory provider
209
     * @throws ValidateDataParametersException if the parameters to open the
210
     * memory based store are not valid
211
     */
212
    public DataStore openStore(String provider, DynObject parameters)
213
            throws InitializeException, ProviderNotRegisteredException,
214
            ValidateDataParametersException;
215

    
216
    public DataStore openStore(String provider, DataStoreParameters parameters)
217
            throws InitializeException, ProviderNotRegisteredException,
218
            ValidateDataParametersException;
219

    
220
    public DataStore openStore(String providerName, DataStoreParameters 
221
            parameters, boolean ignoreDALResource) 
222
            throws InitializeException, ProviderNotRegisteredException, 
223
            ValidateDataParametersException;
224

    
225
    public DataStore openStore(
226
            String providerName,
227
            Object... arguments)
228
        throws
229
            InitializeException,
230
            ProviderNotRegisteredException,
231
            ValidateDataParametersException;
232

    
233
    public DataStore openStore(DynStruct struct)
234
            throws InitializeException, ProviderNotRegisteredException, ValidateDataParametersException;
235

    
236
    /**
237
     * Create a new physical store
238
     *
239
     * @param explorer
240
     * @param provider
241
     * @param parameters
242
     * @param overwrite
243
     *
244
     * @throws InitializeException
245
     * @throws ProviderNotRegisteredException
246
     * @throws ValidateDataParametersException
247
     */
248
    public void newStore(String explorer, String provider, NewDataStoreParameters parameters, boolean overwrite)
249
            throws InitializeException, ProviderNotRegisteredException,
250
            ValidateDataParametersException;
251

    
252
    public void newStore(String provider, NewDataStoreParameters parameters, boolean overwrite)
253
            throws InitializeException, ProviderNotRegisteredException,
254
            ValidateDataParametersException;
255

    
256
    /**
257
     * Returns a list of Strings containing the names of all available DataStore
258
     * providers.
259
     *
260
     * @return list of String containing available DataStore provider names
261
     */
262
    public List getStoreProviders();
263

    
264
    /**
265
     * Returns a list of Strings containing the names of all available DataStore
266
     * providers for an explorer.
267
     *
268
     * @param name
269
     * @return
270
     */
271
    public List<String> getStoreProviders(String name);
272

    
273
    /*
274
     * ====================================================================
275
     *
276
     * Explorer related services
277
     */
278
    /**
279
     * Returns an instance of {@link DataServerExplorerParameters} corresponding
280
     * to the given name.
281
     *
282
     * @param name name of a registered server explorer provider
283
     * @return
284
     *
285
     * @throws InitializeException if parameter initialization causes an error.
286
     *
287
     * @throws ProviderNotRegisteredException if could not find a provider by
288
     * the given name.
289
     *
290
     *
291
     */
292
    public DataServerExplorerParameters createServerExplorerParameters(
293
            String name)
294
            throws InitializeException, ProviderNotRegisteredException;
295

    
296
    /**
297
     * Returns an instance of {@link DataServerExplorer} given its parameters.
298
     *
299
     * @param name
300
     * @param parameters parameters used to instantiate and initialize the
301
     * {@link DataServerExplorer}.
302
     *
303
     * @return an instance of {@link DataServerExplorer}.
304
     *
305
     * @throws InitializeException
306
     *
307
     * @throws ProviderNotRegisteredException
308
     * @throws ValidateDataParametersException
309
     */
310
    public DataServerExplorer openServerExplorer(
311
            String name,
312
            DataServerExplorerParameters parameters)
313
            throws InitializeException, ProviderNotRegisteredException,
314
            ValidateDataParametersException;
315

    
316
    public DataServerExplorer openServerExplorer(
317
            String explorerName,
318
            Object... arguments)
319
        throws
320
            InitializeException,
321
            ProviderNotRegisteredException,
322
            ValidateDataParametersException;
323
    /**
324
     * @param parameters
325
     * @return
326
     * @throws org.gvsig.fmap.dal.exception.InitializeException
327
     * @throws org.gvsig.fmap.dal.exception.ProviderNotRegisteredException
328
     * @throws org.gvsig.fmap.dal.exception.ValidateDataParametersException
329
     * @deprecated see openServerExplorer
330
     */
331
    public DataServerExplorer createServerExplorer(
332
            DataServerExplorerParameters parameters)
333
            throws InitializeException, ProviderNotRegisteredException,
334
            ValidateDataParametersException;
335

    
336
    /**
337
     * @param parameters
338
     * @return
339
     * @throws org.gvsig.fmap.dal.exception.InitializeException
340
     * @throws org.gvsig.fmap.dal.exception.ProviderNotRegisteredException
341
     * @throws org.gvsig.fmap.dal.exception.ValidateDataParametersException
342
     * @deprecated see openStore
343
     */
344
    public DataStore createStore(DataStoreParameters parameters)
345
            throws InitializeException, ProviderNotRegisteredException,
346
            ValidateDataParametersException;
347

    
348
    /**
349
     * Returns a list of String containing the names of the available
350
     * DataServerExplorer providers.
351
     *
352
     * @return list of String containing the names of the available
353
     * DataServerExplorer providers.
354
     */
355
    public List<String> getExplorerProviders();
356

    
357
    /**
358
     * Creates an instance of Evaluator that represents the given expression.
359
     *
360
     * @param expression String containing a CQL expression.
361
     * @return instance of Evaluator representing the given expression.
362
     * @throws InitializeException
363
     * @deprecated use createFilter
364
     */
365
    public Evaluator createExpresion(String expression)
366
            throws InitializeException;
367

    
368
    /**
369
     * Creates an instance of Evaluator that represents the given expression.
370
     *
371
     * @param expression a Expression with the filter
372
     * @return instance of Evaluator representing the given expression.
373
     * @throws InitializeException
374
     * @deprecated use createFilter
375
     */
376
    public Evaluator createExpresion(Expression expression)
377
            throws InitializeException;
378

    
379
    /**
380
     * Creates an instance of Evaluator that represents the given expression.
381
     *
382
     * @param expression String containing a CQL expression.
383
     * @return instance of Evaluator representing the given expression.
384
     * @throws InitializeException
385
     */
386
    public Evaluator createFilter(String expression)
387
            throws InitializeException;
388

    
389
    /**
390
     * Creates an instance of Evaluator that represents the given expression.
391
     *
392
     * @param expression a Expression with the filter
393
     * @return instance of Evaluator representing the given expression.
394
     * @throws InitializeException
395
     */
396
    public Evaluator createFilter(Expression expression)
397
            throws InitializeException;
398

    
399
    /*
400
     * ====================================================================
401
     *
402
     * Index related services
403
     */
404
    /**
405
     * Returns a list of String containing the names of the available index
406
     * providers.
407
     *
408
     * @return list of strings with the names of the available index providers
409
     */
410
    public List<String> getFeatureIndexProviders();
411

    
412
    /**
413
     * Sets the default DataIndexProvider for the given data type.
414
     *
415
     * @param dataType one of the data types defined in {@link DataTypes}.
416
     * @param name Provider's name
417
     */
418
    public void setDefaultFeatureIndexProviderName(int dataType, String name);
419

    
420
    /**
421
     * Returns the default DataIndexProvider name, given a data type. Data types
422
     * are defined in {@link DataTypes}.
423
     *
424
     * @param dataType one of the constants in {@link DataTypes}.
425
     *
426
     * @return the name of the default {@link FeatureIndexProvider} if there is
427
     * anyone available for the given data type.
428
     */
429
    public String getDefaultFeatureIndexProviderName(int dataType);
430

    
431
    /**
432
     * Utility method to create the {@link DataStoreParameters} to create a
433
     * {@link FeatureStore} based on the {@link MemoryStoreProvider}.
434
     *
435
     * @param autoOrderAttributeName the name of the {@link Feature} attribute
436
     * to be used to order the store {@link Feature}s by default. Set to null if
437
     * you don't want any order by default
438
     * @return the parameters for the memory based store
439
     * @throws InitializeException if there is an error initializing the
440
     * parameters for the memory provider
441
     */
442
    public DataStoreParameters createMemoryStoreParameters(
443
            String autoOrderAttributeName) throws InitializeException;
444

    
445
    /**
446
     * Utility method to create the a {@link FeatureStore} based on the
447
     * {@link MemoryStoreProvider}.
448
     *
449
     * @param autoOrderAttributeName the name of the {@link Feature} attribute
450
     * to be used to order the store {@link Feature}s by default. Set to null if
451
     * you don't want any order by default
452
     * @return the the memory based store
453
     * @throws InitializeException if there is an error initializing the
454
     * parameters for the memory provider
455
     */
456
    public FeatureStore createMemoryStore(String autoOrderAttributeName)
457
            throws InitializeException;
458

    
459
    /**
460
     * Creates a {@link FeaturePagingHelper} to paginate data from a
461
     * {@link FeatureStore}.
462
     *
463
     * @param featureStore to get the {@link Feature}s from
464
     * @param pageSize the page size
465
     * @return a {@link FeaturePagingHelper}
466
     * @throws BaseException if there is an error creating the helper
467
     */
468
    public FeaturePagingHelper createFeaturePagingHelper(
469
            FeatureStore featureStore, int pageSize) throws BaseException;
470

    
471
    /**
472
     * Creates a {@link FeaturePagingHelper} to paginate data from a
473
     * {@link FeatureStore}.
474
     *
475
     * @param featureStore to get the {@link Feature}s from
476
     * @param featureQuery to filter and/or order the data
477
     * @param pageSize the page size
478
     * @return a {@link FeaturePagingHelper}
479
     * @throws BaseException if there is an error creating the helper
480
     */
481
    public FeaturePagingHelper createFeaturePagingHelper(
482
            FeatureStore featureStore, FeatureQuery featureQuery, int pageSize)
483
            throws BaseException;
484

    
485
    public void setOpenErrorHandler(OpenErrorHandler handler);
486

    
487
    public OpenErrorHandler getOpenErrorHandler();
488

    
489
    public DataStoreProviderFactory getStoreProviderFactory(String name);
490

    
491
    public EditableFeatureType createFeatureType();
492
    
493
    public EditableFeatureType createFeatureType(JsonObject json);
494

    
495
    public DataServerExplorerPool getDataServerExplorerPool();
496

    
497
    public void setDataServerExplorerPool(DataServerExplorerPool pool);
498

    
499
    public void setResourcesLoader(ClassLoader loader);
500

    
501
    public void setResourcesLoader(File folder);
502

    
503
    /**
504
     * Return a list of the DataTypes supported for the type of the feature
505
     * attributes. The list is only informative.
506
     *
507
     * @return
508
     */
509
    public List<DataType> getDataTypes();
510

    
511
    public Register getStoreRegister();
512

    
513
    public Register getStoreProviderRegister();
514

    
515
    public Register getServerExplorerRegister();
516

    
517
    public Register getFeatureIndexRegister();
518

    
519
    /**
520
     * Creates a default ExpressionBuilder.
521
     *
522
     * This ExpressionBuilder is not dependent on a data source,
523
     * and is not advisable to use it.
524
     *
525
     * @return the ExpressionBuilder
526
     * @deprecated use ExpressionEvaluatorManager.createExpressionBuilder()
527
     */
528
    public ExpressionBuilder createExpressionBuilder();
529

    
530
    /**
531
         * Returns a list of String containing the names of the available cache providers.
532
         *
533
         * @return
534
         *                 list of strings with the names of the available cache providers
535
         */
536
    public List getFeatureCacheProviders();
537

    
538
        /**
539
         * Returns an instance of {@link DataServerExplorerParameters} corresponding
540
         * to the given name used by the cache to create a store to save the
541
         * retrieved data.
542
         *
543
         * @param name
544
         *            name of a registered feature cache provider
545
     * @return 
546
         *
547
         * @throws InitializeException
548
         *             if parameter initialization causes an error.
549
         *
550
         * @throws ProviderNotRegisteredException
551
         *             if could not find a cache provider by the given name.
552
         *
553
         */
554
        public DynObject createCacheParameters(String name)
555
                        throws InitializeException, ProviderNotRegisteredException;
556

    
557
    /**
558
     * @param providerName
559
     * @param params
560
     * @param overwrite
561
     * @throws DataException
562
     */
563
    public void createFileStore(String providerName, NewDataStoreParameters params, boolean overwrite) throws DataException;
564

    
565
    public FeatureSymbolTable createFeatureSymbolTable();
566
    
567
    public FeatureSymbolTable createFeatureSymbolTable(String name);
568

    
569
    public EditableFeatureAttributeDescriptor createFeatureAttributeDescriptor(String name, int type);
570
    
571
    public FeatureAttributeEmulatorExpression createFeatureAttributeEmulatorExpression(FeatureType type, Expression expression);
572

    
573
    public void registerDataProfile(DataProfile profile);
574

    
575
    public List<DataProfile> getDataProfiles();
576

    
577
    public DataProfile getDataProfile(String name);
578
    
579
    public StoresRepository getStoresRepository();
580
    
581
    public DatabaseWorkspaceManager createDatabaseWorkspaceManager(DataServerExplorerParameters connection);
582
    
583
    public void addDatabaseWorkspace(DatabaseWorkspaceManager DatabaseWorkspace);
584

    
585
    public void removeDatabaseWorkspace(DatabaseWorkspaceManager DatabaseWorkspace);
586

    
587
    public void addDatabaseWorkspaceListener(DatabaseWorkspaceManager.DatabaseWorkspaceListener listener);
588
    
589
    public DatabaseWorkspaceManager getDatabaseWorkspace(String name);
590
    
591
    public DatabaseWorkspaceManager getDatabaseWorkspace(DataStoreParameters params);
592
    
593
    public DatabaseWorkspaceManager getDatabaseWorkspace(DataServerExplorerParameters params);
594

    
595
    public void writeDALResource(ResourcesStorage resources, DataStore store);
596
    
597
    public void writeDALResource(ResourcesStorage resources, FeatureType featureType);
598

    
599
    /**
600
     * Return a 35-40 characters unique identifier.
601
     * 
602
     * @return the unique identifier
603
     */
604
    public String createUniqueID();
605

    
606
    public void clearAvailableValuesCache();
607

    
608
    public DALExpressionBuilder createDALExpressionBuilder();
609
    
610
    public boolean isTheOldRasterRegistered();
611
    
612
    public void addStoreObserver(Observer observer);
613
    
614
    public void removeStoreObserver(Observer observer);
615

    
616
    public String getServerExplorerFromStore(String name);
617
    
618
    public void setMaxSizeForSmallFeatureSelection(long size);
619

    
620
    public long getMaxSizeForSmallFeatureSelection();
621
    
622
    public void registerLargeMap(Factory factory);
623
    
624
    public void registerLargeSet(Factory factory);
625
    
626
    public Map createLargeMap();
627
    
628
    public Set createLargeSet();
629
    
630
    public DataTransaction createTransaction();
631
    
632
    public void putFeaturesInClipboard(FeatureSet set);
633
    
634
    public List<EditableFeature> getFeaturesFromClipboard(
635
            FeatureStore store, 
636
            Predicate<FeatureAttributeDescriptor> attrFilter
637
    ) throws DataException;
638

    
639
    public FeatureRuleExpression createFeatureRuleExpression();
640
    
641
    public DataFactory getStoreFactory(DataStoreParameters parameters);    
642
    
643
    public File getCacheResourcesFolder();
644
    
645
    public void clearAllCachedResources();
646
    
647
    public LabelsCacheForFieldValues createLabelsCacheForFieldValues(Invocable labelFormulaProvider, SimpleTaskStatus status);
648
}