Revision 44259 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
58 58
import org.gvsig.fmap.dal.DataStoreNotification;
59 59
import org.gvsig.fmap.dal.DataStoreParameters;
60 60
import org.gvsig.fmap.dal.DataStoreProviderFactory;
61
import org.gvsig.fmap.dal.StoresRepository;
61 62
import org.gvsig.fmap.dal.exception.CloneException;
62 63
import org.gvsig.fmap.dal.exception.CloseException;
63 64
import org.gvsig.fmap.dal.exception.CreateException;
......
168 169
import org.gvsig.tools.undo.command.Command;
169 170
import org.gvsig.tools.util.HasAFile;
170 171
import org.gvsig.tools.util.ResourcesStorage;
172
import org.gvsig.tools.util.UnmodifiableBasicMap;
173
import org.gvsig.tools.util.UnmodifiableBasicSet;
174
import org.gvsig.tools.util.UnmodifiableBasicSetChained;
171 175
import org.gvsig.tools.visitor.VisitCanceledException;
172 176
import org.gvsig.tools.visitor.Visitor;
173 177

  
......
331 335
    }
332 336

  
333 337
    @Override
334
    public Iterator<DataStore> getChildren() {
338
    public UnmodifiableBasicMap<String,DataStore> getChildren() {
335 339
        return this.provider.getChildren();
336 340
    }
337 341

  
338 342
    @Override
339
    public DataStore getChild(String name) {
340
        return this.provider.getChild(name);
341
    }
342

  
343
    @Override
344
    public List<String> getChildrenNames() {
345
        List<String> names = new ArrayList<>();
346
        Iterator<DataStore> it = this.getChildren();
347
        while(it.hasNext()) {
348
            DataStore store = it.next();
349
            names.add(store.getName());
350
        }
351
        return names;
352
    }
353

  
354
    @Override
355
    public boolean hasChildren() {
356
        return this.provider.hasChildren();
357
    }
358

  
359
    @Override
360 343
    public FeatureStoreProvider getProvider() {
361 344
        return this.provider;
362 345
    }
......
2934 2917

  
2935 2918
    @Override
2936 2919
    public ExpressionBuilder createExpressionBuilder() {
2937
        ExpressionBuilder builder = null;
2938
//        if( this.provider instanceof FeatureStoreProvider_v2 ) {
2939
//            builder = ((FeatureStoreProvider_v2)this.provider).createExpression();
2940
//        }
2941
//        if( builder==null ) {
2942
            builder = ExpressionEvaluatorLocator.getManager().createExpressionBuilder();
2943
//        }
2920
        ExpressionBuilder builder;
2921
        builder = ExpressionEvaluatorLocator.getManager().createExpressionBuilder();
2944 2922
        return builder;
2945 2923
    }
2946 2924

  
......
3004 2982
    public ResourcesStorage getResourcesStorage() {
3005 2983
        return new DALResourcesStorage(this);
3006 2984
    }
2985

  
2986
    @Override
2987
    public StoresRepository getStoresRepository() {
2988
        final StoresRepository mainRepository = this.dataManager.getStoresRepository();
2989
        StoresRepository repository = new StoresRepository() {
2990
            @Override
2991
            public void add(String name, DataStoreParameters parameters) {
2992
                mainRepository.add(name, parameters);
2993
            }
2994

  
2995
            @Override
2996
            public void remove(String name) {
2997
                mainRepository.remove(name);
2998
            }
2999

  
3000
            @Override
3001
            public DataStore get(String key) {
3002
                DataStore store = getChildren().get(key);
3003
                if( store != null ) {
3004
                    return store;
3005
                }
3006
                return mainRepository.get(key);
3007
            }
3008

  
3009
            @Override
3010
            public boolean isEmpty() {
3011
                return getChildren().isEmpty() && mainRepository.isEmpty();
3012
            }
3013

  
3014
            @Override
3015
            public boolean containsKey(String key) {
3016
                return getChildren().containsKey(key) || mainRepository.containsKey(key);
3017
            }
3018

  
3019
            @Override
3020
            public Map<String, DataStore> toMap() {
3021
                return null;
3022
            }
3023

  
3024
            @Override
3025
            public int size() {
3026
                return getChildren().size()+mainRepository.size();
3027
            }
3028

  
3029
            @Override
3030
            public UnmodifiableBasicSet<String> keySet() {
3031
                UnmodifiableBasicMap<String, DataStore> children = getChildren();
3032
                if( children.isEmpty() ) {
3033
                    return mainRepository.keySet();
3034
                }
3035
                return new UnmodifiableBasicSetChained<>(
3036
                        children.keySet(), 
3037
                        mainRepository.keySet()
3038
                );
3039
            }
3040

  
3041
            @Override
3042
            public Iterator<DataStore> iterator() {
3043
                final Iterator<String> it = this.keySet().iterator();
3044
                return new Iterator<DataStore>() {
3045
                    @Override
3046
                    public boolean hasNext() {
3047
                        return it.hasNext();
3048
                    }
3049

  
3050
                    @Override
3051
                    public DataStore next() {
3052
                        String name = it.next();
3053
                        return get(name);
3054
                    }
3055
                };
3056
            }
3057
        };
3058
        return repository;
3059
    }
3007 3060
    
3008 3061
}

Also available in: Unified diff