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 @ 47778

History | View | Annotate | Download (24.9 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.Locale;
28
import java.util.Map;
29
import java.util.Set;
30
import java.util.function.Predicate;
31
import javax.json.JsonObject;
32
import org.gvsig.expressionevaluator.Expression;
33
import org.gvsig.expressionevaluator.ExpressionBuilder;
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.FeatureAttributeEmulatorExpression;
40
import org.gvsig.fmap.dal.expressionevaluator.FeatureSymbolTable;
41
import org.gvsig.fmap.dal.feature.DataProfile;
42
import org.gvsig.fmap.dal.feature.DataTypeDetector;
43
import org.gvsig.fmap.dal.feature.EditableFeature;
44
import org.gvsig.fmap.dal.feature.EditableFeatureAttributeDescriptor;
45
import org.gvsig.fmap.dal.feature.EditableFeatureType;
46
import org.gvsig.fmap.dal.feature.Feature;
47
import org.gvsig.fmap.dal.feature.FeatureAttributeDescriptor;
48
import org.gvsig.fmap.dal.feature.FeatureIndex;
49
import org.gvsig.fmap.dal.feature.FeatureQuery;
50
import org.gvsig.fmap.dal.feature.FeatureRuleExpression;
51
import org.gvsig.fmap.dal.feature.FeatureSet;
52
import org.gvsig.fmap.dal.feature.FeatureStore;
53
import org.gvsig.fmap.dal.feature.FeatureType;
54
import org.gvsig.fmap.dal.feature.LabelsCacheForFieldValues;
55
import org.gvsig.fmap.dal.feature.paging.FeaturePagingHelper;
56
import org.gvsig.fmap.dal.resource.ResourceManager;
57
import org.gvsig.tools.dataTypes.DataType;
58
import org.gvsig.tools.dynobject.DynObject;
59
import org.gvsig.tools.dynobject.DynStruct;
60
import org.gvsig.tools.dynobject.Tags;
61
import org.gvsig.tools.evaluator.Evaluator;
62
import org.gvsig.tools.exception.BaseException;
63
import org.gvsig.tools.observer.Observer;
64
import org.gvsig.tools.resourcesstorage.ResourcesStorage;
65
import org.gvsig.tools.service.spi.Services;
66
import org.gvsig.tools.task.SimpleTaskStatus;
67
import org.gvsig.tools.util.Factory;
68
import org.gvsig.tools.util.Invocable;
69
import org.gvsig.tools.util.PropertiesSupport;
70

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

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

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

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

    
128
    public static final int USE_LABELS_YES = 0;
129
    public static final int USE_LABELS_NO = 1;
130
    public static final int USE_LABELS_BOTH = 2;
131
    
132
    /**
133
     * 
134
     * Returns the default DAL's temporary directory
135
     *
136
     * @return Temporary directory name
137
     * @deprecated use FoldersManager of org.gvsig.tools
138
     */
139
    public String getTemporaryDirectory();
140

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

    
166
    public DataStoreParameters createStoreParameters(byte[] data);
167

    
168
    /**
169
     * Creates, initializes and fill an instance of DataStoreParameters from the
170
     * tags of the DynStruct passed as parameter.
171
     *
172
     * @param struct structure from which tags were created ths parameters.
173
     * @return the data store parameters
174
     *
175
     * @throws ProviderNotRegisteredException if the memory provider is not
176
     * registered
177
     * @throws InitializeException if there is an error initializing the
178
     * parameters for the memory provider
179
     *
180
     */
181
    public DataStoreParameters createStoreParameters(DynStruct struct)
182
            throws InitializeException, ProviderNotRegisteredException;
183

    
184
    public DataStoreParameters createStoreParameters(Tags tags) throws InitializeException, ProviderNotRegisteredException;
185

    
186
    /**
187
     * Creates, initializes and returns an instance of NewDataStoreParameters
188
     * given the name with which their provider is registered.
189
     *
190
     * @param explorer
191
     * @param provider
192
     * @return
193
     *
194
     * @throws InitializeException
195
     * @throws ProviderNotRegisteredException
196
     */
197
    public NewDataStoreParameters createNewStoreParameters(String explorer, String provider)
198
            throws InitializeException, ProviderNotRegisteredException;
199

    
200
    public NewDataStoreParameters createNewStoreParameters(String provider)
201
            throws InitializeException, ProviderNotRegisteredException;
202

    
203
    /**
204
     *
205
     * Creates, initializes and returns an instance of DataStore given the
206
     * DataStoreParameters.
207
     *
208
     * @param provider
209
     * @param parameters parameters used to instantiate and initialize the
210
     * DataStore
211
     * @return
212
     *
213
     * @throws ProviderNotRegisteredException if the memory provider is not
214
     * registered
215
     * @throws InitializeException if there is an error initializing the
216
     * parameters for the memory provider
217
     * @throws ValidateDataParametersException if the parameters to open the
218
     * memory based store are not valid
219
     */
220
    public DataStore openStore(String provider, DynObject parameters)
221
            throws InitializeException, ProviderNotRegisteredException,
222
            ValidateDataParametersException;
223

    
224
    public DataStore openStore(DataTransaction transaction, String provider, DataStoreParameters parameters)
225
            throws InitializeException, ProviderNotRegisteredException,
226
            ValidateDataParametersException;
227

    
228
    public DataStore openStore(String provider, DataStoreParameters parameters)
229
            throws InitializeException, ProviderNotRegisteredException,
230
            ValidateDataParametersException;
231

    
232
    public DataStore openStore(String providerName, DataStoreParameters 
233
            parameters, boolean ignoreDALResource) 
234
            throws InitializeException, ProviderNotRegisteredException, 
235
            ValidateDataParametersException;
236

    
237
    public DataStore openStore(DataTransaction transaction, String providerName, DataStoreParameters 
238
            parameters, boolean ignoreDALResource) 
239
            throws InitializeException, ProviderNotRegisteredException, 
240
            ValidateDataParametersException;
241

    
242
    public DataStore openStore(
243
            String providerName,
244
            Object... arguments)
245
        throws
246
            InitializeException,
247
            ProviderNotRegisteredException,
248
            ValidateDataParametersException;
249

    
250
    public DataStore openStore(DynStruct struct)
251
            throws InitializeException, ProviderNotRegisteredException, ValidateDataParametersException;
252

    
253
    /**
254
     * Create a new physical store
255
     *
256
     * @param explorer
257
     * @param provider
258
     * @param parameters
259
     * @param overwrite
260
     *
261
     * @throws InitializeException
262
     * @throws ProviderNotRegisteredException
263
     * @throws ValidateDataParametersException
264
     */
265
    public void newStore(String explorer, String provider, NewDataStoreParameters parameters, boolean overwrite)
266
            throws InitializeException, ProviderNotRegisteredException,
267
            ValidateDataParametersException;
268

    
269
    public void newStore(String provider, NewDataStoreParameters parameters, boolean overwrite)
270
            throws InitializeException, ProviderNotRegisteredException,
271
            ValidateDataParametersException;
272

    
273
    /**
274
     * Returns a list of Strings containing the names of all available DataStore
275
     * providers.
276
     *
277
     * @return list of String containing available DataStore provider names
278
     */
279
    public List getStoreProviders();
280

    
281
    /**
282
     * Returns a list of Strings containing the names of all available DataStore
283
     * providers for an explorer.
284
     *
285
     * @param name
286
     * @return
287
     */
288
    public List<String> getStoreProviders(String name);
289

    
290
    /*
291
     * ====================================================================
292
     *
293
     * Explorer related services
294
     */
295
    /**
296
     * Returns an instance of {@link DataServerExplorerParameters} corresponding
297
     * to the given name.
298
     *
299
     * @param name name of a registered server explorer provider
300
     * @return
301
     *
302
     * @throws InitializeException if parameter initialization causes an error.
303
     *
304
     * @throws ProviderNotRegisteredException if could not find a provider by
305
     * the given name.
306
     *
307
     *
308
     */
309
    public DataServerExplorerParameters createServerExplorerParameters(
310
            String name)
311
            throws InitializeException, ProviderNotRegisteredException;
312

    
313
    /**
314
     * Returns an instance of {@link DataServerExplorer} given its parameters.
315
     *
316
     * @param name
317
     * @param parameters parameters used to instantiate and initialize the
318
     * {@link DataServerExplorer}.
319
     *
320
     * @return an instance of {@link DataServerExplorer}.
321
     *
322
     * @throws InitializeException
323
     *
324
     * @throws ProviderNotRegisteredException
325
     * @throws ValidateDataParametersException
326
     */
327
    public DataServerExplorer openServerExplorer(
328
            String name,
329
            DataServerExplorerParameters parameters)
330
            throws InitializeException, ProviderNotRegisteredException,
331
            ValidateDataParametersException;
332

    
333
    public DataServerExplorer openServerExplorer(
334
            String explorerName,
335
            Object... arguments)
336
        throws
337
            InitializeException,
338
            ProviderNotRegisteredException,
339
            ValidateDataParametersException;
340
    /**
341
     * @param parameters
342
     * @return
343
     * @throws org.gvsig.fmap.dal.exception.InitializeException
344
     * @throws org.gvsig.fmap.dal.exception.ProviderNotRegisteredException
345
     * @throws org.gvsig.fmap.dal.exception.ValidateDataParametersException
346
     * @deprecated see openServerExplorer
347
     */
348
    public DataServerExplorer createServerExplorer(
349
            DataServerExplorerParameters parameters)
350
            throws InitializeException, ProviderNotRegisteredException,
351
            ValidateDataParametersException;
352

    
353
    /**
354
     * @param parameters
355
     * @return
356
     * @throws org.gvsig.fmap.dal.exception.InitializeException
357
     * @throws org.gvsig.fmap.dal.exception.ProviderNotRegisteredException
358
     * @throws org.gvsig.fmap.dal.exception.ValidateDataParametersException
359
     * @deprecated see openStore
360
     */
361
    public DataStore createStore(DataStoreParameters parameters)
362
            throws InitializeException, ProviderNotRegisteredException,
363
            ValidateDataParametersException;
364

    
365
    /**
366
     * Returns a list of String containing the names of the available
367
     * DataServerExplorer providers.
368
     *
369
     * @return list of String containing the names of the available
370
     * DataServerExplorer providers.
371
     */
372
    public List<String> getExplorerProviders();
373

    
374
    /**
375
     * Creates an instance of Evaluator that represents the given expression.
376
     *
377
     * @param expression String containing a CQL expression.
378
     * @return instance of Evaluator representing the given expression.
379
     * @throws InitializeException
380
     * @deprecated use createFilter
381
     */
382
    public Evaluator createExpresion(String expression)
383
            throws InitializeException;
384

    
385
    /**
386
     * Creates an instance of Evaluator that represents the given expression.
387
     *
388
     * @param expression a Expression with the filter
389
     * @return instance of Evaluator representing the given expression.
390
     * @throws InitializeException
391
     * @deprecated use createFilter
392
     */
393
    public Evaluator createExpresion(Expression expression)
394
            throws InitializeException;
395

    
396
    /**
397
     * Creates an instance of Evaluator that represents the given expression.
398
     *
399
     * @param expression String containing a CQL expression.
400
     * @return instance of Evaluator representing the given expression.
401
     * @throws InitializeException
402
     */
403
    public Evaluator createFilter(String expression)
404
            throws InitializeException;
405

    
406
    /**
407
     * Creates an instance of Evaluator that represents the given expression.
408
     *
409
     * @param expression a Expression with the filter
410
     * @return instance of Evaluator representing the given expression.
411
     * @throws InitializeException
412
     */
413
    public Evaluator createFilter(Expression expression)
414
            throws InitializeException;
415

    
416
    /*
417
     * ====================================================================
418
     *
419
     * Index related services
420
     */
421
    /**
422
     * Returns a list of String containing the names of the available index
423
     * providers.
424
     *
425
     * @return list of strings with the names of the available index providers
426
     */
427
    public List<String> getFeatureIndexProviders();
428

    
429
    /**
430
     * Sets the default DataIndexProvider for the given data type.
431
     *
432
     * @param dataType one of the data types defined in {@link DataTypes}.
433
     * @param name Provider's name
434
     */
435
    public void setDefaultFeatureIndexProviderName(int dataType, String name);
436

    
437
    /**
438
     * Returns the default DataIndexProvider name, given a data type. Data types
439
     * are defined in {@link DataTypes}.
440
     *
441
     * @param dataType one of the constants in {@link DataTypes}.
442
     *
443
     * @return the name of the default {@link FeatureIndexProvider} if there is
444
     * anyone available for the given data type.
445
     */
446
    public String getDefaultFeatureIndexProviderName(int dataType);
447

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

    
462
    /**
463
     * Utility method to create the a {@link FeatureStore} based on the
464
     * {@link MemoryStoreProvider}.
465
     *
466
     * @param autoOrderAttributeName the name of the {@link Feature} attribute
467
     * to be used to order the store {@link Feature}s by default. Set to null if
468
     * you don't want any order by default
469
     * @return the the memory based store
470
     * @throws InitializeException if there is an error initializing the
471
     * parameters for the memory provider
472
     */
473
    public FeatureStore createMemoryStore(String autoOrderAttributeName)
474
            throws InitializeException;
475

    
476
    /**
477
     * Creates a {@link FeaturePagingHelper} to paginate data from a
478
     * {@link FeatureStore}.
479
     *
480
     * @param featureStore to get the {@link Feature}s from
481
     * @param pageSize the page size
482
     * @return a {@link FeaturePagingHelper}
483
     * @throws BaseException if there is an error creating the helper
484
     */
485
    public FeaturePagingHelper createFeaturePagingHelper(
486
            FeatureStore featureStore, int pageSize) throws BaseException;
487

    
488
    /**
489
     * Creates a {@link FeaturePagingHelper} to paginate data from a
490
     * {@link FeatureStore}.
491
     *
492
     * @param featureStore to get the {@link Feature}s from
493
     * @param featureQuery to filter and/or order the data
494
     * @param pageSize the page size
495
     * @return a {@link FeaturePagingHelper}
496
     * @throws BaseException if there is an error creating the helper
497
     */
498
    public FeaturePagingHelper createFeaturePagingHelper(
499
            FeatureStore featureStore, FeatureQuery featureQuery, int pageSize)
500
            throws BaseException;
501

    
502
    public void setOpenErrorHandler(OpenErrorHandler handler);
503

    
504
    public OpenErrorHandler getOpenErrorHandler();
505

    
506
    public DataStoreProviderFactory getStoreProviderFactory(String name);
507

    
508
    public EditableFeatureType createFeatureType();
509
    
510
    public EditableFeatureType createFeatureType(JsonObject json);
511

    
512
    public DataServerExplorerPool getDataServerExplorerPool();
513

    
514
    public void setDataServerExplorerPool(DataServerExplorerPool pool);
515

    
516
    public void setResourcesLoader(ClassLoader loader);
517

    
518
    public void setResourcesLoader(File folder);
519

    
520
    /**
521
     * Return a list of the DataTypes supported for the type of the feature
522
     * attributes. The list is only informative.
523
     *
524
     * @return
525
     */
526
    public List<DataType> getDataTypes();
527

    
528
    public Register getStoreRegister();
529

    
530
    public Register getStoreProviderRegister();
531

    
532
    public Register getServerExplorerRegister();
533

    
534
    public Register getFeatureIndexRegister();
535

    
536
    /**
537
     * Creates a default ExpressionBuilder.
538
     *
539
     * This ExpressionBuilder is not dependent on a data source,
540
     * and is not advisable to use it.
541
     *
542
     * @return the ExpressionBuilder
543
     * @deprecated use ExpressionEvaluatorManager.createExpressionBuilder()
544
     */
545
    public ExpressionBuilder createExpressionBuilder();
546

    
547
    /**
548
         * Returns a list of String containing the names of the available cache providers.
549
         *
550
         * @return
551
         *                 list of strings with the names of the available cache providers
552
         */
553
    public List getFeatureCacheProviders();
554

    
555
        /**
556
         * Returns an instance of {@link DataServerExplorerParameters} corresponding
557
         * to the given name used by the cache to create a store to save the
558
         * retrieved data.
559
         *
560
         * @param name
561
         *            name of a registered feature cache provider
562
     * @return 
563
         *
564
         * @throws InitializeException
565
         *             if parameter initialization causes an error.
566
         *
567
         * @throws ProviderNotRegisteredException
568
         *             if could not find a cache provider by the given name.
569
         *
570
         */
571
        public DynObject createCacheParameters(String name)
572
                        throws InitializeException, ProviderNotRegisteredException;
573

    
574
    /**
575
     * @param providerName
576
     * @param params
577
     * @param overwrite
578
     * @throws DataException
579
     */
580
    public void createFileStore(String providerName, NewDataStoreParameters params, boolean overwrite) throws DataException;
581

    
582
    public FeatureSymbolTable createFeatureSymbolTable();
583
    
584
    public FeatureSymbolTable createFeatureSymbolTable(String name);
585

    
586
    public EditableFeatureAttributeDescriptor createFeatureAttributeDescriptor(String name, int type);
587
    
588
    public FeatureAttributeEmulatorExpression createFeatureAttributeEmulatorExpression(FeatureType type, Expression expression);
589

    
590
    public void registerDataProfile(DataProfile profile);
591

    
592
    public List<DataProfile> getDataProfiles();
593

    
594
    public DataProfile getDataProfile(String name);
595
    
596
    public StoresRepository getStoresRepository();
597
    
598
    public DatabaseWorkspaceManager createDatabaseWorkspaceManager(DataServerExplorerParameters connection);
599
    
600
    public void addDatabaseWorkspace(DatabaseWorkspaceManager DatabaseWorkspace);
601

    
602
    public void removeDatabaseWorkspace(DatabaseWorkspaceManager DatabaseWorkspace);
603

    
604
    public void addDatabaseWorkspaceListener(DatabaseWorkspaceManager.DatabaseWorkspaceListener listener);
605
    
606
    public DatabaseWorkspaceManager getDatabaseWorkspace(String name);
607
    
608
    public DatabaseWorkspaceManager getDatabaseWorkspace(DataStoreParameters params);
609
    
610
    public DatabaseWorkspaceManager getDatabaseWorkspace(DataServerExplorerParameters params);
611

    
612
    public void writeDALResource(ResourcesStorage resources, DataStore store);
613
    
614
    public void writeDALResource(ResourcesStorage resources, FeatureType featureType);
615

    
616
    /**
617
     * Return a 35-40 characters unique identifier.
618
     * 
619
     * @return the unique identifier
620
     */
621
    public String createUniqueID();
622

    
623
    public void clearAvailableValuesCache();
624

    
625
    public DALExpressionBuilder createDALExpressionBuilder();
626
    
627
    public boolean isTheOldRasterRegistered();
628
    
629
    public void addStoreObserver(Observer observer);
630
    
631
    public void removeStoreObserver(Observer observer);
632

    
633
    public String getServerExplorerFromStore(String name);
634
    
635
    public void setMaxSizeForSmallFeatureSelection(long size);
636

    
637
    public long getMaxSizeForSmallFeatureSelection();
638
    
639
    public void registerLargeMap(Factory factory);
640
    
641
    public void registerLargeSet(Factory factory);
642
    
643
    public Map createLargeMap();
644
    
645
    public Set createLargeSet();
646
    
647
    public DataTransaction createTransaction();
648
    
649
    public void putFeaturesInClipboard(FeatureSet set);
650
    
651
    public List<EditableFeature> getFeaturesFromClipboard(
652
            FeatureStore store, 
653
            Predicate<FeatureAttributeDescriptor> attrFilter
654
    ) throws DataException;
655

    
656
    public FeatureRuleExpression createFeatureRuleExpression();
657
    
658
    public DataFactory getStoreFactory(DataStoreParameters parameters);    
659
    
660
    public File getCacheResourcesFolder();
661
    
662
    public void clearAllCachedResources();
663
    
664
    public LabelsCacheForFieldValues createLabelsCacheForFieldValues(Invocable labelFormulaProvider, SimpleTaskStatus status);
665
    
666
    public List<FeatureType> getFeatureTypesFromDAL(byte[] daldata);
667
    
668
    public byte[] getDALBytesFromFeatureType(FeatureType ftype);
669
    
670
    public DataTypeDetector createDataTypeDetector(Locale locale);
671
}