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