Subversion Repositories bacoAlunos

Rev

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
}