Revision 44871 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/impl/DefaultDataManager.java

View differences:

DefaultDataManager.java
7 7
import java.util.ArrayList;
8 8
import java.util.Collections;
9 9
import java.util.HashMap;
10
import java.util.HashSet;
10 11
import java.util.List;
11 12
import java.util.Map;
12 13
import java.util.Objects;
14
import java.util.Set;
13 15
import java.util.UUID;
14 16
import org.apache.commons.io.IOUtils;
15 17
import org.apache.commons.lang3.StringUtils;
......
30 32
import org.gvsig.fmap.dal.DataServerExplorerPool;
31 33
import org.gvsig.fmap.dal.DataStore;
32 34
import org.gvsig.fmap.dal.DataStoreFactory_v2_4;
35
import org.gvsig.fmap.dal.DataStoreNotification;
33 36
import org.gvsig.fmap.dal.DataStoreParameters;
34 37
import org.gvsig.fmap.dal.DataStoreProviderFactory;
35 38
import org.gvsig.fmap.dal.DataTypes;
......
105 108
import org.slf4j.Logger;
106 109
import org.slf4j.LoggerFactory;
107 110
import org.gvsig.fmap.dal.DatabaseWorkspaceManager.DatabaseWorkspaceListener;
111
import org.gvsig.fmap.dal.feature.FeatureStoreNotification;
112
import org.gvsig.tools.observer.Observer;
108 113

  
109 114
@SuppressWarnings("UseSpecificCatch")
110 115
public class DefaultDataManager
......
166 171
    private final Map<String, DatabaseWorkspaceManager> databaseWorkspaces = new HashMap<>();
167 172
 
168 173
    private final Map<String,DatabaseWorkspaceListener> addDatabaseWorkspaceListeners = new HashMap<>();
174

  
175
    private final Set<Observer>storeObservers = new HashSet<>();
169 176
    
170 177
    public DefaultDataManager() {
171 178
        this.registers = new Registers();
......
532 539
        DataStoreProvider provider = (DataStoreProvider) providerFactory.create(parameters, store);
533 540

  
534 541
        storeFactory.setProvider(store, provider);
542
        
543
        for (Observer storeObserver : storeObservers) {
544
          if( storeObserver!=null) {
545
            store.addObserver(storeObserver);
546
          }
547
        }
548
        if( store instanceof FeatureStoreProviderServices ) {
549
          ((FeatureStoreProviderServices) store).notifyChange(DataStoreNotification.AFTER_OPEN);
550
        }
535 551
        return store;
536 552
    }
537 553

  
554
    @Override
538 555
    public DataStore openStore(DataStoreParameters parameters, DataStoreProvider provider) {
539 556
        String storeName = this.getStoreName(parameters);
540 557
        if( StringUtils.isEmpty(storeName) ) {
......
551 568
        }
552 569
        DataStore store = (DataStore) storeFactory.create(parameters, this);
553 570
        storeFactory.setProvider(store, provider);
571
        for (Observer storeObserver : storeObservers) {
572
          if( storeObserver!=null) {
573
            store.addObserver(storeObserver);
574
          }
575
        }
576
        if( store instanceof FeatureStoreProviderServices ) {
577
          ((FeatureStoreProviderServices) store).notifyChange(DataStoreNotification.AFTER_OPEN);
578
        }
554 579
        return store;
555 580
    }
556 581
    
......
1298 1323
    return new DefaultDALExpressionBuilder();
1299 1324
  }
1300 1325

  
1326
  @Override
1327
  public void addStoreObserver(Observer observer) {
1328
    this.storeObservers.add(observer);
1329
  }
1330

  
1331
  @Override
1332
  public void removeStoreObserver(Observer observer) {
1333
    this.storeObservers.remove(observer);
1334
  }
1335
  
1301 1336
}

Also available in: Unified diff