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

View differences:

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