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 |
} |