Revision 42775 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
27 27
import java.lang.reflect.InvocationTargetException;
28 28
import java.util.ArrayList;
29 29
import java.util.HashMap;
30
import java.util.Iterator;
30 31
import java.util.List;
31 32
import java.util.Map;
32 33

  
......
46 47
import org.gvsig.fmap.dal.exception.ProviderNotRegisteredException;
47 48
import org.gvsig.fmap.dal.exception.ValidateDataParametersException;
48 49
import org.gvsig.fmap.dal.feature.EditableFeatureType;
50
import org.gvsig.fmap.dal.feature.Feature;
49 51
import org.gvsig.fmap.dal.feature.FeatureAttributeDescriptor;
50 52
import org.gvsig.fmap.dal.feature.FeatureAttributeGetter;
51 53
import org.gvsig.fmap.dal.feature.FeatureQuery;
......
55 57
import org.gvsig.fmap.dal.feature.impl.DefaultEditableFeatureType;
56 58
import org.gvsig.fmap.dal.feature.impl.DefaultFeatureIndex;
57 59
import org.gvsig.fmap.dal.feature.impl.DefaultFeatureStore;
60
import org.gvsig.fmap.dal.feature.impl.dynobjectutils.DynObjectFeatureFacade;
58 61
import org.gvsig.fmap.dal.feature.paging.FeaturePagingHelper;
59 62
import org.gvsig.fmap.dal.feature.paging.impl.FeaturePagingHelperImpl;
60 63
import org.gvsig.fmap.dal.feature.spi.DataStoreProviderToFeatureStoreProviderFactoryWrapper;
......
78 81
import org.gvsig.tools.dataTypes.DataTypesManager;
79 82
import org.gvsig.tools.dynobject.DynObject;
80 83
import org.gvsig.tools.dynobject.DynObjectEncoder;
84
import org.gvsig.tools.dynobject.DynStruct;
85
import org.gvsig.tools.dynobject.DynStruct_v2;
86
import org.gvsig.tools.dynobject.Tags;
81 87
import org.gvsig.tools.evaluator.Evaluator;
82 88
import org.gvsig.tools.exception.BaseException;
83 89
import org.gvsig.tools.extensionpoint.ExtensionPoint;
......
979 985
    public void setDataServerExplorerPool(DataServerExplorerPool pool) {
980 986
        this.dataServerExplorerPool = pool;
981 987
    }
988

  
989
    private static final String DAL_OpenStore = "dal.openstore.";
982 990
    
983
    
991
    @Override
992
    public DataStoreParameters createStoreParameters(DynStruct struct) throws InitializeException, ProviderNotRegisteredException {
993
        if( !(struct instanceof DynStruct_v2 ) ) {
994
            throw new IllegalArgumentException("A DynStruct_v2 is required.");
995
        }
996
        Tags tags = ((DynStruct_v2)struct).getTags();
997
        String providerName = (String) tags.get(DAL_OpenStore+"provider");
998
        if( providerName == null ) {
999
            throw new IllegalArgumentException("Tag DAL.OpenStore.provider is missing in struct.");
1000
        }
1001
        int prefixlen = DAL_OpenStore.length();
1002
        DataStoreParameters parameters = this.createStoreParameters(providerName);
1003
        for( String key : tags ) {
1004
            if( key.startsWith(DAL_OpenStore) ) {
1005
                parameters.setDynValue(key.substring(prefixlen), tags.get(key));
1006
            }
1007
        }
1008
        return parameters;
1009
    }
1010

  
1011
    @Override
1012
    public DataStore openStore(DynStruct struct) throws InitializeException, ProviderNotRegisteredException, ValidateDataParametersException {
1013
        DataStoreParameters paramters = this.createStoreParameters(struct);
1014
        DataStore store = this.openStore(paramters.getDataStoreName(), paramters);
1015
        return store;
1016
    }
1017
  
984 1018
}

Also available in: Unified diff