Subversion Repositories bacoAlunos

Rev

Rev 1862 | Details | Compare with Previous | 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;
1873 grupo7 5
import jomm.dao.impl.AbstractDao;
1814 jmachado 6
import org.apache.log4j.Logger;
7
import org.json.JSONException;
8
import org.json.JSONObject;
1873 grupo7 9
import pt.estgp.estgweb.domain.Course;
10
import pt.estgp.estgweb.domain.dao.DaoFactory;
1814 jmachado 11
import pt.estgp.estgweb.domain.utils.JsonView;
1830 jmachado 12
import pt.estgp.estgweb.utils.documentBuilder.Document;
13
import pt.estgp.estgweb.utils.documentBuilder.DocumentSection;
1814 jmachado 14
 
15
import java.util.Date;
16
import java.util.List;
17
 
18
/**
19
 * Created by jorgemachado on 14/10/17.
20
 */
1848 jmachado 21
public class CourseReportDocument extends 5+0%2Fdocs%2Fapi+Document">Document implements JsonView
1814 jmachado 22
{
1830 jmachado 23
 
1848 jmachado 24
    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(CourseReportDocument.class);
1814 jmachado 25
 
1873 grupo7 26
    private 1.5.0/docs/api/java/lang/String.html">String courseCode;
27
    private 1.5.0/docs/api/java/lang/String.html">String courseName;
28
    private 1.5.0/docs/api/java/lang/String.html">String year;
29
 
30
 
31
 
1848 jmachado 32
    public CourseReportDocument()
1830 jmachado 33
    {
1814 jmachado 34
 
35
    }
36
 
1873 grupo7 37
    public 1.5.0/docs/api/java/lang/String.html">String getCourseCode() {
38
        return courseCode;
39
    }
40
 
41
    public void setCourseCode(1.5.0/docs/api/java/lang/String.html">String courseCode) {
42
        this.courseCode = courseCode;
43
    }
44
 
45
    public 1.5.0/docs/api/java/lang/String.html">String getCourseName() {
46
        return courseName;
47
    }
48
 
49
    public void setCourseName(1.5.0/docs/api/java/lang/String.html">String courseName) {
50
        this.courseName = courseName;
51
    }
52
 
53
    public 1.5.0/docs/api/java/lang/String.html">String getYear() {
54
        return year;
55
    }
56
 
57
    public void setYear(1.5.0/docs/api/java/lang/String.html">String year) {
58
        this.year = year;
59
    }
60
 
61
    public void init(Course c,1.5.0/docs/api/java/lang/String.html">String year)
1830 jmachado 62
    {
1873 grupo7 63
        setYear(year);
64
        setCourseCode(c.getCode());
65
        setCourseName(c.getName());
1830 jmachado 66
 
67
        //1 - Introducao
68
        IntroSection introSection = new IntroSection();
69
        introSection.init();
1873 grupo7 70
 
1830 jmachado 71
        getSections().add(introSection);
72
 
73
        //2 - Mapa Sintese dos Relatórios dos Responsáveis das UC's
74
        ReportsUcSummarySection reportsUcSummarySection = new ReportsUcSummarySection();
75
        reportsUcSummarySection.init();
76
        getSections().add(reportsUcSummarySection);
77
 
78
        //3 - Resultados da Aprendizagem
79
        LearningResultsSection learningResultsSection = new LearningResultsSection();
80
        learningResultsSection.init();
81
        getSections().add(learningResultsSection);
82
 
83
        //4 - Inquéritos
84
        SurveysSection surveysSection = new SurveysSection();
85
        surveysSection.init();
86
        getSections().add(surveysSection);
87
 
88
        //5 - Conclusões
89
        ConclusionsSection conclusionsSection = new ConclusionsSection();
90
        conclusionsSection.init();
91
        getSections().add(conclusionsSection);
92
 
93
        //5 - Unidades Curriculares
94
        CourseUnitsReportsSection courseUnitsReportsSection = new CourseUnitsReportsSection();
95
        courseUnitsReportsSection.init();
96
        getSections().add(courseUnitsReportsSection);
1814 jmachado 97
    }
98
 
99
 
1830 jmachado 100
 
101
    public DocumentSection findDocumentSection(1.5.0/docs/api/java/lang/Class.html">Class sectionClass)
102
    {
103
        if(getSections() != null)
104
            for(DocumentSection section: getSections())
105
            {
106
                if(section.getClass().equals(sectionClass))
107
                {
108
                    return section;
109
                }
110
            }
111
        return null;
112
    }
113
 
114
 
115
 
116
 
117
 
1814 jmachado 118
    private static Genson gensonGenericLoad;
119
    static{
120
        gensonGenericLoad = new GensonBuilder()
1830 jmachado 121
                .useMethods(true)
122
                .useFields(true)
123
                .useRuntimeType(true) //para ignorar a CGLIB do courseUnitEvaluation
1814 jmachado 124
                .useClassMetadata(true)
125
                .useDateAsTimestamp(true)
1830 jmachado 126
                .exclude(1.5.0/docs/api/java/lang/Class.html">Class.class)
1814 jmachado 127
                .exclude(5+0%2Fdocs%2Fapi+Date">Date.class)
128
                .exclude(java.sql.5+0%2Fdocs%2Fapi+Timestamp">Timestamp.class)
129
                .exclude(java.sql.5+0%2Fdocs%2Fapi+Date">Date.class)
130
                .create();
131
    }
132
 
1848 jmachado 133
    public static CourseReportDocument fromJson(1.5.0/docs/api/java/lang/String.html">String json)
1814 jmachado 134
    {
1848 jmachado 135
        return gensonGenericLoad.deserialize(json,CourseReportDocument.class);
1814 jmachado 136
    }
137
 
138
 
139
 
140
    public List<String> getJsonExcludedProperties() {
141
        return null;
142
    }
143
 
144
    /**
145
     * Generic Json Object only for local class methods
146
     * @return
1830 jmachado 147
     * @throws org.json.JSONException
1814 jmachado 148
     */
149
    public JSONObject toJsonObject() throws JSONException
150
    {
151
        return new JSONObject(toJson());
152
    }
153
 
154
    /**
155
     * * Generic Json Object only for local class methods
156
     * @return
157
     * @throws java.io.IOException
158
     */
159
    public 1.5.0/docs/api/java/lang/String.html">String toJson()
160
    {
161
        return gensonGenericLoad.serialize(this);
162
    }
163
 
1873 grupo7 164
    public static void main(1.5.0/docs/api/java/lang/String.html">String[] args)
165
    {
166
        CourseReportDocument d = new CourseReportDocument();
1830 jmachado 167
 
1873 grupo7 168
        AbstractDao.getCurrentSession().beginTransaction();
1830 jmachado 169
 
1873 grupo7 170
        List<Course> cursos = DaoFactory.getCourseDaoImpl().findAll();
171
 
172
 
173
        d.init(cursos.get(0),"201718");
174
 
175
        1.5.0/docs/api/java/lang/String.html">String json = d.toJson();
176
        1.5.0/docs/api/java/lang/System.html">System.out.println(json);
177
        CourseReportDocument d2 = CourseReportDocument.fromJson(json);
178
        1.5.0/docs/api/java/lang/System.html">System.out.println(d2.toJson());
179
 
180
        AbstractDao.getCurrentSession().getTransaction().commit();
181
    }
182
 
183
 
184
 
1814 jmachado 185
}