Rev 1830 | Go to most recent revision | Details | Last modification | View Log | RSS feed
Rev | Author | Line No. | Line |
---|---|---|---|
1814 | jmachado | 1 | package pt.estgp.estgweb.services.courses.coursereport.documentmodel; |
2 | |||
3 | import com.owlike.genson.Genson; |
||
4 | import com.owlike.genson.GensonBuilder; |
||
5 | import org.apache.log4j.Logger; |
||
6 | import org.json.JSONException; |
||
7 | import org.json.JSONObject; |
||
8 | import pt.estgp.estgweb.domain.utils.JsonView; |
||
9 | |||
10 | import java.util.ArrayList; |
||
11 | import java.util.Date; |
||
12 | import java.util.List; |
||
13 | |||
14 | /** |
||
15 | * Created by jorgemachado on 14/10/17. |
||
16 | */ |
||
17 | public class ReportCourseDocument implements JsonView |
||
18 | { |
||
19 | private static final 1.5.0/docs/api/java/util/logging/Logger.html">Logger logger = 1.5.0/docs/api/java/util/logging/Logger.html">Logger.getLogger(ReportCourseDocument.class); |
||
20 | |||
21 | List<CourseUnitSection> courseUnitSections = new ArrayList<CourseUnitSection>(); |
||
22 | |||
23 | public List<CourseUnitSection> getCourseUnitSections() { |
||
24 | return courseUnitSections; |
||
25 | } |
||
26 | |||
27 | public void setCourseUnitSections(List<CourseUnitSection> courseUnitSections) { |
||
28 | this.courseUnitSections = courseUnitSections; |
||
29 | } |
||
30 | |||
31 | |||
32 | private static Genson gensonGenericLoad; |
||
33 | static{ |
||
34 | gensonGenericLoad = new GensonBuilder() |
||
35 | //Usa ClassMetadata nos objectos contidos se houver |
||
36 | // porque no principal já foi buscar antes fazendo parse ao JSON no metodo fromJson e fazendo get("@class") |
||
37 | //porque no genson o @class tem de vir em primeiro e pode não |
||
38 | // se nos outros não vier info da class ele falha |
||
39 | .useMethods(true) //only bean proerties |
||
40 | .useFields(true) //pode existir uma var com campos publicos esses ele serializa |
||
41 | .useRuntimeType(true) |
||
42 | .useClassMetadata(true) |
||
43 | .useDateAsTimestamp(true) |
||
44 | .exclude(5+0%2Fdocs%2Fapi+Date">Date.class) |
||
45 | .exclude(java.sql.5+0%2Fdocs%2Fapi+Timestamp">Timestamp.class) |
||
46 | .exclude(java.sql.5+0%2Fdocs%2Fapi+Date">Date.class) |
||
47 | .create(); |
||
48 | } |
||
49 | |||
50 | public static ReportCourseDocument fromJson(1.5.0/docs/api/java/lang/String.html">String json) |
||
51 | { |
||
52 | return gensonGenericLoad.deserialize(json,ReportCourseDocument.class); |
||
53 | } |
||
54 | |||
55 | |||
56 | |||
57 | public List<String> getJsonExcludedProperties() { |
||
58 | return null; |
||
59 | } |
||
60 | |||
61 | /** |
||
62 | * Generic Json Object only for local class methods |
||
63 | * @return |
||
64 | * @throws JSONException |
||
65 | */ |
||
66 | public JSONObject toJsonObject() throws JSONException |
||
67 | { |
||
68 | return new JSONObject(toJson()); |
||
69 | } |
||
70 | |||
71 | /** |
||
72 | * * Generic Json Object only for local class methods |
||
73 | * @return |
||
74 | * @throws java.io.IOException |
||
75 | */ |
||
76 | public 1.5.0/docs/api/java/lang/String.html">String toJson() |
||
77 | { |
||
78 | return gensonGenericLoad.serialize(this); |
||
79 | } |
||
80 | |||
81 | } |