Revision 42609 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
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 |
} |
Also available in: Unified diff