Revision 46419

View differences:

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

  
173 173
    private ClassLoader resourcesLoader = null;
174 174

  
175
    private List<DataProfile> dataProfiles;
175
    private Map<String,DataProfile> dataProfiles;
176 176
    
177 177
    private final Map<String, DatabaseWorkspaceManager> databaseWorkspaces = new HashMap<>();
178 178
 
......
1171 1171
            return;
1172 1172
        }
1173 1173
        if( this.dataProfiles==null ) {
1174
            this.dataProfiles = new ArrayList<>();
1175
            this.dataProfiles.add(profile);
1176
            return;
1174
            this.dataProfiles = new HashMap<>();
1177 1175
        }
1178
        for (DataProfile theProfile : this.dataProfiles) {
1179
            if( theProfile.getID().equalsIgnoreCase(profile.getID()) ) {
1180
                return;
1181
            }
1182
        }
1183
        this.dataProfiles.add(profile);
1176
        this.dataProfiles.put(profile.getID().toLowerCase(), profile);
1184 1177
    }
1185 1178

  
1186 1179
    @Override
......
1188 1181
        if( this.dataProfiles==null ) {
1189 1182
            return null;
1190 1183
        }
1191
        return Collections.unmodifiableList(this.dataProfiles);
1184
        return Collections.unmodifiableList(new ArrayList<>(this.dataProfiles.values()));
1192 1185
    }
1193 1186

  
1194 1187
    @Override
......
1196 1189
        if( StringUtils.isBlank(name) ) {
1197 1190
            return null;
1198 1191
        }
1199
        for (DataProfile theProfile : this.dataProfiles) {
1200
            if( name.equalsIgnoreCase(theProfile.getName()) ) {
1201
                return theProfile;
1202
            }
1192
        if(this.dataProfiles == null){
1193
            return null;
1203 1194
        }
1204
        return null;
1195
        return this.dataProfiles.get(name.toLowerCase());
1205 1196
    }
1206 1197

  
1207 1198
    private StoresRepository storesRepository;
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/dataprofile/DataProfileText.java
20 20
    }
21 21

  
22 22
    @Override
