Revision 42609
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/resource/ResourceParameters.java | ||
---|---|---|
41 | 41 |
*/ |
42 | 42 |
public String getTypeName(); |
43 | 43 |
|
44 |
public String getResurceID(); |
|
44 | 45 |
} |
45 | 46 |
|
trunk/org.gvsig.desktop/org.gvsig.desktop.compat.cdc/org.gvsig.fmap.dal/org.gvsig.fmap.dal.spi/src/main/java/org/gvsig/fmap/dal/resource/spi/MultiResourceParameters.java | ||
---|---|---|
80 | 80 |
getDelegatedDynObject().setDynValue(FIELD_NAME, name); |
81 | 81 |
} |
82 | 82 |
|
83 |
@Override |
|
84 |
public String getResurceID() { |
|
85 |
return "name=" + this.encodeIDValue(this.getName()); |
|
86 |
} |
|
87 |
|
|
83 | 88 |
/** |
84 | 89 |
* Registers the {@link DynClass} of this parameters attributes. |
85 | 90 |
* |
trunk/org.gvsig.desktop/org.gvsig.desktop.compat.cdc/org.gvsig.fmap.dal/org.gvsig.fmap.dal.spi/src/main/java/org/gvsig/fmap/dal/resource/spi/AbstractResourceParameters.java | ||
---|---|---|
23 | 23 |
*/ |
24 | 24 |
package org.gvsig.fmap.dal.resource.spi; |
25 | 25 |
|
26 |
import java.io.UnsupportedEncodingException; |
|
27 |
import java.net.URLEncoder; |
|
26 | 28 |
import org.gvsig.fmap.dal.resource.ResourceParameters; |
27 | 29 |
import org.gvsig.fmap.dal.spi.AbstractDataParameters; |
30 |
import org.gvsig.tools.dynobject.DelegatedDynObject; |
|
31 |
import org.gvsig.tools.dynobject.DynClass; |
|
32 |
import org.gvsig.tools.dynobject.DynField; |
|
28 | 33 |
|
29 | 34 |
public abstract class AbstractResourceParameters extends AbstractDataParameters |
30 | 35 |
implements ResourceParameters { |
31 | 36 |
|
37 |
@Override |
|
38 |
public String getResurceID() { |
|
39 |
DelegatedDynObject data = this.getDelegatedDynObject(); |
|
40 |
DynClass definition = data.getDynClass(); |
|
41 |
StringBuilder builder = new StringBuilder(); |
|
42 |
builder.append("_entity_="); |
|
43 |
builder.append(this.encodeIDValue(definition.getName())); |
|
44 |
for (DynField field : definition.getDynFields()) { |
|
45 |
if( !field.isContainer() ) { |
|
46 |
String name = field.getName(); |
|
47 |
Object value = data.getDynValue(name); |
|
48 |
builder.append("&"); |
|
49 |
builder.append(name); |
|
50 |
builder.append("="); |
|
51 |
if( value != null ) { |
|
52 |
builder.append(this.encodeIDValue(value.toString())); |
|
53 |
} |
|
54 |
} |
|
55 |
} |
|
56 |
return builder.toString(); |
|
57 |
} |
|
32 | 58 |
|
59 |
protected String encodeIDValue(String value) { |
|
60 |
try { |
|
61 |
return URLEncoder.encode(value, "UTF-8"); |
|
62 |
} catch (UnsupportedEncodingException ex) { |
|
63 |
// Do nothing |
|
64 |
} |
|
65 |
return value.replace("&", "%26"); |
|
66 |
} |
|
67 |
|
|
33 | 68 |
} |
trunk/org.gvsig.desktop/org.gvsig.desktop.compat.cdc/org.gvsig.fmap.dal/org.gvsig.fmap.dal.spi/src/main/java/org/gvsig/fmap/dal/feature/spi/memory/MemoryResourceParameters.java | ||
---|---|---|
71 | 71 |
return MemoryResource.NAME; |
72 | 72 |
} |
73 | 73 |
|
74 |
@Override |
|
75 |
public String getResurceID() { |
|
76 |
return "name="+this.encodeIDValue((String) this.getDynValue(FIELD_NAME)); |
|
77 |
} |
|
78 |
|
|
74 | 79 |
/** |
75 | 80 |
* Registers the DynClass related to this parameters. |
76 | 81 |
* |
trunk/org.gvsig.desktop/org.gvsig.desktop.compat.cdc/org.gvsig.fmap.dal/org.gvsig.fmap.dal.file/org.gvsig.fmap.dal.file.lib/src/main/java/org/gvsig/fmap/dal/resource/file/FileResourceParameters.java | ||
---|---|---|
83 | 83 |
} |
84 | 84 |
|
85 | 85 |
@Override |
86 |
public String getResurceID() { |
|
87 |
return "file="+this.encodeIDValue(getFile().getAbsolutePath()); |
|
88 |
} |
|
89 |
|
|
90 |
|
|
91 |
|
|
92 |
@Override |
|
86 | 93 |
public String getTypeName() { |
87 | 94 |
return FileResource.NAME; |
88 | 95 |
} |
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/resource/impl/DefaultResourceManager.java | ||
---|---|---|
301 | 301 |
throws InitializeException { |
302 | 302 |
|
303 | 303 |
try { |
304 |
String name; |
|
305 |
try { |
|
306 |
name= (String)params.getDynValue("name"); |
|
307 |
}catch (DynFieldNotFoundException nfe){ |
|
308 |
try{ |
|
309 |
File file= (File)params.getDynValue("file"); |
|
310 |
name= file.getAbsolutePath(); |
|
311 |
}catch(DynFieldNotFoundException nfe1){ |
|
312 |
throw new InitializeException(params.getTypeName(), nfe1); |
|
313 |
} |
|
314 |
} |
|
304 |
String name = params.getResurceID(); |
|
315 | 305 |
Resource res = (Resource)(this.resources.get(name)); |
316 | 306 |
if( res!=null ) { |
317 | 307 |
return (AbstractResource)res; |
318 | 308 |
} |
319 |
return addResource((AbstractResource) createResource(params));
|
|
309 |
return addResource((AbstractResource) createResource(params));
|
|
320 | 310 |
} catch (AccessResourceException e) { |
321 | 311 |
throw new InitializeException(params.getTypeName(), e); |
322 | 312 |
} |
Also available in: Unified diff