package pt.estgp.estgweb.services.courses.coursereport.documentmodel.courseunitreport;
import com.owlike.genson.Genson;
import com.owlike.genson.GensonBuilder;
import org.json.JSONException;
import org.json.JSONObject;
import pt.estgp.estgweb.domain.CourseUnitEvaluation;
import pt.estgp.estgweb.domain.CourseUnitEvaluationImpl;
import pt.estgp.estgweb.domain.utils.JsonView;
import pt.estgp.estgweb.services.courses.coursereport.documentmodel.courseunitreport.components.ReportTeacher;
import pt.estgp.estgweb.utils.documentBuilder.DocumentSection;
import java.util.Date;
import java.util.List;
/**
* Created by jorgemachado on 14/10/17.
*/
public class CourseUnitSection
extends DocumentSection
implements JsonView
{
private long courseUnitId
;
private 1.5.0/docs/api/java/lang/String.html">String name
;
private 1.5.0/docs/api/java/lang/String.html">String sigesCode
;
private 1.5.0/docs/api/java/lang/String.html">String period
;
private ReportTeacher responsableTeacher
;
private int anoPlano
;
private List
<ReportTeacher
> teachers
;
private CourseUnitEvaluationImpl courseUnitEvaluation
;
public CourseUnitSection
()
{
}
public CourseUnitSection
(long courseUnitId,
1.5.0/docs/api/java/lang/String.html">String courseUnitName,
1.5.0/docs/api/java/lang/String.html">String sigesCode,
int anoPlano,
1.5.0/docs/api/java/lang/String.html">String period,
ReportTeacher responsableTeacher,
List
<ReportTeacher
> teachers,
CourseUnitEvaluationImpl courseUnitEvaluation
) {
this.
courseUnitId = courseUnitId
;
this.
name = courseUnitName
;
this.
sigesCode = sigesCode
;
this.
anoPlano = anoPlano
;
this.
period = period
;
this.
responsableTeacher = responsableTeacher
;
this.
teachers = teachers
;
this.
courseUnitEvaluation = courseUnitEvaluation
;
super.
setTitle(courseUnitName
);
}
public long getCourseUnitId
() {
return courseUnitId
;
}
public void setCourseUnitId
(long courseUnitId
) {
this.
courseUnitId = courseUnitId
;
}
public 1.5.0/docs/api/java/lang/String.html">String getPeriod
() { return period
; }
public void setPeriod
(1.5.0/docs/api/java/lang/String.html">String period
) { this.
period = period
; }
public 1.5.0/docs/api/java/lang/String.html">String getName
() {
return name
;
}
public void setName
(1.5.0/docs/api/java/lang/String.html">String name
) {
this.
name = name
;
}
public 1.5.0/docs/api/java/lang/String.html">String getSigesCode
() {
return sigesCode
;
}
public void setSigesCode
(1.5.0/docs/api/java/lang/String.html">String sigesCode
) {
this.
sigesCode = sigesCode
;
}
public ReportTeacher getResponsableTeacher
() {
return responsableTeacher
;
}
public void setResponsableTeacher
(ReportTeacher responsableTeacher
) {
this.
responsableTeacher = responsableTeacher
;
}
public List
<ReportTeacher
> getTeachers
() {
return teachers
;
}
public void setTeachers
(List
<ReportTeacher
> teachers
) {
this.
teachers = teachers
;
}
public CourseUnitEvaluation getCourseUnitEvaluation
() {
return courseUnitEvaluation
;
}
public void setCourseUnitEvaluation
(CourseUnitEvaluationImpl courseUnitEvaluation
) {
this.
courseUnitEvaluation = courseUnitEvaluation
;
}
public int getAnoPlano
() {
return anoPlano
;
}
public void setAnoPlano
(int anoPlano
) {
this.
anoPlano = anoPlano
;
}
private static Genson gensonGenericLoad
;
static{
gensonGenericLoad =
new GensonBuilder
()
.
useMethods(true)
.
useFields(true)
.
useRuntimeType(true)
.
useClassMetadata(true)
.
useDateAsTimestamp(true)
.
exclude(1.5.0/docs/api/java/lang/Class.html">Class.
class)
.
exclude(5+0%2Fdocs%2Fapi+Date">Date.
class)
.
exclude(java.
sql.
5+0%2Fdocs%2Fapi+Timestamp">Timestamp.
class)
.
exclude(java.
sql.
5+0%2Fdocs%2Fapi+Date">Date.
class)
.
create();
}
public static CourseUnitSection fromJson
(1.5.0/docs/api/java/lang/String.html">String json
)
{
return gensonGenericLoad.
deserialize(json,CourseUnitSection.
class);
}
public static CourseUnitSection
[] fromJsonArray
(1.5.0/docs/api/java/lang/String.html">String jsonArray
)
{
return gensonGenericLoad.
deserialize(jsonArray,CourseUnitSection
[].
class);
}
public List
<String
> getJsonExcludedProperties
() {
return null;
}
/**
* Generic Json Object only for local class methods
* @return
* @throws org.json.JSONException
*/
public JSONObject toJsonObject
() throws JSONException
{
return new JSONObject
(toJson
());
}
/**
* * Generic Json Object only for local class methods
* @return
* @throws java.io.IOException
*/
public 1.5.0/docs/api/java/lang/String.html">String toJson
()
{
return gensonGenericLoad.
serialize(this);
}
}