Revision 43020 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/DefaultFeatureStore.java

View differences:

DefaultFeatureStore.java
24 24

  
25 25
package org.gvsig.fmap.dal.feature.impl;
26 26

  
27
import org.gvsig.fmap.dal.feature.spi.SQLBuilderBase;
27 28
import java.util.ArrayList;
28 29
import java.util.Collection;
29 30
import java.util.Collections;
......
44 45
import org.gvsig.fmap.dal.DataStore;
45 46
import org.gvsig.fmap.dal.DataStoreNotification;
46 47
import org.gvsig.fmap.dal.DataStoreParameters;
48
import org.gvsig.fmap.dal.ExpressionBuilder;
47 49
import org.gvsig.fmap.dal.exception.CloneException;
48 50
import org.gvsig.fmap.dal.exception.CloseException;
49 51
import org.gvsig.fmap.dal.exception.CreateException;
......
71 73
import org.gvsig.fmap.dal.feature.FeatureStoreTransforms;
72 74
import org.gvsig.fmap.dal.feature.FeatureType;
73 75
import org.gvsig.fmap.dal.feature.NewFeatureStoreParameters;
76
import org.gvsig.fmap.dal.SQLBuilder;
74 77
import org.gvsig.fmap.dal.feature.exception.AlreadyEditingException;
75 78
import org.gvsig.fmap.dal.feature.exception.ConcurrentDataModificationException;
76 79
import org.gvsig.fmap.dal.feature.exception.CreateFeatureException;
......
108 111
import org.gvsig.fmap.dal.feature.spi.FeatureReferenceProviderServices;
109 112
import org.gvsig.fmap.dal.feature.spi.FeatureStoreProvider;
110 113
import org.gvsig.fmap.dal.feature.spi.FeatureStoreProviderServices;
114
import org.gvsig.fmap.dal.feature.spi.FeatureStoreProvider_v2;
111 115
import org.gvsig.fmap.dal.feature.spi.cache.FeatureCacheProvider;
112 116
import org.gvsig.fmap.dal.feature.spi.index.FeatureIndexProviderServices;
113 117
import org.gvsig.fmap.dal.impl.DefaultDataManager;
114 118
import org.gvsig.fmap.dal.resource.Resource;
115
import org.gvsig.fmap.dal.spi.DataStoreInitializer;
119
import org.gvsig.fmap.dal.spi.DataStoreInitializer2;
116 120
import org.gvsig.fmap.dal.spi.DataStoreProvider;
121
import org.gvsig.fmap.dal.spi.DataStoreProviderServices;
117 122
import org.gvsig.fmap.geom.primitive.Envelope;
118 123
import org.gvsig.metadata.MetadataLocator;
119 124
import org.gvsig.metadata.MetadataManager;
......
147 152
import org.slf4j.LoggerFactory;
148 153

  
149 154
public class DefaultFeatureStore extends AbstractDisposable implements
150
    DataStoreInitializer, FeatureStoreProviderServices, FeatureStore, Observer {
155
    DataStoreInitializer2, FeatureStoreProviderServices, FeatureStore, Observer {
151 156

  
152 157
    private static final Logger LOG = LoggerFactory
153 158
        .getLogger(DefaultFeatureStore.class);
......
205 210

  
206 211
    }
207 212

  
208
    public void intializePhase1(DataManager dataManager,
213
    @Override
214
    public void intialize(DataManager dataManager,
209 215
        DataStoreParameters parameters) throws InitializeException {
210 216

  
211 217
        DynObjectManager dynManager = ToolsLocator.getDynObjectManager();
212 218

  
213
        this.metadata =
214
            (DelegatedDynObject) dynManager.createDynObject(
215
                METADATA_DEFINITION_NAME, MetadataManager.METADATA_NAMESPACE);
219
        this.metadata = (DelegatedDynObject) dynManager.createDynObject(
220
            FeatureStore.METADATA_DEFINITION_NAME, 
221
            MetadataManager.METADATA_NAMESPACE
222
        );
216 223

  
217 224
        this.dataManager = (DefaultDataManager) dataManager;
218 225

  
......
226 233

  
227 234
    }
228 235

  
229
    public void intializePhase2(DataStoreProvider provider) {
236
    @Override
237
    public void setProvider(org.gvsig.fmap.dal.DataStoreProvider provider) {
230 238
        this.provider = (FeatureStoreProvider) provider;
231
        this.delegate(provider);
239
        this.delegate((DynObject) provider);
232 240
        this.metadataChildren = new HashSet();
233 241
        this.metadataChildren.add(provider);
234 242
    }
......
460 468
        DataStoreParameters params =
461 469
            (DataStoreParameters) state.get("parameters");
462 470

  
471
        DataStoreProvider prov;
463 472
        try {
464

  
465
            this.dataManager.intializeDataStore(this, params);
473
            this.intialize(this.dataManager, params);
474
            prov = this.dataManager.createProvider(
475
                    (DataStoreProviderServices) this, 
476
                    params
477
            );
478
            this.setProvider(prov);
479
            
466 480
            this.selection = (FeatureSelection) state.get("selection");
467 481
            this.transforms =
468 482
                (DefaultFeatureStoreTransforms) state.get("transforms");
......
521 535
                	 * De momento se pone este parche para apa?arlo y poder mantener compatibilidad
522 536
                	 * con proyectos antiguos (2.1 y 2.2)
523 537
                	 */
524
                	ftype = getFeatureType(provider.getName());
538
                	ftype = getFeatureType(prov.getName());
525 539
                	if(ftype == null){
526 540
                		throw new PersistenceCantFindDefaultFeatureTypeException(
527 541
                				this.getName(), defFTypeid);
......
529 543
                }
530 544
                this.defaultFeatureType = ftype;
531 545
            }
532
            LOG.info("loadFromState() {} {}.", provider.getProviderName(), parameters.toString());
546
            LOG.info("loadFromState() {} {}.", prov.getProviderName(), parameters.toString());
533 547

  
534 548
        } catch (InitializeException e) {
535 549
            throw new PersistenceException(e);
......
572 586

  
573 587
    public static void registerMetadataDefinition() throws MetadataException {
574 588
        MetadataManager manager = MetadataLocator.getMetadataManager();
575
        if (manager.getDefinition(METADATA_DEFINITION_NAME) == null) {
589
        if (manager.getDefinition(FeatureStore.METADATA_DEFINITION_NAME) == null) {
576 590
            DynStruct metadataDefinition =
577
                manager.addDefinition(METADATA_DEFINITION_NAME, null);
591
                manager.addDefinition(FeatureStore.METADATA_DEFINITION_NAME, null);
578 592
            metadataDefinition.extend(manager
579 593
                .getDefinition(DataStore.METADATA_DEFINITION_NAME));
580 594
        }
......
1470 1484
            throw new RuntimeException("Can't create the list of features.", ex);
1471 1485
        }
1472 1486
    }
1487

  
1488
    @Override
1489
    public List<Feature> getFeatures() {
1490
        return this.getFeatures(null, 500);
1491
    }
1473 1492
    
1474 1493
    public void accept(Visitor visitor) throws BaseException {
1475 1494
        FeatureSet set = getFeatureSet();
......
2134 2153
        return this;
2135 2154
    }
2136 2155

  
2137
    public void createCache(String name, DynObject parameters)
2138
        throws DataException {
2139
        cache = dataManager.createFeatureCacheProvider(name, parameters);
2140
        if (cache == null) {
2141
            throw new CreateException("FeaureCacheProvider", null);
2142
        }
2143
        cache.apply(this, provider);
2144
        provider = cache;
2156
//    public void createCache(String name, DynObject parameters)
2157
//        throws DataException {
2158
//        cache = dataManager.createFeatureCacheProvider(name, parameters);
2159
//        if (cache == null) {
2160
//            throw new CreateException("FeaureCacheProvider", null);
2161
//        }
2162
//        cache.apply(this, provider);
2163
//        provider = cache;
2164
//
2165
//        featureCount = null;
2166
//    }
2167
//
2168
//    public FeatureCache getCache() {
2169
//        return cache;
2170
//    }
2145 2171

  
2146
        featureCount = null;
2147
    }
2148

  
2149
    public FeatureCache getCache() {
2150
        return cache;
2151
    }
2152

  
2153 2172
    public void clear() {
2154 2173
        if (metadata != null) {
2155 2174
            metadata.clear();
......
2234 2253
            throw new RuntimeException(ex);
2235 2254
        }
2236 2255
    }
2256

  
2257
    @Override
2258
    public ExpressionBuilder createExpressionBuilder() {
2259
        if( this.provider instanceof FeatureStoreProvider_v2 ) {
2260
            return ((FeatureStoreProvider_v2)this.provider).createExpressionBuilder();
2261
        }
2262
        return new SQLBuilderBase();
2263
    }
2237 2264
    
2238 2265
}

Also available in: Unified diff