Revision 2606

View differences:

org.gvsig.tools/library/trunk/org.gvsig.tools/org.gvsig.tools.util/org.gvsig.tools.util.impl/src/main/java/org/gvsig/json/JsonObjectBuilderImpl.java
14 14
import javax.json.stream.JsonGenerator;
15 15
import static org.gvsig.json.JsonManager.ATTRIBUTE_NAME_CLASS;
16 16
import org.gvsig.json.JsonManager.JsonSerializer;
17
import static org.gvsig.json.JsonManagerImpl.createSerializerKey;
17 18
import org.gvsig.tools.dynobject.DynClass;
18 19
import org.gvsig.tools.dynobject.DynField;
19 20
import org.gvsig.tools.dynobject.DynObject;
......
324 325
            this.builder.addNull(ATTRIBUTE_NAME_CLASS); 
325 326
            return this;
326 327
        }
327
        this.builder.add(ATTRIBUTE_NAME_CLASS, value.getName()); 
328
        this.builder.add(ATTRIBUTE_NAME_CLASS, createSerializerKey(value)); 
328 329
        return this;
329 330
    }
330 331

  
......
334 335
            this.add_class((Class)null);
335 336
            return this;
336 337
        }
337
        this.add_class(value.getClass());
338
        this.add_class(createSerializerKey(value.getClass()));
338 339
        return this;
339 340
    }
340 341

  
org.gvsig.tools/library/trunk/org.gvsig.tools/org.gvsig.tools.util/org.gvsig.tools.util.impl/src/main/java/org/gvsig/json/JsonManagerImpl.java
1 1
package org.gvsig.json;
2 2

  
3
import com.jayway.jsonpath.JsonPath;
4 3
import java.io.ByteArrayInputStream;
5 4
import java.io.StringWriter;
6 5
import java.math.BigDecimal;
......
20 19
import javax.json.JsonWriter;
21 20
import javax.json.JsonWriterFactory;
22 21
import javax.json.stream.JsonGenerator;
22
import org.apache.commons.codec.digest.DigestUtils;
23 23
import static org.gvsig.json.JsonManager.ATTRIBUTE_NAME_CLASS;
24 24
import org.gvsig.json.serializers.DataTypeSerializer;
25 25
import org.gvsig.json.serializers.DefaultObjectSerializer;
......
52 52
        this.dynObjectSerializer = new DynObjectSerializer();
53 53
        this.serializers1 = new HashMap<>();
54 54
        this.serializers2 = new HashMap<>();
55
        this.registerDefaultSerializers();
56
    }
57

  
58
    private void registerDefaultSerializers() {
55 59
        this.registerSerializer(new FileSerializer());
56 60
        this.registerSerializer(new UrlSerializer());
57 61
        this.registerSerializer(new UriSerializer());
......
61 65
        this.registerSerializer(new DataTypeSerializer());
62 66
//        this.registerSerializer(this.dynObjectSerializer);
63 67
    }
64

  
68
    
69
    public static String createSerializerKey(Class aClass) {
70
        String key = aClass.getName();
71
//        String key = "0-" + DigestUtils.sha256Hex(aClass.getName());
72
        return key;
73
    }
74
    
75
    public static String createSerializerKey(String className) {
76
        String key = className;
77
//        String key = "0-"+ DigestUtils.sha256Hex(className);
78
        return key;
79
    }
80
    
65 81
    @Override
66 82
    public void registerSerializer(Class<?extends SupportFromJson> theClass) {
67 83
        if (theClass == null) {
......
70 86
        if (!SupportFromJson.class.isAssignableFrom(theClass)) {
71 87
            throw new IllegalArgumentException("the class '" + theClass.getName() + "'must implement SupportFromJson");
72 88
        }
73
        this.serializers1.put(theClass.getName(), new DefaultObjectSerializer(theClass));
89
        String key = createSerializerKey(theClass);
90
        this.serializers1.put(key, new DefaultObjectSerializer(theClass));
74 91
    }
75 92

  
76 93
    @Override
77 94
    public void registerSerializer(JsonSerializer serializer) {
78
        this.serializers1.put(serializer.getObjectClass().getName(), serializer);
95
        String key = createSerializerKey(serializer.getObjectClass());
96
        this.serializers1.put(key, serializer);
79 97
        if( serializer instanceof IsApplicable ) {
80
            this.serializers2.put(serializer.getObjectClass().getName(), (IsApplicable) serializer);
98
            this.serializers2.put(key, (IsApplicable) serializer);
81 99
        }
82 100
    }
83 101

  
84 102
    @Override
85 103
    public JsonSerializer getSerializer(Object value) {
86
        JsonSerializer serializer1 = this.serializers1.get(value.getClass().getName());
104
        String key = createSerializerKey(value.getClass());
105
        JsonSerializer serializer1 = this.serializers1.get(key);
87 106
        if( serializer1!=null ) {
88 107
            return serializer1;
89 108
        }
......
101 120
    @Override
102 121
    public JsonSerializer getSerializer(JsonObject json) {
103 122
        String className = json.getString(ATTRIBUTE_NAME_CLASS, null);
104
        JsonSerializer serializer1 = this.serializers1.get(className);
123
        String key = createSerializerKey(className);
124
        JsonSerializer serializer1 = this.serializers1.get(key);
105 125
        if( serializer1!=null ) {
106 126
            return serializer1;
107 127
        }

Also available in: Unified diff