package pt.estgp.estgweb.domain.dao.impl;
import org.apache.log4j.Logger;
import pt.estgp.estgweb.domain.*;
import pt.estgp.estgweb.domain.dao.DaoFactory;
import pt.estgp.estgweb.utils.StringsUtils;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
//TODO PRECISA DE CHAMAR UM SERVICO EM VEZ DE SER ASSIM porque esta a abrir transacoes por todo lado
//PRECISA DE SE FAZER UM CHECK A TODO O CODIGO QUE ABRE TRANSACOES FORA DOS SERVICOS
/**
* @author Jorge Machado
* @date 28/Fev/2008
* @time 2:51:06
* @see pt.estgp.estgweb.domain.dao.impl
*/
public class ConfigurationDaoImpl
extends ConfigurationDao
{
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(ConfigurationDaoImpl.
class);
private static 1.5.0/docs/api/java/lang/String.html">String cursosFicticiosBase =
"0," +
//Erasmus ESTG
"4," +
//Disciplinas Avulso ESTG
"5," +
//Disciplinas Avulso ESAE
"6," +
//Disciplinas Avulso ESE
"7," +
//Erasmus ESAE
"19," +
//Vasco da Gama
"22," +
//Disciplinas Avulso ESS
"9999";//Erasmus ESEP
public static ConfigurationDaoImpl getInstance
()
{
if (myInstance ==
null)
myInstance =
new ConfigurationDaoImpl
();
return (ConfigurationDaoImpl
) myInstance
;
}
public 1.5.0/docs/api/javax/security/auth/login/Configuration.html">Configuration load
()
{
List
<Configuration
> configs = createCriteria
().
list();
1.5.0/docs/api/javax/security/auth/login/Configuration.html">Configuration config =
null;
if(configs.
size() == 0
)
{
1.5.0/docs/api/javax/security/auth/login/Configuration.html">Configuration configuration =
new ConfigurationImpl
();
configuration.
setInterfaceImportYear("201516");
configuration.
setImportsDefaultImportYear("201516");
configuration.
setSigesWebServicesWsdl("http://172.20.100.5:8080/SigesWeb/SiGesWEB.asmx?wsdl");
configuration.
setCourseUnitEvaluationActiveYear("201415");
configuration.
setSaveDate(new 5+0%2Fdocs%2Fapi+Date">Date());
configuration.
setSigesInstitutionCode(1
);
configuration.
setCursosFicticios(cursosFicticiosBase
);
save
(configuration
);
config = configuration
;
}
else
config = configs.
get(0
);
if(config.
getCursosFicticios()==
null || config.
getCursosFicticios().
trim().
length() == 0
)
config.
setCursosFicticios(cursosFicticiosBase
);
if(config.
getConfigurationGrades() ==
null)
{
//init by default with ESTG values
ConfigurationGradesImpl grades = DomainObjectFactory.
createConfigurationGradesImpl();
grades.
create();
for(ConfigurationGradesEpocaAvaliacao epoca: grades.
getEpocasAvaliacao())
DaoFactory.
getConfigurationGradesEpocaAvaliacaoDaoImpl().
save(epoca
);
for(ConfigurationGradesStatusEpoca status: grades.
getStatusEpoca())
DaoFactory.
getConfigurationGradesStatusEpocaDaoImpl().
save(status
);
DaoFactory.
getConfigurationGradesDaoImpl().
save(grades
);
config.
setConfigurationGrades(grades
);
}
return config
;
}
public 1.5.0/docs/api/javax/security/auth/login/Configuration.html">Configuration loadSimpleConfigurationForConsult
()
{
return load
();
}
public void updateInterfaceImportYearCreateTransaction
(1.5.0/docs/api/java/lang/String.html">String importYear
)
{
getCurrentSession
().
beginTransaction();
1.5.0/docs/api/javax/security/auth/login/Configuration.html">Configuration config = load
();
config.
setInterfaceImportYear(importYear
);
getCurrentSession
().
getTransaction().
commit();
}
public void updateInterfaceImportYear
(1.5.0/docs/api/java/lang/String.html">String importYear
)
{
1.5.0/docs/api/javax/security/auth/login/Configuration.html">Configuration config = load
();
config.
setInterfaceImportYear(importYear
);
}
public void updateImportsDefaultImportYear
(1.5.0/docs/api/java/lang/String.html">String importYear
)
{
1.5.0/docs/api/javax/security/auth/login/Configuration.html">Configuration config = load
();
config.
setImportsDefaultImportYear(importYear
);
}
public void updateImportsDefaultImportYearCreateTransaction
(1.5.0/docs/api/java/lang/String.html">String importYear
)
{
getCurrentSession
().
beginTransaction();
1.5.0/docs/api/javax/security/auth/login/Configuration.html">Configuration config = load
();
config.
setImportsDefaultImportYear(importYear
);
getCurrentSession
().
getTransaction().
commit();
}
public 1.5.0/docs/api/java/lang/String.html">String getImportsDefaultImportYearCreateTransaction
()
{
getCurrentSession
().
beginTransaction();
1.5.0/docs/api/java/lang/String.html">String importYear = load
().
getImportsDefaultImportYear();
getCurrentSession
().
getTransaction().
commit();
return importYear
;
}
public 1.5.0/docs/api/java/lang/String.html">String getInterfaceImportYearCreateTransaction
()
{
getCurrentSession
().
beginTransaction();
1.5.0/docs/api/java/lang/String.html">String importYear = load
().
getInterfaceImportYear();
getCurrentSession
().
getTransaction().
commit();
return importYear
;
}
public 1.5.0/docs/api/java/lang/String.html">String getImportsDefaultImportYear
()
{
1.5.0/docs/api/java/lang/String.html">String importYear = load
().
getImportsDefaultImportYear();
return importYear
;
}
public 1.5.0/docs/api/java/lang/String.html">String getInterfaceImportYear
()
{
1.5.0/docs/api/java/lang/String.html">String importYear = load
().
getInterfaceImportYear();
return importYear
;
}
public 1.5.0/docs/api/java/lang/String.html">String getCourseUnitEvaluationActiveYear
()
{
return load
().
getCourseUnitEvaluationActiveYear();
}
public List
<String
> getCourseUnitEvaluationActiveDegrees
()
{
1.5.0/docs/api/java/lang/String.html">String degrees = load
().
getCourseUnitEvaluationActiveDegrees();
if(degrees ==
null || degrees.
trim().
length() == 0
)
return null;
List
<String
> degreesList = StringsUtils.
getStringsFromSerial(degrees,
";");
return degreesList
;
}
public List
<Long
> getCourseUnitEvaluationActiveCourseIds
()
{
1.5.0/docs/api/java/lang/String.html">String courseIds = load
().
getCourseUnitEvaluationActiveCourseIds();
if(courseIds ==
null || courseIds.
trim().
length() == 0
)
return null;
List
<Long
> courseIdsListLongs = StringsUtils.
getLongsFromSerial(courseIds,
";");
return courseIdsListLongs
;
}
public 1.5.0/docs/api/java/lang/String.html">String getCourseUnitEvaluationActiveYearCreateTransaction
()
{
getCurrentSession
().
beginTransaction();
1.5.0/docs/api/java/lang/String.html">String activeYear = getCourseUnitEvaluationActiveYear
();
getCurrentSession
().
getTransaction().
commit();
return activeYear
;
}
public List
<String
> getCourseUnitEvaluationActiveDegreesCreateTransaction
()
{
getCurrentSession
().
beginTransaction();
List
<String
> activeDegrees = getCourseUnitEvaluationActiveDegrees
();
getCurrentSession
().
getTransaction().
commit();
return activeDegrees
;
}
public List
<Long
> getCourseUnitEvaluationActiveCourseIdsCreateTransaction
()
{
getCurrentSession
().
beginTransaction();
List
<Long
> activeCourseIds = getCourseUnitEvaluationActiveCourseIds
();
getCurrentSession
().
getTransaction().
commit();
return activeCourseIds
;
}
public void updateCourseUnitEvaluationActiveYear
(1.5.0/docs/api/java/lang/String.html">String activeYear
)
{
1.5.0/docs/api/javax/security/auth/login/Configuration.html">Configuration config = load
();
config.
setCourseUnitEvaluationActiveYear(activeYear
);
}
public void updateCourseUnitEvaluationActiveDegrees
(List
<String
> activeDegrees
)
{
1.5.0/docs/api/javax/security/auth/login/Configuration.html">Configuration config = load
();
config.
setCourseUnitEvaluationActiveDegrees(StringsUtils.
getSerialStrings(activeDegrees,
";"));
}
public void updateCourseUnitEvaluationActiveCourseIds
(List
<Long
> activeCourseIds
)
{
1.5.0/docs/api/javax/security/auth/login/Configuration.html">Configuration config = load
();
config.
setCourseUnitEvaluationActiveCourseIds(StringsUtils.
getSerialLongs(activeCourseIds,
";"));
}
public void updateCourseUnitEvaluationActiveYearCreateTransaction
(1.5.0/docs/api/java/lang/String.html">String activeYear
)
{
getCurrentSession
().
beginTransaction();
updateCourseUnitEvaluationActiveYear
(activeYear
);
getCurrentSession
().
getTransaction().
commit();
}
public void updateCourseUnitEvaluationActiveDegreesCreateTransaction
(List
<String
> activeDegrees
)
{
getCurrentSession
().
beginTransaction();
updateCourseUnitEvaluationActiveDegrees
(activeDegrees
);
getCurrentSession
().
getTransaction().
commit();
}
public void updateCourseUnitEvaluationActiveCourseIdsCreateTransaction
(List
<Long
> activeCourseIds
)
{
getCurrentSession
().
beginTransaction();
updateCourseUnitEvaluationActiveCourseIds
(activeCourseIds
);
getCurrentSession
().
getTransaction().
commit();
}
/**
* Return if the course id or the degree together with import year is active
* or if the unit is specially opened for edition
* @param courseUnitId
* @return
*/
public boolean isCourseUniEvaluationActivePeriodInTransaction
(long courseUnitId
)
{
getCurrentSession
().
beginTransaction();
1.5.0/docs/api/java/lang/String.html">String activeYear = getCourseUnitEvaluationActiveYear
();
List
<String
> activeDegrees = getCourseUnitEvaluationActiveDegrees
();
List
<Long
> activeCourseIds = getCourseUnitEvaluationActiveCourseIds
();
CourseUnit cu = DaoFactory.
getCourseUnitDaoImpl().
get(courseUnitId
);
boolean isActiveYear = activeYear
!=
null && cu.
getImportYear().
equals(activeYear
);
boolean isActiveDegree = activeDegrees
!=
null && activeDegrees.
contains(cu.
getCourse().
getDegree());
boolean isActiveCourseId = activeCourseIds
!=
null && activeCourseIds.
contains(cu.
getCourse().
getId());
boolean activePeriod =
cu.
isEvaluationOpenByAdmin() ||
(isActiveYear
&& (isActiveCourseId || isActiveDegree
));
getCurrentSession
().
getTransaction().
commit();
return activePeriod
;
}
/**
* Return if the course or the degree ant import year is active
* @param courseUnitId
* @return
*/
public boolean isCourseUniEvaluationRegularActivePeriodInTransaction
(long courseUnitId
)
{
getCurrentSession
().
beginTransaction();
1.5.0/docs/api/java/lang/String.html">String activeYear = getCourseUnitEvaluationActiveYear
();
List
<String
> activeDegrees = getCourseUnitEvaluationActiveDegrees
();
List
<Long
> activeCourseIds = getCourseUnitEvaluationActiveCourseIds
();
CourseUnit cu = DaoFactory.
getCourseUnitDaoImpl().
get(courseUnitId
);
boolean isActiveYear = activeYear
!=
null && cu.
getImportYear().
equals(activeYear
);
boolean isActiveDegree = activeDegrees
!=
null && activeDegrees.
contains(cu.
getCourse().
getDegree());
boolean isActiveCourseId = activeCourseIds
!=
null && activeCourseIds.
contains(cu.
getCourse().
getId());
boolean activePeriod =
(isActiveYear
&& (isActiveCourseId || isActiveDegree
));
getCurrentSession
().
getTransaction().
commit();
return activePeriod
;
}
public 1.5.0/docs/api/java/lang/String.html">String getSigesWebServicesWsdl
()
{
return load
().
getSigesWebServicesWsdl();
}
public 1.5.0/docs/api/java/lang/String.html">String getSigesWebServicesWsdlCreateTransaction
()
{
getCurrentSession
().
beginTransaction();
1.5.0/docs/api/java/lang/String.html">String wsdl = getSigesWebServicesWsdl
();
getCurrentSession
().
getTransaction().
commit();
return wsdl
;
}
public void updateSigesWebServicesWsdl
(1.5.0/docs/api/java/lang/String.html">String wsdl
)
{
1.5.0/docs/api/javax/security/auth/login/Configuration.html">Configuration config = load
();
config.
setSigesWebServicesWsdl(wsdl
);
}
public void updateSigesWebServicesWsdlCreateTransaction
(1.5.0/docs/api/java/lang/String.html">String wsdl
)
{
getCurrentSession
().
beginTransaction();
updateSigesWebServicesWsdl
(wsdl
);
getCurrentSession
().
getTransaction().
commit();
}
public int getSigesInstitutionCode
()
{
return load
().
getSigesInstitutionCode();
}
public int getInstitutionCodeCreateTransaction
()
{
getCurrentSession
().
beginTransaction();
int code = getSigesInstitutionCode
();
getCurrentSession
().
getTransaction().
commit();
return code
;
}
public void updateSigesInstitutionCode
(int instCode
)
{
1.5.0/docs/api/javax/security/auth/login/Configuration.html">Configuration config = load
();
config.
setSigesInstitutionCode(instCode
);
}
public void updateSigesInstitutionCodeCreateTransaction
(int instCode
)
{
getCurrentSession
().
beginTransaction();
updateSigesInstitutionCode
(instCode
);
getCurrentSession
().
getTransaction().
commit();
}
public int getNationalInstitutionCode
()
{
return load
().
getNationalInstitutionCode();
}
/**
* This method only creates transaction if not already active
* @return
*/
public int getNationalInstitutionCodeCreateTransaction
()
{
//boolean alreadyActive = getCurrentSession().getTransaction().isActive();
//if(!alreadyActive)
getCurrentSession
().
beginTransaction();
int code = getNationalInstitutionCode
();
//if(!alreadyActive)
getCurrentSession
().
getTransaction().
commit();
return code
;
}
/**
* Not problematic update only for interfaces
* Will not work only in MultiWebServer environment
* in that case needs a restart
* @param instCode
*/
public void updateNationalInstitutionCode
(int instCode
)
{
1.5.0/docs/api/javax/security/auth/login/Configuration.html">Configuration config = load
();
config.
setNationalInstitutionCode(instCode
);
//Globals.NATIONAL_INSTITUTION_CODE = new BigDecimal(instCode);
}
/**
* Not problematic update only for interfaces
* Will not work only in MultiWebServer environment
* in that case needs a restart
* @param instCode
*/
public void updateNationalInstitutionCodeCreateTransaction
(int instCode
)
{
getCurrentSession
().
beginTransaction();
updateNationalInstitutionCode
(instCode
);
//Globals.NATIONAL_INSTITUTION_CODE = new BigDecimal(instCode);
getCurrentSession
().
getTransaction().
commit();
}
public 1.5.0/docs/api/java/lang/Integer.html">Integer[] getCursosFicticios
() {
1.5.0/docs/api/javax/security/auth/login/Configuration.html">Configuration config = load
();
1.5.0/docs/api/java/lang/String.html">String[] cursosCodes = config.
getCursosFicticios().
split(",");
List
<Integer
> cursosFicticios =
new ArrayList
<Integer
>();
for(1.5.0/docs/api/java/lang/String.html">String c: cursosCodes
)
{
try{
cursosFicticios.
add(new 1.5.0/docs/api/java/lang/Integer.html">Integer(c
));
}catch(1.5.0/docs/api/java/lang/Exception.html">Exception e
)
{
logger.
error("ERRO CURSO FICTICIO ERRADO: " + c
);
}
}
1.5.0/docs/api/java/lang/Integer.html">Integer[] cursos =
new 1.5.0/docs/api/java/lang/Integer.html">Integer[cursosFicticios.
size()];
for(int i=
0; i
< cursos.
length;i++
)
{
cursos
[i
] = cursosFicticios.
get(i
);
}
return cursos
;
}
public 1.5.0/docs/api/java/lang/Integer.html">Integer[] getCursosFicticiosCreateTransaction
() {
getCurrentSession
().
beginTransaction();
1.5.0/docs/api/java/lang/Integer.html">Integer[] cursos = getCursosFicticios
();
getCurrentSession
().
getTransaction().
commit();
return cursos
;
}
public void setCursosFicticios
(1.5.0/docs/api/java/lang/String.html">String cursos
)
{
1.5.0/docs/api/javax/security/auth/login/Configuration.html">Configuration config = load
();
config.
setCursosFicticios(cursos
);
}
public void setCursosFicticiosCreateTransaction
(1.5.0/docs/api/java/lang/String.html">String cursos
)
{
getCurrentSession
().
beginTransaction();
setCursosFicticios
(cursos
);
getCurrentSession
().
getTransaction().
commit();
}
}