23
    public Object createData(Object data, Tags tags) {
24
        return Objects.toString(data, null);
23
    protected Object doCreateData(Object data, Tags tags) {
24
        try {
25
            return Objects.toString(data, null);
26
        } catch (Exception ex) {
27
            LOGGER.debug("Can't create text", ex);
28
        }
29
        return null;
30

  
25 31
    }
26 32

  
27 33
    @Override
28
    public Object coerce(DataType dataType, Object data, Tags tags) throws CoercionException {
34
    protected Object doCoerce(DataType dataType, Object data, Tags tags) throws CoercionException {
29 35
        String s = Objects.toString(data, null);
30 36
        if( s == null ) {
31 37
            return null;
......
34 40
            data = dataType.coerce(s);
35 41
            return data;
36 42
        } catch(Exception ex) {
37
            throw new CoercionException("Can't convert String to "+dataType.getName(), ex);            
43
            LOGGER.debug("Can't coerce text", ex);
38 44
        }
45
        return null;
39 46
    }
40 47
    
41 48
    public static void selfRegister() {
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/dataprofile/SimpleImageDataProfile.java
1
/*
2
 * To change this license header, choose License Headers in Project Properties.
3
 * To change this template file, choose Tools | Templates
4
 * and open the template in the editor.
5
 */
6
package org.gvsig.fmap.dal.impl.dataprofile;
7

  
8
import org.gvsig.fmap.dal.DALLocator;
9
import org.gvsig.fmap.dal.DataManager;
10
import org.gvsig.fmap.dal.feature.AbstractDataProfile;
11
import org.gvsig.tools.dataTypes.CoercionException;
12
import org.gvsig.tools.dataTypes.DataType;
13
import org.gvsig.tools.dataTypes.DataTypes;
14
import org.gvsig.tools.dynobject.Tags;
15
import org.gvsig.tools.swing.api.SimpleImage;
16
import org.gvsig.tools.swing.api.ToolsSwingLocator;
17
import org.gvsig.tools.swing.api.ToolsSwingManager;
18

  
19
/**
20
 *
21
 * @author fdiaz
22
 */
23
public class SimpleImageDataProfile extends AbstractDataProfile {
24
    
25
    public SimpleImageDataProfile() {
26
        super("Image", SimpleImage.class);
27
    }
28

  
29
    @Override
30
    protected Object doCreateData(Object data, Tags tags) {
31
        try {
32
            final ToolsSwingManager toolsSwingManager = ToolsSwingLocator.getToolsSwingManager();
33
            SimpleImage image = toolsSwingManager.createSimpleImage(data);
34
            return image;
35
        } catch (Exception ex) {
36
            LOGGER.debug("Can't create image", ex);
37
        }
38
        return null;
39
    }
40

  
41
    @Override
42
    protected Object doCoerce(DataType dataType, Object data, Tags tags) throws CoercionException {
43
        final ToolsSwingManager toolsSwingManager;
44
        final SimpleImage image;
45
        try {
46
            switch (dataType.getType()) {
47
                case DataTypes.BYTEARRAY:
48
                    toolsSwingManager = ToolsSwingLocator.getToolsSwingManager();
49
                    image = toolsSwingManager.createSimpleImage(data);
50
                    return image.toBytearray();
51
                case DataTypes.STRING:
52
                    toolsSwingManager = ToolsSwingLocator.getToolsSwingManager();
53
                    image = toolsSwingManager.createSimpleImage(data);
54
                    return image.toString();
55
                default:
56
                    break;
57
            }
58
        } catch (Exception ex) {
59
            LOGGER.debug("Can't coerce image", ex);
60
        }
61
        return null;
62
    }
63
    
64
    public static void selfRegister() {
65
        DataManager dataManager = DALLocator.getDataManager();
66
        
67
        dataManager.registerDataProfile(new SimpleImageDataProfile());
68
    }
69

  
70
    
71
}
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/DALDefaultImplLibrary.java
74 74
import org.gvsig.fmap.dal.spi.DataServerExplorerPoolImpl;
75 75
import org.gvsig.fmap.dal.spi.DataStoreProviderServices;
76 76
import org.gvsig.i18n.Messages;
77
import org.gvsig.metadata.exceptions.MetadataException;
78 77
import org.gvsig.srs.SRSJsonSerializer;
79 78
import org.gvsig.tools.ToolsLocator;
80 79
import org.gvsig.tools.dynobject.DynClass;
......
156 155
        SRSJsonSerializer.selfRegister();
157 156

  
158 157
        org.gvsig.fmap.dal.impl.dataprofile.DataProfileText.selfRegister();
158
        org.gvsig.fmap.dal.impl.dataprofile.SimpleImageDataProfile.selfRegister();
159 159
        
160 160
        org.gvsig.fmap.dal.complements.relatedfeatures.RelatedFeaturesFactory.selfRegister();
161 161
        org.gvsig.fmap.dal.complements.search.SearchFactory.selfRegister();
trunk/org.gvsig.desktop/org.gvsig.desktop.compat.cdc/org.gvsig.fmap.dal/org.gvsig.fmap.dal.api/src/main/java/org/gvsig/fmap/dal/feature/AbstractDataProfile.java
1 1
package org.gvsig.fmap.dal.feature;
2 2

  
3
import org.gvsig.fmap.dal.DALLocator;
4
import org.gvsig.fmap.dal.DataManager;
5
import org.gvsig.tools.dataTypes.CoercionException;
6
import org.gvsig.tools.dataTypes.DataType;
7
import org.gvsig.tools.dynobject.Tags;
8
import org.slf4j.Logger;
9
import org.slf4j.LoggerFactory;
10

  
3 11
/**
4 12
 *
5 13
 * @author jjdelcerro
6 14
 */
7 15
public abstract class AbstractDataProfile implements DataProfile {
8 16

  
17
    protected static final Logger LOGGER = LoggerFactory.getLogger(AbstractDataProfile.class);
18

  
9 19
    private final String id;
10 20
    private final String name;
11 21
    private final Class dataClass;
22
    private final DataProfile delegated;
12 23

  
13 24
    public AbstractDataProfile(String id, String name, Class dataClass) {
14 25
        this.id = id;
15 26
        this.name = name;
16 27
        this.dataClass = dataClass;
28
        DataManager dataManager = DALLocator.getDataManager();
29
        this.delegated = dataManager.getDataProfile(id);
17 30
    }
18 31
    
19 32
    public AbstractDataProfile(String name, Class dataClass) {
......
35 48
        return this.dataClass;
36 49
    }
37 50

  
51
    @Override
52
    public Object createData(Object data, Tags tags) {
53
        Object x = this.doCreateData(data, tags);
54
        if(x == null && this.delegated != null){
55
            x = this.delegated.createData(data, tags);
56
        }
57
        return x;
58
    }
59

  
60
    protected Object doCreateData(Object data, Tags tags) {
61
        return null;
62
    }
63

  
64
    @Override
65
    public Object coerce(DataType dataType, Object value, Tags tags) throws CoercionException {
66
        Object x = this.doCoerce(dataType, value, tags);
67
        if(x == null && this.delegated != null){
68
            x = this.delegated.coerce(dataType, value, tags);
69
        }
70
        return x;
71
    }
72
    
73
    protected Object doCoerce(DataType dataType, Object value, Tags tags) throws CoercionException {
74
        return null;
75
    }
76

  
77

  
38 78
}
trunk/org.gvsig.desktop/org.gvsig.desktop.plugin/org.gvsig.app/org.gvsig.app.mainplugin/src/main/java/org/gvsig/app/extension/InitializeApplicationExtension.java
29 29
import java.io.InputStream;
30 30
import java.io.InputStreamReader;
31 31
import java.io.StringWriter;
32
import java.util.ArrayList;
33 32
import java.util.HashMap;
34
import java.util.List;
35 33
import java.util.Map;
36 34
import java.util.Objects;
37 35
import java.util.Properties;
38 36
import java.util.prefs.Preferences;
39 37
import javax.swing.JOptionPane;
40
import org.apache.commons.io.FileUtils;
41
import org.apache.commons.io.FilenameUtils;
42 38
import org.apache.commons.lang3.StringUtils;
43

  
44 39
import org.gvsig.andami.IconThemeHelper;
45 40
import org.gvsig.andami.PluginServices;
46 41
import org.gvsig.andami.PluginsLocator;
......
59 54
import org.gvsig.app.project.documents.view.gui.IView;
60 55
import org.gvsig.app.project.documents.view.toolListeners.InfoListener;
61 56
import org.gvsig.app.util.BaseOpenErrorHandler;
62
import org.gvsig.expressionevaluator.Expression;
63 57
import org.gvsig.expressionevaluator.ExpressionEvaluatorLocator;
64
import org.gvsig.expressionevaluator.ExpressionEvaluatorManager;
65 58
import org.gvsig.fmap.dal.DALLocator;
66 59
import org.gvsig.fmap.dal.DataManager;
67 60
import org.gvsig.fmap.dal.DataServerExplorerPool;
68 61
import org.gvsig.fmap.dal.DataServerExplorerPoolEntry;
69 62
import org.gvsig.fmap.dal.DatabaseWorkspaceManager;
70 63
import org.gvsig.fmap.dal.OpenErrorHandler;
71
import org.gvsig.fmap.dal.feature.AbstractDataProfile;
72 64
import org.gvsig.fmap.dal.resource.ResourceManager;
73 65
import org.gvsig.fmap.dal.resource.exception.DisposeResorceManagerException;
74 66
import static org.gvsig.fmap.dal.serverexplorer.filesystem.swing.FilesystemExplorerWizardPanelController.OPEN_LAYER_FILE_CHOOSER_ID;
......
76 68
import org.gvsig.installer.lib.api.InstallerManager;
77 69
import org.gvsig.installer.lib.api.PackageInfo;
78 70
import org.gvsig.tools.ToolsLocator;
79
import org.gvsig.tools.bookmarksandhistory.Bookmark;
80
import org.gvsig.tools.bookmarksandhistory.Bookmarks;
81
import org.gvsig.tools.bookmarksandhistory.History;
82
import org.gvsig.tools.dataTypes.CoercionException;
83
import org.gvsig.tools.dataTypes.DataType;
84
import org.gvsig.tools.dataTypes.DataTypes;
85 71
import org.gvsig.tools.dynobject.DynObject;
86
import org.gvsig.tools.dynobject.Tags;
87 72
import org.gvsig.tools.folders.FoldersManager;
88 73
import org.gvsig.tools.i18n.I18nManager;
89 74
import org.gvsig.tools.resourcesstorage.FilesResourcesStorage;
90
import org.gvsig.tools.swing.api.SimpleImage;
91
import org.gvsig.tools.swing.api.ToolsSwingLocator;
92
import org.gvsig.tools.swing.api.ToolsSwingManager;
93 75
import org.slf4j.Logger;
94 76
import org.slf4j.LoggerFactory;
95 77

  
......
106 88

  
107 89
    private OpenErrorHandler openErrorHandler = null;
108 90

  
109
    private static class SimpleImageDataProfile extends AbstractDataProfile {
110 91

  
111
        public SimpleImageDataProfile() {
112
            super("Image", SimpleImage.class);
113
        }
114

  
115
        @Override
116
        public Object createData(Object data, Tags tags) {
117
            final ToolsSwingManager toolsSwingManager = ToolsSwingLocator.getToolsSwingManager();
118
            SimpleImage image = toolsSwingManager.createSimpleImage(data);
119
            return image;
120
        }
121

  
122
        @Override
123
        public Object coerce(DataType dataType, Object data, Tags tags) throws CoercionException {
124
            final ToolsSwingManager toolsSwingManager;
125
            final SimpleImage image;
126
            try {
127
                switch (dataType.getType()) {
128
                    case DataTypes.BYTEARRAY:
129
                        toolsSwingManager = ToolsSwingLocator.getToolsSwingManager();
130
                        image = toolsSwingManager.createSimpleImage(data);
131
                        return image.toBytearray();
132
                    case DataTypes.STRING:
133
                        toolsSwingManager = ToolsSwingLocator.getToolsSwingManager();
134
                        image = toolsSwingManager.createSimpleImage(data);
135
                        return image.toString();
136
                    default:
137
                        break;
138
                }
139
            } catch (Exception ex) {
140
                throw new CoercionException("Can't convert imagen to " + dataType.getName(), ex);
141
            }
142
            throw new CoercionException("Can't convert imagen to " + dataType.getName());
143
        }
144

  
145
    }
146

  
147 92
    @Override
148 93
    public void initialize() {
149 94
        DALLocator.registerFeatureTypeDefinitionsManager(DefaultFeatureTypeDefinitionsManager.class);
150 95

  
151 96
        ExpressionEvaluatorLocator.getManager().registerClassLoader(this.getClass().getClassLoader());
152 97

  
153
        DataManager dataManager = DALLocator.getDataManager();
154
        dataManager.registerDataProfile(new SimpleImageDataProfile());
155

  
156 98
        InfoListener.initializeExtensionPoint();
157 99

  
158 100
        initLastPath();

Also available in: Unified diff