Statistics
| Revision:

gvsig-tools / org.gvsig.tools / library / trunk / org.gvsig.tools / org.gvsig.tools.util / org.gvsig.tools.util.impl / src / main / java / org / gvsig / json / serializers / TagsSerializer.java @ 2401

History | View | Annotate | Download (1.87 KB)

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.json.serializers;
7

    
8
import javax.json.JsonObject;
9
import org.gvsig.json.JsonObjectBuilder;
10
import org.gvsig.json.JsonObjectBuilderImpl;
11
import org.gvsig.tools.dynobject.Tags;
12
import org.gvsig.tools.dynobject.impl.DefaultTags;
13
import org.gvsig.tools.util.ToolsUtilLocator;
14
import org.gvsig.json.JsonManager;
15
import static org.gvsig.json.JsonManager.ATTRIBUTE_NAME_CLASS;
16
import static org.gvsig.json.serializers.DynObjectSerializer.ATTRIBUTE_NAME_DYNCLASS;
17

    
18
/**
19
 *
20
 * @author gvSIG Team
21
 */
22
public class TagsSerializer implements JsonManager.JsonSerializer {
23

    
24
    @Override
25
    public Class getObjectClass() {
26
        return DefaultTags.class;
27
    }
28

    
29
    @Override
30
    public Object toObject(JsonObject json) {
31
        Tags tags = new DefaultTags();
32
        this.addAll(tags, json);
33
        return tags;
34
    }
35

    
36
    @Override
37
    public JsonObjectBuilder toJsonBuilder(Object value) {
38
        if( value == null ) {
39
            return null;
40
        }
41
        JsonObjectBuilder objBuilder = new JsonObjectBuilderImpl();
42
        this.addAll(objBuilder, value);
43
        return objBuilder;    
44
    }
45

    
46
    public void addAll(Object target, JsonObject source) {
47
        JsonManager manager = ToolsUtilLocator.getJsonManager();
48
        Tags tags = (Tags) target;
49
        for (String name : source.keySet()) { 
50
            if( name.equals(ATTRIBUTE_NAME_CLASS) ) {
51
                continue;
52
            }
53
            tags.set(name, manager.toObject(source, name));
54
        }
55
    }
56

    
57
    private void addAll(JsonObjectBuilder target, Object source) {
58
        Tags tags = (Tags) source;
59
        target.add_class(tags);
60
        for (String name : tags) {
61
            target.add(name, tags.get(name));
62
        }
63
    }
64
    
65
}