package pt.estgp.estgweb.domain.views;
import jomm.utils.AutoFillArrayList;
import jomm.utils.StringsUtils;
import org.apache.log4j.Logger;
import pt.estgp.estgweb.Globals;
import pt.estgp.estgweb.domain.*;
import pt.estgp.estgweb.domain.dao.DaoFactory;
import pt.estgp.estgweb.web.utils.DatesUtils;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;
/**
* @author Jorge Machado
* @date 2/Mar/2008
* @time 19:34:49
* @see pt.estgp.estgweb.domain.views
*/
public class CourseView
extends DomainObjectView
{
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(CourseView.
class);
private long id
;
private 1.5.0/docs/api/java/lang/String.html">String code
;
private 1.5.0/docs/api/java/lang/String.html">String area
;
private 1.5.0/docs/api/java/lang/String.html">String name
;
private 1.5.0/docs/api/java/lang/String.html">String degree
;
private 1.5.0/docs/api/java/lang/String.html">String importYear
;
private 1.5.0/docs/api/java/lang/String.html">String description
;
private 1.5.0/docs/api/java/lang/String.html">String institutionalCode
;
private UserView coordinator
;
private UserView director
;
private List
<CourseUnitView
> courseUnits
;
private List
<CourseUnitView
> courseUnitsWithNoProgramS1
;
private List
<CourseUnitView
> courseUnitsWithProgramCheckedS1
;
private List
<CourseUnitView
> courseUnitsWithProgramNotCheckedS1
;
private List
<CourseUnitView
> courseUnitsWithNoProgramS2
;
private List
<CourseUnitView
> courseUnitsWithProgramCheckedS2
;
private List
<CourseUnitView
> courseUnitsWithProgramNotCheckedS2
;
private 1.5.0/docs/api/java/lang/String.html">String studiesPlanStreamId
;
private RepositoryFileImpl studiesPlan
;
private 1.5.0/docs/api/java/lang/String.html">String htmlResult
;
private 1.5.0/docs/api/java/lang/String.html">String cacheWebDocument
;
private 1.5.0/docs/api/java/lang/String.html">String externalSiteServer
;
private 1.5.0/docs/api/java/lang/String.html">String externalSitePath
;
private 1.5.0/docs/api/java/lang/String.html">String validationRole
;
private boolean status
;
private 1.5.0/docs/api/java/lang/String.html">String userGroupStudents
;
private Course course
;
public boolean isStatus
() {
return status
;
}
public void setStatus
(boolean status
) {
this.
status = status
;
}
public 1.5.0/docs/api/java/lang/Class.html">Class getReferenceClass
()
{
return CourseImpl.
class;
}
public 1.5.0/docs/api/java/io/Serializable.html">Serializable getSerializable
()
{
return id
;
}
public CourseView
()
{
coordinator =
new UserView
();
director =
new UserView
();
}
public CourseView
(Course course
)
{
super(course
);
init
(course,
false);
}
public CourseView
(Course course,
boolean initCourseUnits
)
{
super(course
);
init
(course, initCourseUnits
);
}
private void init
(Course course,
boolean initCourseUnits
)
{
this.
course = course
;
this.
id = course.
getId();
this.
code = course.
getCode();
this.
area = course.
getArea();
this.
name = course.
getName();
this.
degree = course.
getDegree();
this.
validationRole = course.
getValidationRole();
this.
description = course.
getDescription();
this.
importYear = course.
getImportYear();
this.
institutionalCode = course.
getInstitutionalCode();
this.
cacheWebDocument = course.
getCacheWebDocument();
this.
externalSitePath = course.
getExternalSitePath();
this.
externalSiteServer = course.
getExternalSiteServer();
this.
status = course.
isStatus();
this.
userGroupStudents = course.
getUserGroupStudents();
if(course.
getStudiesPlan() !=
null)
this.
studiesPlanStreamId = course.
getStudiesPlan();
if(course.
getCoordinator() !=
null)
coordinator =
new UserView
(course.
getCoordinator());
if(course.
getDirector() !=
null)
director =
new UserView
(course.
getDirector());
if(initCourseUnits
)
{
if(course.
getCourseUnits() !=
null)
{
courseUnits =
new ArrayList
<CourseUnitView
>();
for(CourseUnit c: course.
getCourseUnits())
{
CourseUnitView cUV =
new CourseUnitView
(c,
true,
false,
false,
false);
courseUnits.
add(cUV
);
}
}
}
}
public void persistViewInObject
(Course c
)
{
c.
setCode(code
);
c.
setArea(area
);
c.
setDegree(degree
);
c.
setDescription(description
);
c.
setImportYear(importYear
);
c.
setInstitutionalCode(institutionalCode
);
c.
setName(name
);
c.
setExternalSitePath(externalSitePath
);
c.
setExternalSiteServer(externalSiteServer
);
c.
setValidationRole(validationRole
);
c.
setStatus(status
);
c.
setUserGroupStudents(userGroupStudents
);
if(coordinator
!=
null && coordinator.
getId() > 0
)
{
Teacher u = DaoFactory.
getTeacherDaoImpl().
load(coordinator.
getId());
if(c.
getCoordinator() ==
null || c.
getCoordinator().
getId() != coordinator.
getId())
{
if(c.
getCoordinator() !=
null)
{
Teacher oldCoordinator = c.
getCoordinator();
oldCoordinator.
getCoordinatorCourses().
remove(c
);
if(oldCoordinator.
getCoordinatorCourses().
size() == 0
)
{
oldCoordinator.
removeRole(Globals.
COURSE_COORDINATOR_ROLE);
}
}
c.
setCoordinator(u
);
u.
addRole(Globals.
COURSE_COORDINATOR_ROLE);
}
}
if(director
!=
null && director.
getId() > 0
)
{
Teacher u = DaoFactory.
getTeacherDaoImpl().
load(director.
getId());
if(c.
getDirector() ==
null || c.
getDirector().
getId() != director.
getId())
{
if(c.
getDirector() !=
null)
{
Teacher oldDirector = c.
getDirector();
oldDirector.
getDirectorCourses().
remove(c
);
if(oldDirector.
getDirectorCourses().
size() == 0
)
{
oldDirector.
removeRole(Globals.
COURSE_DIRECTOR_ROLE);
}
}
c.
setDirector(u
);
u.
addRole(Globals.
COURSE_DIRECTOR_ROLE);
}
}
}
public long getId
()
{
return id
;
}
public void setId
(long id
)
{
this.
id = id
;
}
public 1.5.0/docs/api/java/lang/String.html">String getCode
()
{
return code
;
}
public void setCode
(1.5.0/docs/api/java/lang/String.html">String code
)
{
this.
code = code
;
}
public 1.5.0/docs/api/java/lang/String.html">String getArea
()
{
return area
;
}
public void setArea
(1.5.0/docs/api/java/lang/String.html">String area
)
{
this.
area = area
;
}
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 getDegree
()
{
return degree
;
}
public void setDegree
(1.5.0/docs/api/java/lang/String.html">String degree
)
{
this.
degree = degree
;
}
public 1.5.0/docs/api/java/lang/String.html">String getImportYear
()
{
return importYear
;
}
public void setImportYear
(1.5.0/docs/api/java/lang/String.html">String importYear
)
{
this.
importYear = importYear
;
}
public 1.5.0/docs/api/java/lang/String.html">String getDescription
()
{
return description
;
}
public 1.5.0/docs/api/java/lang/String.html">String getFormatedDescription
()
{
return StringsUtils.
getFormatedText(description
);
}
public void setDescription
(1.5.0/docs/api/java/lang/String.html">String description
)
{
this.
description = description
;
}
public 1.5.0/docs/api/java/lang/String.html">String getInstitutionalCode
()
{
return institutionalCode
;
}
public void setInstitutionalCode
(1.5.0/docs/api/java/lang/String.html">String institutionalCode
)
{
this.
institutionalCode = institutionalCode
;
}
public UserView getCoordinator
()
{
if(coordinator ==
null)
coordinator =
new UserView
();
return coordinator
;
}
public void setCoordinator
(UserView coordinator
)
{
this.
coordinator = coordinator
;
}
public List
<CourseUnitView
> getCourseUnits
()
{
return courseUnits
;
}
public void setCourseUnits
(List
<CourseUnitView
> courseUnits
)
{
this.
courseUnits = courseUnits
;
}
public 1.5.0/docs/api/java/lang/String.html">String getStudiesPlanStreamId
()
{
return studiesPlanStreamId
;
}
public void setStudiesPlanStreamId
(1.5.0/docs/api/java/lang/String.html">String studiesPlanStreamId
)
{
this.
studiesPlanStreamId = studiesPlanStreamId
;
}
public RepositoryFileImpl getStudiesPlan
()
{
return studiesPlan
;
}
public void setStudiesPlan
(RepositoryFileImpl studiesPlan
)
{
this.
studiesPlan = studiesPlan
;
}
public int getStudiesPlanSizeKb
()
{
if(studiesPlan
!=
null)
return studiesPlan.
getLastVersion().
getSize() /
1024;
return 0;
}
public 1.5.0/docs/api/java/lang/String.html">String getStudiesPlanDate
()
{
if(studiesPlan
!=
null)
return DatesUtils.
getStringFromDate(studiesPlan.
getLastVersion().
getSaveDate());
return "";
}
public UserView getDirector
()
{
if(director ==
null)
director =
new UserView
();
return director
;
}
public void setDirector
(UserView director
)
{
this.
director = director
;
}
public 1.5.0/docs/api/java/lang/String.html">String getHtmlResult
()
{
return htmlResult
;
}
public void setHtmlResult
(1.5.0/docs/api/java/lang/String.html">String htmlResult
)
{
this.
htmlResult = htmlResult
;
}
public 1.5.0/docs/api/java/lang/String.html">String getCacheWebDocument
()
{
return cacheWebDocument
;
}
public void setCacheWebDocument
(1.5.0/docs/api/java/lang/String.html">String cacheWebDocument
)
{
this.
cacheWebDocument = cacheWebDocument
;
}
public 1.5.0/docs/api/java/lang/String.html">String getExternalSiteServer
()
{
return externalSiteServer
;
}
public void setExternalSiteServer
(1.5.0/docs/api/java/lang/String.html">String externalSiteServer
)
{
this.
externalSiteServer = externalSiteServer
;
}
public 1.5.0/docs/api/java/lang/String.html">String getExternalSitePath
()
{
return externalSitePath
;
}
public void setExternalSitePath
(1.5.0/docs/api/java/lang/String.html">String externalSitePath
)
{
this.
externalSitePath = externalSitePath
;
}
public List
<CourseUnitView
> getCourseUnitsWithNoProgramS1
()
{
return courseUnitsWithNoProgramS1
;
}
public 1.5.0/docs/api/java/lang/String.html">String getValidationRole
() {
return validationRole
;
}
public void setValidationRole
(1.5.0/docs/api/java/lang/String.html">String validationRole
) {
this.
validationRole = validationRole
;
}
public void setCourseUnitsWithNoProgramS1
(List
<CourseUnitView
> courseUnitsWithNoProgramS1
)
{
this.
courseUnitsWithNoProgramS1 = courseUnitsWithNoProgramS1
;
}
public List
<CourseUnitView
> getCourseUnitsWithProgramCheckedS1
()
{
if(courseUnitsWithProgramCheckedS1==
null)
courseUnitsWithProgramCheckedS1 =
new AutoFillArrayList
<CourseUnitView
>(CourseUnitView.
class);
return courseUnitsWithProgramCheckedS1
;
}
public void setCourseUnitsWithProgramCheckedS1
(List
<CourseUnitView
> courseUnitsWithProgramCheckedS1
)
{
this.
courseUnitsWithProgramCheckedS1 = courseUnitsWithProgramCheckedS1
;
}
public List
<CourseUnitView
> getCourseUnitsWithProgramNotCheckedS1
()
{
if(courseUnitsWithProgramNotCheckedS1==
null)
courseUnitsWithProgramNotCheckedS1 =
new AutoFillArrayList
<CourseUnitView
>(CourseUnitView.
class);
return courseUnitsWithProgramNotCheckedS1
;
}
public void setCourseUnitsWithProgramNotCheckedS1
(List
<CourseUnitView
> courseUnitsWithProgramNotCheckedS1
)
{
this.
courseUnitsWithProgramNotCheckedS1 = courseUnitsWithProgramNotCheckedS1
;
}
public List
<CourseUnitView
> getCourseUnitsWithNoProgramS2
()
{
return courseUnitsWithNoProgramS2
;
}
public void setCourseUnitsWithNoProgramS2
(List
<CourseUnitView
> courseUnitsWithNoProgramS2
)
{
this.
courseUnitsWithNoProgramS2 = courseUnitsWithNoProgramS2
;
}
public List
<CourseUnitView
> getCourseUnitsWithProgramCheckedS2
()
{
if(courseUnitsWithProgramCheckedS2==
null)
courseUnitsWithProgramCheckedS2 =
new AutoFillArrayList
<CourseUnitView
>(CourseUnitView.
class);
return courseUnitsWithProgramCheckedS2
;
}
public void setCourseUnitsWithProgramCheckedS2
(List
<CourseUnitView
> courseUnitsWithProgramCheckedS2
)
{
this.
courseUnitsWithProgramCheckedS2 = courseUnitsWithProgramCheckedS2
;
}
public List
<CourseUnitView
> getCourseUnitsWithProgramNotCheckedS2
()
{
if(courseUnitsWithProgramNotCheckedS2==
null)
courseUnitsWithProgramNotCheckedS2 =
new AutoFillArrayList
<CourseUnitView
>(CourseUnitView.
class);
return courseUnitsWithProgramNotCheckedS2
;
}
public void setCourseUnitsWithProgramNotCheckedS2
(List
<CourseUnitView
> courseUnitsWithProgramNotCheckedS2
)
{
this.
courseUnitsWithProgramNotCheckedS2 = courseUnitsWithProgramNotCheckedS2
;
}
public 1.5.0/docs/api/java/lang/String.html">String getUserGroupStudents
() {
return userGroupStudents
;
}
public void setUserGroupStudents
(1.5.0/docs/api/java/lang/String.html">String userGroupStudents
) {
this.
userGroupStudents = userGroupStudents
;
}
}