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 | 2337 | jjdelcerro | /*
|
---|---|---|---|
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 | 2401 | fdiaz | tags.set(name, manager.toObject(source, name)); |
54 | 2337 | jjdelcerro | } |
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 | } |