package pt.estgp.estgweb.services.courseunits;
import pt.utl.ist.berserk.logic.serviceManager.IService;
import pt.estgp.estgweb.domain.*;
import pt.estgp.estgweb.domain.dao.DaoFactory;
import pt.estgp.estgweb.services.expceptions.ServiceException;
import pt.estgp.estgweb.services.data.RepositoryService;
import pt.estgp.estgweb.services.data.IRepositoryFile;
import pt.estgp.estgweb.utils.DatesUtils;
import pt.estgp.estgweb.Globals;
import org.apache.log4j.Logger;
import jomm.utils.BytesUtils;
import jomm.utils.StringsUtils;
import jomm.utils.FilesUtils;
import jomm.utils.TemplateUtils;
import jomm.dao.impl.AbstractDao;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.util.List;
import java.util.ArrayList;
import java.text.MessageFormat;
/*
* @author Goncalo Luiz gedl [AT] rnl [DOT] ist [DOT] utl [DOT] pt
*
*
* Created at 17/Out/2003 , 23:45:24
*
*/
/**
* @author Jorge Machado
* <p/>
* <p/>
* Created at 17/Out/2003 , 23:45:24
*/
public class CreateCourseUnitWorksBackupService
implements IService
{
private RepositoryService repositoryService =
new RepositoryService
();
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(CreateCourseUnitWorksBackupService.
class);
public 1.5.0/docs/api/java/lang/String.html">String createSystemActualYearBackup
(1.5.0/docs/api/java/lang/String.html">String importYear, UserSession userSession
) throws ServiceException
{
return createSystemImportYearBackup
(DaoFactory.
getConfigurationDaoImpl().
getInterfaceImportYear(),userSession
);
}
public 1.5.0/docs/api/java/lang/String.html">String createSystemImportYearBackup
(1.5.0/docs/api/java/lang/String.html">String importYear, UserSession userSession
) throws ServiceException
{
if (importYear ==
null || importYear.
trim().
length() == 0
)
importYear = DaoFactory.
getConfigurationDaoImpl().
getInterfaceImportYear();
1.5.0/docs/api/java/lang/String.html">String tmpName = BytesUtils.
generateHexKey();
1.5.0/docs/api/java/lang/String.html">String tmpDir = Globals.
TMP_DIR +
"/" + tmpName
;
new 1.5.0/docs/api/java/io/File.html">File(tmpDir
).
mkdirs();
List
<Course
> courses = DaoFactory.
getCourseDaoImpl().
findAll(importYear
);
try
{
for (Course c : courses
)
{
createCourseBackup
(tmpDir,c,userSession
);
}
FilesUtils.
zipFolder(tmpDir, tmpDir +
".zip");
FilesUtils.
delete(tmpDir
);
return tmpName +
".zip";
}
catch (1.5.0/docs/api/java/io/IOException.html">IOException e
)
{
logger.
error(e, e
);
}
return null;
}
public 1.5.0/docs/api/java/lang/String.html">String createSystemBackup
(1.5.0/docs/api/java/lang/String.html">String importYear, UserSession userSession
) throws ServiceException
{
1.5.0/docs/api/java/lang/String.html">String tmpName = BytesUtils.
generateHexKey();
1.5.0/docs/api/java/lang/String.html">String tmpDir = Globals.
TMP_DIR +
"/" + tmpName
;
new 1.5.0/docs/api/java/io/File.html">File(tmpDir
).
mkdirs();
List
<Course
> courses = DaoFactory.
getCourseDaoImpl().
findAll();
try
{
for (Course c : courses
)
{
createCourseBackup
(tmpDir,c,userSession
);
}
FilesUtils.
zipFolder(tmpDir, tmpDir +
".zip");
FilesUtils.
delete(tmpDir
);
return tmpName +
".zip";
}
catch (1.5.0/docs/api/java/io/IOException.html">IOException e
)
{
logger.
error(e, e
);
}
return null;
}
private void createCourseBackup
(1.5.0/docs/api/java/lang/String.html">String tmpDir, Course c, UserSession userSession
)
{
1.5.0/docs/api/java/lang/String.html">String couseDirPath = tmpDir +
"/" + StringsUtils.
normalizeResourceName(c.
getName()) +
'.' + c.
getCode();
try
{
1.5.0/docs/api/java/lang/String.html">String importYearIntranet = DatesUtils.
getImportYearIntranet(c.
getImportYear());
1.5.0/docs/api/java/lang/String.html">String courseImportYearPath = couseDirPath +
"/" + importYearIntranet
;
1.5.0/docs/api/java/io/File.html">File courseImportYearDir =
new 1.5.0/docs/api/java/io/File.html">File(courseImportYearPath
);
courseImportYearDir.
mkdirs();
List
<CourseUnit
> courseUnits = DaoFactory.
getCourseUnitDaoImpl().
loadByCourse(c.
getId(), c.
getImportYear());
for (CourseUnit courseUnit : courseUnits
)
{
1.5.0/docs/api/java/lang/String.html">String semestre
;
if (courseUnit.
getSemestre().
equals("S1"))
{
semestre = Globals.
INTRANET_SEMESTRE_S1;
}
else if(courseUnit.
getSemestre().
equals("S2"))
{
semestre = Globals.
INTRANET_SEMESTRE_S2;
}
else
{
semestre = Globals.
INTRANET_SEMESTRE_A;
}
1.5.0/docs/api/java/lang/String.html">String normalizedName = StringsUtils.
normalizeResourceName(courseUnit.
getName());
1.5.0/docs/api/java/lang/String.html">String unitPath = courseImportYearPath +
"/" + semestre +
"/" + normalizedName
;
copyProgram
(courseUnit,unitPath,userSession
);
new CreateCourseUnitXML
().
run(unitPath+
"/desc.xml",courseUnit,userSession
);
for (CourseUnitAssignement assignement : courseUnit.
getAssignements())
{
1.5.0/docs/api/java/lang/String.html">String assignementDir = unitPath +
"/assignement" + assignement.
getId();
createAssignementCopy
(assignement, assignementDir, userSession
);
if (!assignement.
getDeliverType().
equals(Globals.
COURSEUNIT_ASSIGNEMENT_TYPE_NO_FILE) && assignement.
getDeliverables() !=
null && assignement.
getDeliverables().
size() > 0
)
{
for (CourseUnitDeliverable deliverable : assignement.
getDeliverables())
{
copyDeliverableVersions
(deliverable, assignementDir, userSession
);
}
}
}
}
}
catch (1.5.0/docs/api/java/io/IOException.html">IOException e
)
{
logger.
error(e, e
);
}
}
/**
* In case of student create a backup with student deliverables in actual year subscribed units, in case of teacher create a backup of all deliverables in actual year teached units
*
* @param userSession
* @return
* @throws ServiceException
*/
public 1.5.0/docs/api/java/lang/String.html">String createImportYearBackup
(1.5.0/docs/api/java/lang/String.html">String importYear, UserSession userSession
) throws ServiceException
{
if(importYear ==
null)
importYear = DaoFactory.
getConfigurationDaoImpl().
getInterfaceImportYear();
if (userSession.
getUser() instanceof Teacher
)
return createLoginTeacherActualYearBackup
(importYear,userSession
);
else if (userSession.
getUser() instanceof Student
)
return createLoginStudentActualYearBackup
(importYear,userSession
);
return null;
}
/**
* In case of student create a backup with student deliverables in actual year subscribed units, in case of teacher create a backup of all deliverables in actual year teached units
*
* @param userSession
* @return
* @throws ServiceException
*/
public 1.5.0/docs/api/java/lang/String.html">String createActualYearBackup
(UserSession userSession
) throws ServiceException
{
if (userSession.
getUser() instanceof Teacher
)
return createLoginTeacherActualYearBackup
(DaoFactory.
getConfigurationDaoImpl().
getInterfaceImportYear(),userSession
);
else if (userSession.
getUser() instanceof Student
)
return createLoginStudentActualYearBackup
(DaoFactory.
getConfigurationDaoImpl().
getInterfaceImportYear(), userSession
);
return null;
}
/**
* In case of student create a backup with student deliverables subscribed units, in case of teacher create a backup of all deliverables of teached units
*
* @param userSession
* @return
* @throws ServiceException
*/
public 1.5.0/docs/api/java/lang/String.html">String createBackup
(UserSession userSession
) throws ServiceException
{
if (userSession.
getUser() instanceof Teacher
)
return createLoginTeacherBackup
(userSession
);
else if (userSession.
getUser() instanceof Student
)
return createLoginStudentBackup
(userSession
);
return null;
}
public 1.5.0/docs/api/java/lang/String.html">String createProgramsBackup
(UserSession userSession
) throws ServiceException
{
if (userSession.
getUser() instanceof Teacher
)
return createLoginTeacherProgramsBackup
(userSession
);
return null;
}
public 1.5.0/docs/api/java/lang/String.html">String createLoginStudentBackup
(UserSession userSession
) throws ServiceException
{
Student s =
(Student
) userSession.
getUser();
return createStudentBackup
(s, userSession
);
}
public 1.5.0/docs/api/java/lang/String.html">String createLoginTeacherBackup
(UserSession userSession
) throws ServiceException
{
Teacher t =
(Teacher
) userSession.
getUser();
return createTeacherBackup
(t, userSession
);
}
public 1.5.0/docs/api/java/lang/String.html">String createLoginTeacherProgramsBackup
(UserSession userSession
) throws ServiceException
{
Teacher t =
(Teacher
) userSession.
getUser();
return createTeacherProgramsBackup
(t, userSession
);
}
public 1.5.0/docs/api/java/lang/String.html">String createLoginStudentActualYearBackup
(1.5.0/docs/api/java/lang/String.html">String importYear,UserSession userSession
) throws ServiceException
{
Student s =
(Student
) userSession.
getUser();
return createStudentActualYearBackup
(s,importYear, userSession
);
}
public 1.5.0/docs/api/java/lang/String.html">String createLoginTeacherActualYearBackup
(1.5.0/docs/api/java/lang/String.html">String importYear,UserSession userSession
) throws ServiceException
{
Teacher t =
(Teacher
) userSession.
getUser();
return createTeacherActualYearBackup
(t,importYear, userSession
);
}
public 1.5.0/docs/api/java/lang/String.html">String createStudentActualYearBackup
(long studentId,
1.5.0/docs/api/java/lang/String.html">String importYear, UserSession userSession
) throws ServiceException
{
Student s = DaoFactory.
getStudentDaoImpl().
get(studentId
);
return createStudentActualYearBackup
(s,importYear, userSession
);
}
public 1.5.0/docs/api/java/lang/String.html">String createTeacherActualYearBackup
(long teacherId,
1.5.0/docs/api/java/lang/String.html">String importYear, UserSession userSession
) throws ServiceException
{
Teacher t = DaoFactory.
getTeacherDaoImpl().
get(teacherId
);
return createTeacherActualYearBackup
(t,importYear, userSession
);
}
public 1.5.0/docs/api/java/lang/String.html">String createStudentBackup
(long studentId, UserSession userSession
) throws ServiceException
{
Student s = DaoFactory.
getStudentDaoImpl().
get(studentId
);
return createStudentBackup
(s, userSession
);
}
public 1.5.0/docs/api/java/lang/String.html">String createTeacherBackup
(long teacherId, UserSession userSession
) throws ServiceException
{
Teacher t = DaoFactory.
getTeacherDaoImpl().
get(teacherId
);
return createTeacherBackup
(t, userSession
);
}
public 1.5.0/docs/api/java/lang/String.html">String createTeacherProgramsBackup
(long teacherId, UserSession userSession
) throws ServiceException
{
Teacher t = DaoFactory.
getTeacherDaoImpl().
get(teacherId
);
return createTeacherProgramsBackup
(t, userSession
);
}
private 1.5.0/docs/api/java/lang/String.html">String createStudentActualYearBackup
(Student s,
1.5.0/docs/api/java/lang/String.html">String importYear, UserSession userSession
) throws ServiceException
{
List
<CourseUnit
> units = DaoFactory.
getCourseUnitDaoImpl().
loadSubscribedImportYearUnits(s.
getId(), importYear
);
if (units ==
null || units.
size() == 0
)
return null;
return createStudentBackup
(units, s, userSession
);
}
private 1.5.0/docs/api/java/lang/String.html">String createTeacherActualYearBackup
(Teacher t,
1.5.0/docs/api/java/lang/String.html">String importYear, UserSession userSession
) throws ServiceException
{
5+0%2Fdocs%2Fapi+List">List units = DaoFactory.
getCourseUnitDaoImpl().
loadTeachedImportYearUnits(t.
getId(), DaoFactory.
getConfigurationDaoImpl().
getInterfaceImportYear());
if (units ==
null || units.
size() == 0
)
return null;
return createTeacherBackup
(units, t, userSession
);
}
private 1.5.0/docs/api/java/lang/String.html">String createStudentBackup
(Student s, UserSession userSession
) throws ServiceException
{
List
<CourseUnit
> units =
new ArrayList
<CourseUnit
>(s.
getSubscribedUnits());
if (units ==
null || units.
size() == 0
)
return null;
return createStudentBackup
(units, s, userSession
);
}
private 1.5.0/docs/api/java/lang/String.html">String createTeacherBackup
(Teacher t, UserSession userSession
) throws ServiceException
{
List
<CourseUnit
> units =
new ArrayList
<CourseUnit
>(t.
getTeachedUnits());
if (units ==
null || units.
size() == 0
)
return null;
return createTeacherBackup
(units, t, userSession
);
}
private 1.5.0/docs/api/java/lang/String.html">String createTeacherProgramsBackup
(Teacher t, UserSession userSession
) throws ServiceException
{
List
<CourseUnit
> units =
new ArrayList
<CourseUnit
>(t.
getTeachedUnits());
if (units ==
null || units.
size() == 0
)
return null;
return createTeacherProgramsBackup
(units, t, userSession
);
}
private 1.5.0/docs/api/java/lang/String.html">String createStudentBackup
(List
<CourseUnit
> courseUnits, Student s, UserSession userSession
) throws ServiceException
{
1.5.0/docs/api/java/lang/String.html">String tmpName = BytesUtils.
generateHexKey();
1.5.0/docs/api/java/lang/String.html">String tmpDir = Globals.
TMP_DIR +
"/" + tmpName
;
new 1.5.0/docs/api/java/io/File.html">File(tmpDir
).
mkdirs();
try
{
try
{
for (CourseUnit courseUnit : courseUnits
)
{
1.5.0/docs/api/java/lang/String.html">String courseDirPath = tmpDir +
"/" + StringsUtils.
normalizeResourceName(courseUnit.
getCourse().
getName()) +
'.' + courseUnit.
getCourse().
getCode();
1.5.0/docs/api/java/lang/String.html">String courseImportYearPath = courseDirPath +
"/" + courseUnit.
getImportYear();
1.5.0/docs/api/java/lang/String.html">String semestre
;
if (courseUnit.
getSemestre().
equals("S1"))
{
semestre = Globals.
INTRANET_SEMESTRE_S1;
}
else if(courseUnit.
getSemestre().
equals("S2"))
{
semestre = Globals.
INTRANET_SEMESTRE_S2;
}
else
{
semestre = Globals.
INTRANET_SEMESTRE_A;
}
1.5.0/docs/api/java/lang/String.html">String normalizedName = StringsUtils.
normalizeResourceName(courseUnit.
getName());
1.5.0/docs/api/java/lang/String.html">String unitPath = courseImportYearPath +
"/" + semestre +
"/" + normalizedName
;
copyProgram
(courseUnit,unitPath,userSession
);
new CreateCourseUnitXML
().
run(unitPath+
"/desc.xml",courseUnit,userSession
);
for (CourseUnitAssignement assignement : courseUnit.
getAssignements())
{
1.5.0/docs/api/java/lang/String.html">String assignementDir = unitPath +
"/assignement" + assignement.
getId();
createAssignementCopy
(assignement, assignementDir, userSession
);
if (!assignement.
getDeliverType().
equals(Globals.
COURSEUNIT_ASSIGNEMENT_TYPE_NO_FILE) && assignement.
getDeliverables() !=
null && assignement.
getDeliverables().
size() > 0
)
{
CourseUnitDeliverable deliverable = DaoFactory.
getCourseUnitDeliverableDaoImpl().
loadDeliverable(s.
getId(), assignement.
getId());
if(deliverable
!=
null)
copyDeliverableVersions
(deliverable, assignementDir, userSession
);
}
}
}
}
catch (1.5.0/docs/api/java/io/IOException.html">IOException e
)
{
logger.
error(e, e
);
}
FilesUtils.
zipFolder(tmpDir, tmpDir +
".zip");
FilesUtils.
delete(tmpDir
);
return tmpName +
".zip";
}
catch (1.5.0/docs/api/java/io/IOException.html">IOException e
)
{
logger.
error(e, e
);
}
return null;
}
private 1.5.0/docs/api/java/lang/String.html">String createTeacherBackup
(List
<CourseUnit
> courseUnits, Teacher t, UserSession userSession
) throws ServiceException
{
1.5.0/docs/api/java/lang/String.html">String tmpName = BytesUtils.
generateHexKey();
1.5.0/docs/api/java/lang/String.html">String tmpDir = Globals.
TMP_DIR +
"/" + tmpName
;
new 1.5.0/docs/api/java/io/File.html">File(tmpDir
).
mkdirs();
try
{
try
{
for (CourseUnit courseUnit : courseUnits
)
{
1.5.0/docs/api/java/lang/String.html">String courseDirPath = tmpDir +
"/" + StringsUtils.
normalizeResourceName(courseUnit.
getCourse().
getName()) +
'.' + courseUnit.
getCourse().
getCode();
1.5.0/docs/api/java/lang/String.html">String courseImportYearPath = courseDirPath +
"/" + courseUnit.
getImportYear();
1.5.0/docs/api/java/lang/String.html">String semestre
;
if (courseUnit.
getSemestre().
equals("S1"))
{
semestre = Globals.
INTRANET_SEMESTRE_S1;
}
else if (courseUnit.
getSemestre().
equals("S2"))
{
semestre = Globals.
INTRANET_SEMESTRE_S2;
}
else
{
semestre = Globals.
INTRANET_SEMESTRE_A;
}
1.5.0/docs/api/java/lang/String.html">String normalizedName = StringsUtils.
normalizeResourceName(courseUnit.
getName());
1.5.0/docs/api/java/lang/String.html">String unitPath = courseImportYearPath +
"/" + semestre +
"/" + normalizedName
;
copyProgram
(courseUnit,unitPath,userSession
);
new CreateCourseUnitXML
().
run(unitPath+
"/desc.xml",courseUnit,userSession
);
for (CourseUnitAssignement assignement : courseUnit.
getAssignements())
{
1.5.0/docs/api/java/lang/String.html">String assignementDir = unitPath +
"/assignement" + assignement.
getId();
createAssignementCopy
(assignement, assignementDir, userSession
);
if (!assignement.
getDeliverType().
equals(Globals.
COURSEUNIT_ASSIGNEMENT_TYPE_NO_FILE) && assignement.
getDeliverables() !=
null && assignement.
getDeliverables().
size() > 0
)
{
for (CourseUnitDeliverable deliverable : assignement.
getDeliverables())
{
copyDeliverableVersions
(deliverable, assignementDir, userSession
);
}
}
}
}
}
catch (1.5.0/docs/api/java/io/IOException.html">IOException e
)
{
logger.
error(e, e
);
}
FilesUtils.
zipFolder(tmpDir, tmpDir +
".zip");
FilesUtils.
delete(tmpDir
);
return tmpName +
".zip";
}
catch (1.5.0/docs/api/java/io/IOException.html">IOException e
)
{
logger.
error(e, e
);
}
return null;
}
private 1.5.0/docs/api/java/lang/String.html">String createTeacherProgramsBackup
(List
<CourseUnit
> courseUnits, Teacher t, UserSession userSession
) throws ServiceException
{
1.5.0/docs/api/java/lang/String.html">String tmpName = BytesUtils.
generateHexKey();
1.5.0/docs/api/java/lang/String.html">String tmpDir = Globals.
TMP_DIR +
"/" + tmpName
;
new 1.5.0/docs/api/java/io/File.html">File(tmpDir
).
mkdirs();
try
{
for (CourseUnit courseUnit : courseUnits
)
{
1.5.0/docs/api/java/lang/String.html">String courseDirPath = tmpDir +
"/" + StringsUtils.
normalizeResourceName(courseUnit.
getCourse().
getName()) +
'.' + courseUnit.
getCourse().
getCode();
1.5.0/docs/api/java/lang/String.html">String courseImportYearPath = courseDirPath +
"/" + courseUnit.
getImportYear();
1.5.0/docs/api/java/lang/String.html">String semestre
;
if (courseUnit.
getSemestre().
equals("S1"))
{
semestre = Globals.
INTRANET_SEMESTRE_S1;
}
else if (courseUnit.
getSemestre().
equals("S2"))
{
semestre = Globals.
INTRANET_SEMESTRE_S2;
}
else
{
semestre = Globals.
INTRANET_SEMESTRE_A;
}
1.5.0/docs/api/java/lang/String.html">String normalizedName = StringsUtils.
normalizeResourceName(courseUnit.
getName());
1.5.0/docs/api/java/lang/String.html">String unitPath = courseImportYearPath +
"/" + semestre +
"/" + normalizedName
;
copyProgram
(courseUnit,unitPath,userSession
);
new CreateCourseUnitXML
().
run(unitPath+
"/desc.xml",courseUnit,userSession
);
/*for (CourseUnitAssignement assignement : courseUnit.getAssignements())
{
String assignementDir = unitPath + "/assignement" + assignement.getId();
createAssignementCopy(assignement, assignementDir, userSession);
if (!assignement.getDeliverType().equals(Globals.COURSEUNIT_ASSIGNEMENT_TYPE_NO_FILE) && assignement.getDeliverables() != null && assignement.getDeliverables().size() > 0)
{
for (CourseUnitDeliverable deliverable : assignement.getDeliverables())
{
copyDeliverableVersions(deliverable, assignementDir, userSession);
}
}
}*/
}
FilesUtils.
zipFolder(tmpDir, tmpDir +
".zip");
FilesUtils.
delete(tmpDir
);
return tmpName +
".zip";
}
catch (1.5.0/docs/api/java/io/IOException.html">IOException e
)
{
logger.
error(e, e
);
}
return null;
}
private void copyProgram
(CourseUnit courseUnit,
1.5.0/docs/api/java/lang/String.html">String toDir, UserSession userSession
)
{
if (courseUnit.
getProgramStreamId() !=
null && courseUnit.
getProgramStreamId().
length() > 0
)
{
1.5.0/docs/api/java/lang/String.html">String deliverDir = toDir +
"/program.zip";
new 1.5.0/docs/api/java/io/File.html">File(deliverDir
).
mkdirs();
List
<IRepositoryFile
> iRepositoryFiles = repositoryService.
loadVersions(courseUnit.
getProgramStreamId(), userSession
);
for (IRepositoryFile iRepositoryFile : iRepositoryFiles
)
{
try
{
if(iRepositoryFile.
getInput() !=
null)
FilesUtils.
copy(iRepositoryFile.
getInput(), toDir +
"/program." + iRepositoryFile.
getName());
else
logger.
error("Repository File have no candidate file version, coming null inputStream:" + iRepositoryFile.
getIdentifier());
}
catch (1.5.0/docs/api/java/io/IOException.html">IOException e
)
{
logger.
error(e, e
);
}
}
}
}
private void copyDeliverableVersions
(CourseUnitDeliverable deliverable,
1.5.0/docs/api/java/lang/String.html">String toDir, UserSession userSession
)
{
if (deliverable.
getDeliverableRepositoryStream() !=
null && deliverable.
getDeliverableRepositoryStream().
length() > 0
)
{
BytesUtils.
generateHexKey();
1.5.0/docs/api/java/lang/String.html">String studentId
;
1.5.0/docs/api/java/lang/String.html">String sigesCode
;
if(deliverable.
getStudent() !=
null)
{
studentId =
"" + deliverable.
getStudent().
getId();
sigesCode =
"" + deliverable.
getStudent().
getSigesCode();
}
else if(deliverable.
getStudentId() > 0)
{
studentId =
"" + deliverable.
getStudentId();
sigesCode =
"desconhecido" + BytesUtils.
generateHexKey();
}
else
{
sigesCode =
"desconhecido" + BytesUtils.
generateHexKey();
studentId =
"desconhecido" + BytesUtils.
generateHexKey();
}
1.5.0/docs/api/java/lang/String.html">String deliverDir = toDir +
"/deliverable" + deliverable.
getId() +
"-" + studentId +
"-numero" + sigesCode
;
new 1.5.0/docs/api/java/io/File.html">File(deliverDir
).
mkdirs();
List
<IRepositoryFile
> iRepositoryFiles = repositoryService.
loadVersions(deliverable.
getDeliverableRepositoryStream(), userSession
);
for (IRepositoryFile iRepositoryFile : iRepositoryFiles
)
{
try
{
if(iRepositoryFile.
getInput() !=
null)
FilesUtils.
copy(iRepositoryFile.
getInput(), deliverDir +
"/version" + getResourceFileName
(iRepositoryFile.
getName()));
else
logger.
error("Repository File have no candidate file version, coming null inputStream:" + iRepositoryFile.
getIdentifier());
}
catch (1.5.0/docs/api/java/io/IOException.html">IOException e
)
{
logger.
error(e, e
);
}
}
}
}
public 1.5.0/docs/api/java/lang/String.html">String getResourceFileName
(1.5.0/docs/api/java/lang/String.html">String resourceName
)
{
1.5.0/docs/api/java/lang/String.html">String extension = FilesUtils.
getExtension(resourceName
);
if (extension
!=
null)
{
resourceName = resourceName.
substring(0, resourceName.
length() - extension.
length());
}
if (extension ==
null)
extension =
".unknown";
return resourceName + extension
;
}
private void createAssignementCopy
(CourseUnitAssignement assignement,
1.5.0/docs/api/java/lang/String.html">String assignementDir, UserSession userSession
) throws 1.5.0/docs/api/java/io/IOException.html">IOException
{
1.5.0/docs/api/java/lang/String.html">String fileContent = buildAssignementTemplate
(assignement
);
new 1.5.0/docs/api/java/io/File.html">File(assignementDir
).
mkdirs();
1.5.0/docs/api/java/io/FileWriter.html">FileWriter assignementDesc =
new 1.5.0/docs/api/java/io/FileWriter.html">FileWriter(assignementDir +
"/description.txt");
assignementDesc.
write(fileContent
);
assignementDesc.
close();
if (assignement.
getRepositoryStream() !=
null && assignement.
getRepositoryStream().
length() > 0
)
{
IRepositoryFile iRepositoryFile = repositoryService.
load(assignement.
getRepositoryStream(), userSession
);
if(iRepositoryFile.
getInput() !=
null)
FilesUtils.
copy(iRepositoryFile.
getInput(), assignementDir +
"/" + getResourceFileName
(iRepositoryFile.
getName()));
else
logger.
error("Repository File have no candidate file version, coming null inputStream:" + iRepositoryFile.
getIdentifier());
}
}
public 1.5.0/docs/api/java/lang/String.html">String buildAssignementTemplate
(CourseUnitAssignement assignement
)
{
1.5.0/docs/api/java/lang/String.html">String[] args =
new 1.5.0/docs/api/java/lang/String.html">String[]
{
assignement.
getCourseUnit().
getName(),
assignement.
getTitle(),
pt.
estgp.
estgweb.
web.
utils.
DatesUtils.
getStringFromDate(assignement.
getDeliverDate()),
assignement.
getDescription()
};
1.5.0/docs/api/java/lang/String.html">String content = TemplateUtils.
getOrLoadTemplate(Globals.
TEMPLATE_ASSIGNEMENT_PATH +
"/Assignement.txt");
// Format the mail message
return 1.5.0/docs/api/java/text/MessageFormat.html">MessageFormat.
format(content, args
);
}
public static void main
(1.5.0/docs/api/java/lang/String.html">String[] args
) throws ServiceException
{
AbstractDao.
getCurrentSession().
beginTransaction();
new CreateCourseUnitWorksBackupService
().
createSystemActualYearBackup(null,
null);
AbstractDao.
getCurrentSession().
getTransaction().
commit();
}
}