Subversion Repositories bacoAlunos

Compare Revisions

Ignore whitespace Rev 1701 → Rev 1703

/branches/v3/impl/src/java/pt/estgp/estgweb/services/courses/CoursesService.java
210,7 → 210,7
String extension = FilesUtils.getExtension(name);
if(c.getStudiesPlan() == null)
{
String identifier = repositoryService.storeRepositoryFile(stream, contentType, extension, size, name, "course.studies.plan " + c.getName(), ResourceAccessControlEnum.publicDomain,userSession);
String identifier = repositoryService.storeRepositoryFile(stream, contentType, extension, size, name, "course.studies.plan " + c.getName(), ResourceAccessControlEnum.publicDomain, null, userSession);
c.setStudiesPlan(identifier);
}
else
1192,7 → 1192,7
else
{
String oldValidationRole = c.getValidationRole();
result = new UserRoleConfigService().updateOldRoleWithView(oldValidationRole,newUserRoleConfig,userSession);
result = new UserRoleConfigService().updateOldRoleWithView(oldValidationRole, newUserRoleConfig, userSession);
}
 
 
/branches/v3/impl/src/java/pt/estgp/estgweb/services/courseunits/SaveCourseUnitProgram.java
155,7 → 155,7
}
if(cu.getProgramStreamId() == null)
{
String identifier = repositoryService.storeRepositoryFile(new FileInputStream(path), "application/pdf", "pdf",((int) new File(path).length()), cu.getCode() + ".pdf", "courseunit.program.description" + cu.getName(), ResourceAccessControlEnum.publicDomain,owner);
String identifier = repositoryService.storeRepositoryFile(new FileInputStream(path), "application/pdf", "pdf",((int) new File(path).length()), cu.getCode() + ".pdf", "courseunit.program.description" + cu.getName(), ResourceAccessControlEnum.publicDomain, null, owner);
cu.setProgramStreamId(identifier);
}
else
/branches/v3/impl/src/java/pt/estgp/estgweb/services/courseunits/SaveCourseUnitEvaluation.java
210,7 → 210,7
 
if(cu.getEvaluationStreamId() == null)
{
String identifier = repositoryService.storeRepositoryFile(new FileInputStream(path), "application/pdf", "pdf",((int) new File(path).length()), cu.getCode() + "-evaluation.pdf", "courseunit.evaluation.description" + cu.getName(), ResourceAccessControlEnum.courseunitEvaluationDomain,owner);
String identifier = repositoryService.storeRepositoryFile(new FileInputStream(path), "application/pdf", "pdf",((int) new File(path).length()), cu.getCode() + "-evaluation.pdf", "courseunit.evaluation.description" + cu.getName(), ResourceAccessControlEnum.courseunitEvaluationDomain, null, owner);
cu.setEvaluationStreamId(identifier);
}
else
/branches/v3/impl/src/java/pt/estgp/estgweb/services/courseunits/UpdateCourseUnitService.java
55,7 → 55,7
String extension = FilesUtils.getExtension(name);
if(c.getProgramStreamId() == null)
{
String identifier = repositoryService.storeRepositoryFile(stream, contentType, extension, size, name, "courseunit.program.description" + c.getName(), ResourceAccessControlEnum.publicDomain,userSession);
String identifier = repositoryService.storeRepositoryFile(stream, contentType, extension, size, name, "courseunit.program.description" + c.getName(), ResourceAccessControlEnum.publicDomain, null, userSession);
c.setProgramStreamId(identifier);
}
else
/branches/v3/impl/src/java/pt/estgp/estgweb/services/courseunits/CourseUnitWorkService.java
4,21 → 4,17
import pt.estgp.estgweb.domain.views.CourseUnitView;
import pt.estgp.estgweb.domain.views.CourseUnitAssignementView;
import pt.estgp.estgweb.domain.views.CourseUnitDeliverableView;
import pt.estgp.estgweb.domain.views.BlogView;
import pt.estgp.estgweb.domain.*;
import pt.estgp.estgweb.domain.enums.LangEnum;
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.services.blogs.CreateBlogService;
import pt.estgp.estgweb.services.email.SendEmailService;
import pt.estgp.estgweb.services.email.EMAILJob;
import pt.estgp.estgweb.services.jobs.JobScheduleService;
import pt.estgp.estgweb.filters.chains.ResourceAccessControlEnum;
import pt.estgp.estgweb.filters.exceptions.AccessDeniedException;
import pt.estgp.estgweb.utils.Email;
import pt.estgp.estgweb.Globals;
import org.apache.log4j.Logger;
 
import java.util.List;
27,7 → 23,6
import java.io.InputStream;
 
import jomm.utils.FilesUtils;
import jomm.utils.MessageResources;
 
/*
* @author Goncalo Luiz gedl [AT] rnl [DOT] ist [DOT] utl [DOT] pt
76,7 → 71,7
String extension = FilesUtils.getExtension(name);
if(assignement.getRepositoryStream() == null || assignement.getRepositoryStream().trim().length() == 0)
{
String identifier = repositoryService.storeRepositoryFile(file, contentType, extension, size, name, "courseunit.assignement.file " + courseUnit.getName() + " of " + userSession.getUser().getUsername(), ResourceAccessControlEnum.courseunitDomain,userSession);
String identifier = repositoryService.storeRepositoryFile(file, contentType, extension, size, name, "courseunit.assignement.file " + courseUnit.getName() + " of " + userSession.getUser().getUsername(), ResourceAccessControlEnum.courseunitDomain, null, userSession);
assignement.setRepositoryStream(identifier);
}
else
184,7 → 179,7
if(deliverable == null)
{
deliverable = DomainObjectFactory.createCourseUnitDeliverableImpl();
String identifier = repositoryService.storeRepositoryFile(file, contentType, extension, size, name, "courseunit.assignement " + assignement.getCourseUnit().getName() + " of " + userSession.getUser().getUsername(), ResourceAccessControlEnum.courseunitDeliverableDomain,userSession);
String identifier = repositoryService.storeRepositoryFile(file, contentType, extension, size, name, "courseunit.assignement " + assignement.getCourseUnit().getName() + " of " + userSession.getUser().getUsername(), ResourceAccessControlEnum.courseunitDeliverableDomain, null, userSession);
deliverable.setDeliverableRepositoryStream(identifier);
deliverable.setCourseUnitAssignement(assignement);
setStudentWorkDetails(deliverable,userSession);
/branches/v3/impl/src/java/pt/estgp/estgweb/services/sigesimports/ImportCourseService.java
469,7 → 469,7
else
c.setCdTurma("");
c.setName(d.getNome());
c.setInstitutionCode("" + d.getCodigoInstituicao());//MUDADO AQUI
//c.setInstitutionCode("" + d.getCodigoInstituicao());//MUDADO AQUI
c.setCode("" + d.getCodigo().intValue());
c.setCourseCode("" + d.getCodigoCurso());
c.setCourseName("" + d.getNomeCurso());
/branches/v3/impl/src/java/pt/estgp/estgweb/services/events/EventsService.java
182,7 → 182,7
flyer.getFileName(),
"Flyer de formacao " + eventPersistent.getTitle(),
ResourceAccessControlEnum.publicDomain,
userSession
null, userSession
);
eventPersistent.setFlyerRepositoryStream(repositoryIdentifier);
} catch (IOException e) {
/branches/v3/impl/src/java/pt/estgp/estgweb/services/questionarios/pedagogico/reportprocessors/ReportAlunosGenerator.java
432,7 → 432,7
zipFile.getName(),
desc,
access,
DaoFactory.getUserDaoImpl().load(new Long(1)));
null, DaoFactory.getUserDaoImpl().load(new Long(1)));
q.setRepositoryStreamZipFile(repositoryStreamCode);
}
else
461,6 → 461,7
tmpFile.getName(),
descricao,
access,//Este relatório de curso é publico
null,
DaoFactory.getUserDaoImpl().load(new Long(1)));
reportFile.setRepositoryStream(repositoryStreamCode);
}
/branches/v3/impl/src/java/pt/estgp/estgweb/services/pageContent/dto/VfsPageSectionDto.java
54,7 → 54,7
name,
"RepositoryFileInVfs title:" + title,
ResourceAccessControlEnum.vfsdomain,
DaoFactory.getUserDaoImpl().loadByID("1"));
null, DaoFactory.getUserDaoImpl().loadByID("1"));
repositoryFile = new PageRepositoryFileImpl();
repositoryFile.setTitle(title);
repositoryFile.setDescription(description);
/branches/v3/impl/src/java/pt/estgp/estgweb/services/data/RepositoryService.java
7,6 → 7,7
import pt.estgp.estgweb.domain.dao.DaoFactory;
import pt.estgp.estgweb.filters.chains.ResourceAccessControlEnum;
import pt.estgp.estgweb.services.data.impl.DefaultRepositoryFile;
import pt.estgp.estgweb.services.data.types.AbstractRepositorySourceModuleInterfacePlugin;
import pt.estgp.estgweb.web.utils.DatesUtils;
import pt.utl.ist.berserk.logic.serviceManager.IService;
 
24,28 → 25,30
public class RepositoryService implements IService
{
 
public String storeRepositoryFile(InputStream stream, String contentType, String extension, int size, String name, String description, ResourceAccessControlEnum accessControl, UserSession userSession)
public String storeRepositoryFile(InputStream stream, String contentType, String extension, int size, String name, String description, ResourceAccessControlEnum accessControl, AbstractRepositorySourceModuleInterfacePlugin sourceModuleInterfacePlugin, UserSession userSession)
{
return storeRepositoryFile(stream,contentType,extension,size,name,description,accessControl,userSession.getUser());
return storeRepositoryFile(stream,contentType,extension,size,name,description,accessControl, sourceModuleInterfacePlugin, userSession.getUser());
}
/**
*
* @param stream .
* @param contentType .
* @param extension .
* @param size .
* @param name .
* @param description .
* @param extension .
* @param accessControl .
* @param user .
* @return the identifier to retrieve the document
* @param sourceModuleInterfacePlugin
*@param user . @return the identifier to retrieve the document
*/
public String storeRepositoryFile(InputStream stream, String contentType, String extension, int size, String name, String description, ResourceAccessControlEnum accessControl, User user)
public String storeRepositoryFile(InputStream stream, String contentType, String extension, int size, String name, String description, ResourceAccessControlEnum accessControl, AbstractRepositorySourceModuleInterfacePlugin sourceModuleInterfacePlugin, User user)
{
RepositoryFileImpl repositoryFile = DomainObjectFactory.createRepositoryFileImpl();
repositoryFile.setSaveDate(new Date());
repositoryFile.setDeleted(false);
repositoryFile.setAccessControl(accessControl.getKey());
repositoryFile.setOwner(user);
repositoryFile.setSourceModule(sourceModuleInterfacePlugin);
DaoFactory.getRepositoryFileDaoImpl().save(repositoryFile);
 
//todo getMD5Checksum()
199,30 → 202,35
return repositoryFileVersion;
}
 
public static Document createXMLdescription(RepositoryFileVersionImpl repositoryFile)
public static Document createXMLdescription(RepositoryFileVersionImpl repositoryFileVersion)
{
org.dom4j.Document dom = DocumentFactory.getInstance().createDocument();
Element rootElement = DocumentFactory.getInstance().createElement("repositoryFileVersion");
dom.setRootElement(rootElement);
rootElement.addAttribute("id", "" + repositoryFile.getId());
 
 
 
rootElement.addAttribute("id", "" + repositoryFileVersion.getId());
 
Element saveDate = DocumentFactory.getInstance().createElement("saveDate");
saveDate.setText(""+DatesUtils.getStringFromDateForFilename(repositoryFile.getSaveDate()));
saveDate.setText(""+DatesUtils.getStringFromDateForFilename(repositoryFileVersion.getSaveDate()));
 
Element name = DocumentFactory.getInstance().createElement("name");
name.setText("" + repositoryFile.getName());
name.setText("" + repositoryFileVersion.getName());
 
 
 
Element contentType = DocumentFactory.getInstance().createElement("contentType");
contentType.setText(""+repositoryFile.getContentType());
contentType.setText(""+repositoryFileVersion.getContentType());
 
Element extension = DocumentFactory.getInstance().createElement("extension");
extension.setText("" + repositoryFile.getExtension());
extension.setText("" + repositoryFileVersion.getExtension());
 
Element size = DocumentFactory.getInstance().createElement("sizeKb");
size.setText("" + repositoryFile.getSizeKb());
size.setText("" + repositoryFileVersion.getSizeKb());
 
Element description = DocumentFactory.getInstance().createElement("description");
description.setText(repositoryFile.getDescription());
description.setText(repositoryFileVersion.getDescription());
 
rootElement.add(saveDate);
rootElement.add(name);
235,19 → 243,26
Element repositoryFileElem = DocumentFactory.getInstance().createElement("repositoryFile");
rootElement.add(repositoryFileElem);
 
repositoryFileElem.addAttribute("id", "" + repositoryFile.getRepositoryFile().getId());
repositoryFileElem.addAttribute("id", "" + repositoryFileVersion.getRepositoryFile().getId());
Element rSaveDate = DocumentFactory.getInstance().createElement("saveDate");
rSaveDate.setText(""+DatesUtils.getStringFromDateForFilename(repositoryFile.getRepositoryFile().getSaveDate()));
rSaveDate.setText(""+DatesUtils.getStringFromDateForFilename(repositoryFileVersion.getRepositoryFile().getSaveDate()));
 
Element rUpdateDate = DocumentFactory.getInstance().createElement("updateDate");
rUpdateDate.setText(""+DatesUtils.getStringFromDateForFilename(repositoryFile.getRepositoryFile().getUpdateDate()));
rUpdateDate.setText(""+DatesUtils.getStringFromDateForFilename(repositoryFileVersion.getRepositoryFile().getUpdateDate()));
 
 
Element accessControl = DocumentFactory.getInstance().createElement("accessControl");
accessControl.setText(repositoryFile.getRepositoryFile().getAccessControl());
accessControl.setText(repositoryFileVersion.getRepositoryFile().getAccessControl());
 
Element sourceModule = DocumentFactory.getInstance().createElement("sourceModule");
if(repositoryFileVersion.getRepositoryFile().getSourceModule() != null)
sourceModule.setText(repositoryFileVersion.getRepositoryFile().getSourceModule().getModuleName());
else
sourceModule.setText("null");
 
 
Element deleted = DocumentFactory.getInstance().createElement("deleted");
deleted.setText("" + repositoryFile.getRepositoryFile().isDeleted());
deleted.setText("" + repositoryFileVersion.getRepositoryFile().isDeleted());
 
repositoryFileElem.add(rSaveDate);
repositoryFileElem.add(rUpdateDate);
256,68 → 271,68
 
Element owner = DocumentFactory.getInstance().createElement("owner");
repositoryFileElem.add(owner);
owner.addAttribute("id", "" + repositoryFile.getRepositoryFile().getOwner().getId());
owner.addAttribute("id", "" + repositoryFileVersion.getRepositoryFile().getOwner().getId());
 
if (repositoryFile.getRepositoryFile().getOwner().getName() != null)
if (repositoryFileVersion.getRepositoryFile().getOwner().getName() != null)
{
Element oName = DocumentFactory.getInstance().createElement("name");
oName.setText(repositoryFile.getRepositoryFile().getOwner().getName());
oName.setText(repositoryFileVersion.getRepositoryFile().getOwner().getName());
owner.add(oName);
}
 
if (DocumentFactory.getInstance().createElement("roles") != null)
{
Element oRoles = DocumentFactory.getInstance().createElement("roles");
oRoles.setText(repositoryFile.getRepositoryFile().getOwner().getRoles());
oRoles.setText(repositoryFileVersion.getRepositoryFile().getOwner().getRoles());
owner.add(oRoles);
}
 
Element oClass = DocumentFactory.getInstance().createElement("class");
oClass.setText(repositoryFile.getRepositoryFile().getOwner().getClass().getSimpleName());
oClass.setText(repositoryFileVersion.getRepositoryFile().getOwner().getClass().getSimpleName());
 
 
owner.add(oClass);
if (repositoryFile.getRepositoryFile().getOwner() instanceof User)
if (repositoryFileVersion.getRepositoryFile().getOwner() instanceof User)
{
Element oUsername = DocumentFactory.getInstance().createElement("username");
if(((User) repositoryFile.getRepositoryFile().getOwner()).getUsername() == null)
if(((User) repositoryFileVersion.getRepositoryFile().getOwner()).getUsername() == null)
oUsername.setText("UNKNOWN");
else
oUsername.setText(((User) repositoryFile.getRepositoryFile().getOwner()).getUsername());
oUsername.setText(((User) repositoryFileVersion.getRepositoryFile().getOwner()).getUsername());
owner.add(oUsername);
 
if (((User) repositoryFile.getRepositoryFile().getOwner()).getEmail() != null)
if (((User) repositoryFileVersion.getRepositoryFile().getOwner()).getEmail() != null)
{
Element oEmail = DocumentFactory.getInstance().createElement("email");
oEmail.setText(((User) repositoryFile.getRepositoryFile().getOwner()).getEmail());
oEmail.setText(((User) repositoryFileVersion.getRepositoryFile().getOwner()).getEmail());
owner.add(oEmail);
}
 
if (((User) repositoryFile.getRepositoryFile().getOwner()).getOutEmail() != null)
if (((User) repositoryFileVersion.getRepositoryFile().getOwner()).getOutEmail() != null)
{
Element outEmail = DocumentFactory.getInstance().createElement("outEmail");
outEmail.setText(((User) repositoryFile.getRepositoryFile().getOwner()).getOutEmail());
outEmail.setText(((User) repositoryFileVersion.getRepositoryFile().getOwner()).getOutEmail());
owner.add(outEmail);
}
 
if (((User) repositoryFile.getRepositoryFile().getOwner()).getBi() != null)
if (((User) repositoryFileVersion.getRepositoryFile().getOwner()).getBi() != null)
{
Element biEmail = DocumentFactory.getInstance().createElement("bi");
biEmail.setText(((User) repositoryFile.getRepositoryFile().getOwner()).getBi());
biEmail.setText(((User) repositoryFileVersion.getRepositoryFile().getOwner()).getBi());
owner.add(biEmail);
}
 
 
if (repositoryFile.getRepositoryFile().getOwner() instanceof Teacher)
if (repositoryFileVersion.getRepositoryFile().getOwner() instanceof Teacher)
{
Element code = DocumentFactory.getInstance().createElement("teacherCode");
code.setText("" + ((Teacher) repositoryFile.getRepositoryFile().getOwner()).getSigesCode());
code.setText("" + ((Teacher) repositoryFileVersion.getRepositoryFile().getOwner()).getSigesCode());
owner.add(code);
}
if (repositoryFile.getRepositoryFile().getOwner() instanceof Student)
if (repositoryFileVersion.getRepositoryFile().getOwner() instanceof Student)
{
Element code = DocumentFactory.getInstance().createElement("studentCode");
code.setText("" + ((Student) repositoryFile.getRepositoryFile().getOwner()).getSigesCode());
code.setText("" + ((Student) repositoryFileVersion.getRepositoryFile().getOwner()).getSigesCode());
owner.add(code);
}
}
/branches/v3/impl/src/java/pt/estgp/estgweb/services/data/repositorydocuments/RepositoryDocumentService.java
224,7 → 224,7
uploadedF.getFileName(),
"Institutional Repository Document File",
controloAcesso,
userSession.getUser());
null, userSession.getUser());
Set<RepositoryDocumentFileImpl> files = persistent.getRepositoryDocumentFiles();
if(files == null)
{
/branches/v3/impl/src/java/pt/estgp/estgweb/services/data/types/test/TestEnhancedType.java
New file
0,0 → 1,83
package pt.estgp.estgweb.services.data.types.test;
 
import jomm.dao.impl.AbstractDao;
import junit.framework.TestCase;
import pt.estgp.estgweb.domain.RepositoryFile;
import pt.estgp.estgweb.domain.RepositoryFileImpl;
import pt.estgp.estgweb.domain.dao.DaoFactory;
import pt.estgp.estgweb.services.data.types.AbstractRepositorySourceModuleInterfacePlugin;
import pt.estgp.estgweb.services.data.types.RepositorySourceModuleMetadata;
 
import java.util.ArrayList;
import java.util.Date;
 
/**
* Created by jorgemachado on 09/02/17.
*/
public class TestEnhancedType extends TestCase
{
static final String REPO_STREAM_FIELD = "repository.stream";
 
public static class TestSourceModule extends AbstractRepositorySourceModuleInterfacePlugin
{
@Override
public RepositorySourceModuleMetadata getMetadata(String repositoryStream)
{
RepositorySourceModuleMetadata r = new RepositorySourceModuleMetadata();
r.setFields(new ArrayList<RepositorySourceModuleMetadata.MetadataField>());
RepositorySourceModuleMetadata.MetadataField f = new RepositorySourceModuleMetadata.MetadataField();
f.setFieldName(REPO_STREAM_FIELD);
f.setFieldValue(repositoryStream);
r.getFields().add(f);
return r;
}
 
@Override
public String getModuleName()
{
return "TestSourceModule";
}
 
@Override
public Date getSourceUpdateDate(String repositoryStream) {
return null;
}
}
public void testActorTypeSerialization()
{
AbstractDao.getCurrentSession().beginTransaction();
 
TestSourceModule t = new TestSourceModule();
 
RepositoryFile rFile = new RepositoryFileImpl();
RepositoryFile rFileNullModule = new RepositoryFileImpl();
rFile.setSourceModule(t);
 
AbstractDao.getCurrentSession().save(rFile);
AbstractDao.getCurrentSession().save(rFileNullModule);
 
 
long id = rFile.getId();
 
long idNull = rFileNullModule.getId();
 
AbstractDao.getCurrentSession().getTransaction().commit();
 
AbstractDao.getCurrentSession().beginTransaction();
 
RepositoryFile rLoaded = DaoFactory.getRepositoryFileDaoImpl().get(id);
RepositoryFile rLoadedNull = DaoFactory.getRepositoryFileDaoImpl().get(idNull);
 
assertNotNull(rLoaded.getSourceModule());
assertTrue(rLoaded.getSourceModule().getModuleName().equals("TestSourceModule"));
assertEquals(rLoaded.getSourceModule().getMetadata("4444").getFields().get(0).getFieldValue(),"4444");
 
assertNull(rLoadedNull.getSourceModule());
 
AbstractDao.getCurrentSession().delete(rLoaded);
AbstractDao.getCurrentSession().delete(rLoadedNull);
AbstractDao.getCurrentSession().getTransaction().commit();
 
}
 
}
/branches/v3/impl/src/java/pt/estgp/estgweb/services/data/types/AbstractRepositorySourceModuleEnhancedType.java
New file
0,0 → 1,15
package pt.estgp.estgweb.services.data.types;
 
import pt.estgp.estgweb.services.bpmnprocess.types.EnhancedBacoDataInterfacePlugin;
 
/**
* Created by jorgemachado on 06/04/17.
*/
public class AbstractRepositorySourceModuleEnhancedType extends EnhancedBacoDataInterfacePlugin
{
@Override
public Class returnedClass()
{
return AbstractRepositorySourceModuleInterfacePlugin.class;
}
}
/branches/v3/impl/src/java/pt/estgp/estgweb/services/data/types/RepositorySourceModuleMetadata.java
New file
0,0 → 1,42
package pt.estgp.estgweb.services.data.types;
 
import java.util.List;
 
/**
* Created by jorgemachado on 06/04/17.
*/
public class RepositorySourceModuleMetadata
{
private List<MetadataField> fields;
 
public List<MetadataField> getFields() {
return fields;
}
 
public void setFields(List<MetadataField> fields) {
this.fields = fields;
}
 
public static class MetadataField
{
String fieldName;
String fieldValue;
 
public String getFieldName() {
return fieldName;
}
 
public void setFieldName(String fieldName) {
this.fieldName = fieldName;
}
 
public String getFieldValue() {
return fieldValue;
}
 
public void setFieldValue(String fieldValue) {
this.fieldValue = fieldValue;
}
}
 
}
/branches/v3/impl/src/java/pt/estgp/estgweb/services/data/types/AbstractRepositorySourceModuleInterfacePlugin.java
New file
0,0 → 1,20
package pt.estgp.estgweb.services.data.types;
 
import pt.estgp.estgweb.services.bpmnprocess.types.BacoDataInterfaceClassPlugin;
 
import java.util.Date;
 
/**
* Created by jorgemachado on 06/04/17.
* As classes que herdam desta classe não precisam de implementar quaisquer metodos
* para poderem ser usadas como enhanced classes no Hibernate, uma vez que apenas
* se necessita de usar o nome da classe para a criar com Reflection
*
* @classesAssociadas
*/
public abstract class AbstractRepositorySourceModuleInterfacePlugin extends BacoDataInterfaceClassPlugin
{
public abstract RepositorySourceModuleMetadata getMetadata(String repositoryStream);
public abstract String getModuleName();
public abstract Date getSourceUpdateDate(String repositoryStream);
}
/branches/v3/impl/src/java/pt/estgp/estgweb/services/data/types/README
New file
0,0 → 1,24
Criar Repository Source Modules
 
A classe do Modelo de Source Modules a adicionar deverá:
 
1 - ClasseModulo herdar a class AbstractRepositorySourceModuleInterfacePlugin e implementar os métodos da classe
2 - No momento da criação de um RepositoryFile as instâncias da ClasseModulo deverão ser fornecidas como sourceModule
 
3 - Durante o carregamento da base de dados a string que fica guardada no campo de texto da
Abstract Baco String Enhanced é o nome completo da classe
4 - O carregamento é a instanciação da classe novamente pelo nome
5 - Desta forma é um plugin puro sem necessidade de ser instanciada pelo BACO,
6 - O Hibernate instância a classe por nós.
 
 
##################################
Usar o plugin das interfaces do baco com o Hibernate noutros casos
 
1 - Criar uma classe abstrata A1 com os metodos desejados e herdar de BacoDataInterfaceClassPlugin
2 - Deve criar um Enhanced class E1 a herdar de EnhancedBacoDataInterfacePlugin e implementar o método getReturnClass
 
De seguida deverá proceder como no caso do Repositorio
Criar um campo no modelo do tipo da sua classe enhanced E1
e no momento da criação passar a instancia A1 para o atributo respetivo
 
/branches/v3/impl/src/java/pt/estgp/estgweb/services/surveys/GenerateSurveyStatsCsvService.java
13,7 → 13,6
import pt.utl.ist.berserk.logic.serviceManager.IService;
 
import java.io.*;
import java.nio.charset.Charset;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
87,7 → 86,7
String identifier = survey.getIdentifier();
 
if(identifier == null)
identifier = repositoryService.storeRepositoryFile(inputStream,"text/comma-separated-values",extension,(int)file.length(),file.getName(),"CSV file of survey: "+survey.getId(), ResourceAccessControlEnum.surveyStatsDomain,userSession);
identifier = repositoryService.storeRepositoryFile(inputStream,"text/comma-separated-values",extension,(int)file.length(),file.getName(),"CSV file of survey: "+survey.getId(), ResourceAccessControlEnum.surveyStatsDomain, null, userSession);
else
repositoryService.updateRepositoryFile(identifier,inputStream,"text/comma-separated-values",extension,(int)file.length(),file.getName(),"CSV file of survey: "+survey.getId(),ResourceAccessControlEnum.surveyStatsDomain);
 
/branches/v3/impl/src/java/pt/estgp/estgweb/services/surveys/GenerateSurveyStatsService.java
7,7 → 7,6
import org.jfree.chart.ChartFactory;
import org.jfree.chart.ChartUtilities;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.LegendItemCollection;
import org.jfree.chart.axis.*;
import org.jfree.chart.plot.CategoryPlot;
import org.jfree.chart.plot.PlotOrientation;
15,11 → 14,9
import org.jfree.data.category.DefaultCategoryDataset;
import org.jfree.text.TextBlockAnchor;
import org.jfree.ui.RectangleAnchor;
import org.jfree.ui.TextAnchor;
import pt.estgp.estgweb.Globals;
import pt.estgp.estgweb.domain.*;
import pt.estgp.estgweb.domain.dao.DaoFactory;
import pt.estgp.estgweb.domain.views.SurveyView;
import pt.estgp.estgweb.filters.chains.ResourceAccessControlEnum;
import pt.estgp.estgweb.services.data.RepositoryService;
import pt.utl.ist.berserk.logic.serviceManager.IService;
128,7 → 125,7
FileInputStream inputStream = new FileInputStream(file);
 
if(identifier == null)
identifier = repositoryService.storeRepositoryFile(inputStream,"image/png",extension,(int)file.length(),file.getName(),description,ResourceAccessControlEnum.surveyStatsDomain,userSession);
identifier = repositoryService.storeRepositoryFile(inputStream,"image/png",extension,(int)file.length(),file.getName(),description,ResourceAccessControlEnum.surveyStatsDomain, null, userSession);
else
repositoryService.updateRepositoryFile(identifier,inputStream,"image/png",extension,(int)file.length(),file.getName(),description,ResourceAccessControlEnum.surveyStatsDomain);
 
/branches/v3/impl/src/java/pt/estgp/estgweb/services/paginasseccoes/SalvarFicheiro.java
23,7 → 23,7
frm.getFicheiro().getFileName(),
"",
ResourceAccessControlEnum.authenticatedDomain,
usession);
null, usession);
 
return id;
}
/branches/v3/impl/src/java/pt/estgp/estgweb/services/bpmnprocess/types/BacoDataInterfaceClassPlugin.java
New file
0,0 → 1,40
package pt.estgp.estgweb.services.bpmnprocess.types;
 
/**
* Created by jorgemachado on 06/04/17.
*/
 
 
/**
*
* This class should be used only in terms of Interface only
*
* Is made with the purpose of create Plugin Interfaces as Enhanced Classes
*
*/
public abstract class BacoDataInterfaceClassPlugin extends BacoDataAbstractType
{
 
@Override
public boolean equals(Object o)
{
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
 
BacoDataInterfaceClassPlugin that = (BacoDataInterfaceClassPlugin) o;
 
return getClass().getName().equals(that.getClass().getName());
}
 
@Override
public int hashCode()
{
return getClass().getName().hashCode();
}
 
@Override
public String toString()
{
return getClass().getName();
}
}
/branches/v3/impl/src/java/pt/estgp/estgweb/services/bpmnprocess/types/EnhancedBacoDataInterfacePlugin.java
New file
0,0 → 1,43
package pt.estgp.estgweb.services.bpmnprocess.types;
 
/**
* Created by jorgemachado on 03/02/17.
*/
public abstract class EnhancedBacoDataInterfacePlugin extends AbstractStringEnhancedType
{
@Override
public Object fromXMLString(String xmlValue) {
if(xmlValue == null)
return null;
try {
return Class.forName(xmlValue).newInstance();
} catch (InstantiationException e) {
e.printStackTrace();
} catch (IllegalAccessException e) {
e.printStackTrace();
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
return null;
}
 
@Override
public abstract Class returnedClass();
 
@Override
public BacoDataInterfaceClassPlugin fromString(String className) {
if(className == null)
return null;
try {
return (BacoDataInterfaceClassPlugin) Class.forName(className).newInstance();
} catch (InstantiationException e) {
e.printStackTrace();
} catch (IllegalAccessException e) {
e.printStackTrace();
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
return null;
}
 
}
/branches/v3/impl/src/java/pt/estgp/estgweb/services/profile/CurriculumService.java
85,7 → 85,7
String extension = FilesUtils.getExtension(name);
if(recordView.getRepositoryStream() == null)
{
String identifier = repositoryService.storeRepositoryFile(file, contentType, extension, size, name, "profile.curriculum.record " + r.getTitle() + " of " + userSession.getUser().getUsername(), ResourceAccessControlEnum.parse(recordView.getFileAccess()),userSession);
String identifier = repositoryService.storeRepositoryFile(file, contentType, extension, size, name, "profile.curriculum.record " + r.getTitle() + " of " + userSession.getUser().getUsername(), ResourceAccessControlEnum.parse(recordView.getFileAccess()), null, userSession);
r.setRepositoryStream(identifier);
}
else
/branches/v3/impl/src/java/pt/estgp/estgweb/services/processes/ProcessesService.java
3,24 → 3,14
import jomm.utils.FilesUtils;
import org.apache.log4j.Logger;
import org.apache.struts.upload.FormFile;
import org.dom4j.Document;
import pt.estgp.estgweb.Globals;
import pt.estgp.estgweb.domain.*;
import pt.estgp.estgweb.domain.dao.DaoFactory;
import pt.estgp.estgweb.domain.views.CourseView;
import pt.estgp.estgweb.filters.chains.ResourceAccessControlEnum;
import pt.estgp.estgweb.services.data.IRepositoryFile;
import pt.estgp.estgweb.services.data.RepositoryService;
import pt.estgp.estgweb.services.expceptions.AlreadyExistsException;
import pt.estgp.estgweb.services.expceptions.ServiceException;
import pt.estgp.estgweb.utils.DatesUtils;
import pt.estgp.estgweb.utils.Dom4jUtil;
import pt.utl.ist.berserk.logic.serviceManager.IService;
 
import java.io.IOException;
import java.io.InputStream;
import java.io.PrintWriter;
import java.io.StringWriter;
import java.util.*;
 
/*
78,7 → 68,7
String repositoryId;
try {
repositoryId = repositoryService.storeRepositoryFile(file.getInputStream(),file.getContentType(), FilesUtils.getExtension(file.getFileName()),
file.getFileSize(),file.getFileName(),"Process file " + metaProcess.getName(), ResourceAccessControlEnum.processDomain,sess);
file.getFileSize(),file.getFileName(),"Process file " + metaProcess.getName(), ResourceAccessControlEnum.processDomain, null, sess);
} catch (IOException e) {
logger.error(e,e);
throw e;
/branches/v3/impl/src/java/pt/estgp/estgweb/services/assessments/GeneratePdfService.java
226,7 → 226,7
String identifier = assessment.getIdentifier();
 
if(identifier==null)
identifier = repositoryService.storeRepositoryFile(inputStream,"application/pdf",extension,(int)file.length(),file.getName(),description, ResourceAccessControlEnum.publicDomain,userSession);
identifier = repositoryService.storeRepositoryFile(inputStream,"application/pdf",extension,(int)file.length(),file.getName(),description, ResourceAccessControlEnum.publicDomain, null, userSession);
else
repositoryService.updateRepositoryFile(identifier,inputStream, "application/pdf",extension,(int)file.length(),file.getName(),description, ResourceAccessControlEnum.publicDomain);
 
610,7 → 610,7
String identifierResponse = assessmentResponse.getIdentifier();
 
if(identifierResponse==null)
identifierResponse = repositoryService.storeRepositoryFile(inputStream,"application/pdf",extension,(int)file.length(),file.getName(),description, ResourceAccessControlEnum.publicDomain,userSession);
identifierResponse = repositoryService.storeRepositoryFile(inputStream,"application/pdf",extension,(int)file.length(),file.getName(),description, ResourceAccessControlEnum.publicDomain, null, userSession);
else
repositoryService.updateRepositoryFile(identifierResponse,inputStream, "application/pdf",extension,(int)file.length(),file.getName(),description, ResourceAccessControlEnum.publicDomain);
 
789,7 → 789,7
String identifierEvaluations = assessment.getEvaluationsIdentifier();
 
if(identifierEvaluations==null)
identifierEvaluations = repositoryService.storeRepositoryFile(inputStream,"application/pdf",extension,(int)file.length(),file.getName(),description, ResourceAccessControlEnum.publicDomain,userSession);
identifierEvaluations = repositoryService.storeRepositoryFile(inputStream,"application/pdf",extension,(int)file.length(),file.getName(),description, ResourceAccessControlEnum.publicDomain, null, userSession);
else
repositoryService.updateRepositoryFile(identifierEvaluations,inputStream, "application/pdf",extension,(int)file.length(),file.getName(),description, ResourceAccessControlEnum.publicDomain);
 
/branches/v3/impl/src/java/pt/estgp/estgweb/services/assessments/InsertAssessmentAnswersService.java
62,7 → 62,7
String identifier = null;
try {
 
identifier = repositoryService.storeRepositoryFile(file.getInputStream(),file.getContentType(),extension,file.getFileSize(),file.getFileName(),description, ResourceAccessControlEnum.publicDomain,userSession);
identifier = repositoryService.storeRepositoryFile(file.getInputStream(),file.getContentType(),extension,file.getFileSize(),file.getFileName(),description, ResourceAccessControlEnum.publicDomain, null, userSession);
a.setIdentifier(identifier);
 
} catch (IOException e) {
/branches/v3/impl/src/java/pt/estgp/estgweb/domain/CourseUnitProgramImpl.java
627,7 → 627,7
cu.setCode(line.codigoSIGESUnidade);
cu.setCourseCode(line.codigoCurso);
cu.setName(line.nomeUnidadeCurricular);
cu.setInstitutionCode("" + DaoFactory.getConfigurationDaoImpl().getSigesInstitutionCode());
//cu.setInstitutionCode("" + DaoFactory.getConfigurationDaoImpl().getSigesInstitutionCode());
 
setCourse(cu, line);
DaoFactory.getCourseUnitDaoImpl().save(cu);
/branches/v3/impl/src/java/pt/estgp/estgweb/domain/dao/impl/CourseUnitDaoImpl.java
7,7 → 7,6
import org.hibernate.criterion.Order;
import org.hibernate.criterion.Projections;
import org.hibernate.sql.JoinFragment;
import pt.estgp.estgweb.Globals;
import pt.estgp.estgweb.domain.*;
import pt.estgp.estgweb.domain.dao.DaoFactory;
import pt.estgp.estgweb.domain.dao.DaoUtils;
753,40 → 752,14
public List<CourseUnit> courseUnits;
}
 
/**
* Load all programs from active courses that are for validation
* @param userSession
* @return
*/
public List<CourseMissingValidationProgram> loadMissingProgramValidate(UserSession userSession)
{
List<CourseMissingValidationProgram> result = new ArrayList<CourseMissingValidationProgram>();
//List<Course> courses = DaoFactory.getCourseDaoImpl().findActiveCourses(DaoFactory.getConfigurationDaoImpl().getInterfaceImportYear());
List<Course> courses = DaoFactory.getCourseDaoImpl().findActiveCoursesCoordinationsOrCommissions(DaoFactory.getConfigurationDaoImpl().getInterfaceImportYear(),userSession.getUser());
for(Course course: courses)
{
//CourseImpl cImpl = (CourseImpl) DaoFactory.getCourseDaoImpl().narrow(course);
//if(cImpl.isFromCourseCommission(userSession) || userSession.getUser().hasRole(Globals.SERVICES_PROGRAMS_ROLE))
//{
List<CourseUnit> courseUnits = loadMissingProgramValidateGivenCourse(course.getId());
if(courseUnits != null && courseUnits.size() > 0)
{
CourseMissingValidationProgram c = new CourseMissingValidationProgram();
c.course = course;
c.courseUnits = courseUnits;
result.add(c);
}
//}
}
return result;
}
//TODO
 
 
 
public List<CourseMissingValidationProgram> loadMissingProgramValidateOptimized(UserSession userSession)
{
List<CourseMissingValidationProgram> result = new ArrayList<CourseMissingValidationProgram>();
 
//todo Em vez de FindAll faco a listagem total de cadeiras e é la dentro que restringe ou a todas
//Em vez de FindAll faco a listagem total de cadeiras e é la dentro que restringe ou a todas
//os cursos caso seja da secretaria ou aos cursos de que faz parte da comissao
//Obtenho todas as cadeiras de todos os cursos
//Organizo-as por curso
813,39 → 786,13
}
return result;
}
/**
* Load all programs missing from active courses
* @param userSession
* @return
*/
public List<CourseMissingValidationProgram> loadMissingPrograms(UserSession userSession)
{
List<CourseMissingValidationProgram> result = new ArrayList<CourseMissingValidationProgram>();
//List<Course> courses = DaoFactory.getCourseDaoImpl().findActiveCourses(DaoFactory.getConfigurationDaoImpl().getInterfaceImportYear());
List<Course> courses = DaoFactory.getCourseDaoImpl().findActiveCoursesCoordinationsOrCommissions(DaoFactory.getConfigurationDaoImpl().getInterfaceImportYear(),userSession.getUser());
for(Course course: courses)
{
//CourseImpl cImpl = (CourseImpl) DaoFactory.getCourseDaoImpl().narrow(course);
//if(cImpl.isFromCourseCommission(userSession) || userSession.getUser().hasRole(Globals.SERVICES_PROGRAMS_ROLE))
//{
List<CourseUnit> courseUnits = loadMissingProgramGivenCourse(course.getId());
if(courseUnits != null && courseUnits.size() > 0)
{
CourseMissingValidationProgram c = new CourseMissingValidationProgram();
c.course = course;
c.courseUnits = courseUnits;
result.add(c);
}
//}
}
return result;
}
 
 
public List<CourseMissingValidationProgram> loadMissingProgramsOptimized(UserSession userSession)
{
List<CourseMissingValidationProgram> result = new ArrayList<CourseMissingValidationProgram>();
 
//todo Em vez de FindAll faco a listagem total de cadeiras e é la dentro que restringe ou a todas
//Em vez de FindAll faco a listagem total de cadeiras e é la dentro que restringe ou a todas
//os cursos caso seja da secretaria ou aos cursos de que faz parte da comissao
//Obtenho todas as cadeiras de todos os cursos
//Organizo-as por curso
879,29 → 826,35
public List<CourseUnit> courseUnits;
}
 
/**
* METODO ANTIGO QUE ESTAVA NA COURSE COMISSION
* @param userSession
* @return
*/
public List<CourseMissingValidationEvaluation> loadMissingEvaluationValidate(UserSession userSession)
 
public List<CourseMissingValidationEvaluation> loadMissingEvaluationOptimized(UserSession userSession)
{
List<CourseMissingValidationEvaluation> result = new ArrayList<CourseMissingValidationEvaluation>();
List<Course> courses = DaoFactory.getCourseDaoImpl().findAll();
for(Course course: courses)
 
//Em vez de FindAll faco a listagem total de cadeiras e é la dentro que restringe ou a todas
//os cursos caso seja da secretaria ou aos cursos de que faz parte da comissao
//Obtenho todas as cadeiras de todos os cursos
//Organizo-as por curso
//devolvo a lista final
HashMap<Course,CourseMissingValidationEvaluation> mapaUnidadesCurso = new HashMap<Course, CourseMissingValidationEvaluation>();
 
List<CourseUnit> courseUnits = loadMissingEvaluationOptimizedComissionsAndSecreariat(userSession.getUser());
for(CourseUnit cu : courseUnits)
{
CourseImpl cImpl = (CourseImpl) DaoFactory.getCourseDaoImpl().narrow(course);
if(cImpl.isFromCourseCommission(userSession) || userSession.getUser().hasRole(Globals.SERVICES_PROGRAMS_ROLE))
if(mapaUnidadesCurso.get(cu.getCourse()) == null)
{
List<CourseUnit> courseUnits = loadMissingEvaluationValidateGivenCourse(course.getId());
if(courseUnits != null && courseUnits.size() > 0)
{
CourseMissingValidationEvaluation c = new CourseMissingValidationEvaluation();
c.course = course;
c.courseUnits = courseUnits;
result.add(c);
}
CourseMissingValidationEvaluation c = new CourseMissingValidationEvaluation();
c.course = DaoFactory.getCourseDaoImpl().narrow(cu.getCourse());
c.courseUnits = new ArrayList<CourseUnit>();
c.courseUnits.add(cu);
result.add(c);
mapaUnidadesCurso.put(c.course,c);
}
else
{
CourseMissingValidationEvaluation c = mapaUnidadesCurso.get(cu.getCourse());
c.courseUnits.add(cu);
}
}
return result;
}
910,7 → 863,7
{
List<CourseMissingValidationEvaluation> result = new ArrayList<CourseMissingValidationEvaluation>();
 
//todo Em vez de FindAll faco a listagem total de cadeiras e é la dentro que restringe ou a todas
//Em vez de FindAll faco a listagem total de cadeiras e é la dentro que restringe ou a todas
//os cursos caso seja da secretaria ou aos cursos de que faz parte da comissao
//Obtenho todas as cadeiras de todos os cursos
//Organizo-as por curso
939,8 → 892,8
}
 
 
//TODO PARA USAR MAIS TARDE
 
 
/**
* @param u utilizador com vista para cursos
* Se for secretaria considera todos os cursos
1098,60 → 1051,8
return teacherCompleteFalse;
}
 
public List<CourseMissingValidationEvaluation> loadMissingEvaluationOptimized(UserSession userSession)
{
List<CourseMissingValidationEvaluation> result = new ArrayList<CourseMissingValidationEvaluation>();
 
//todo Em vez de FindAll faco a listagem total de cadeiras e é la dentro que restringe ou a todas
//os cursos caso seja da secretaria ou aos cursos de que faz parte da comissao
//Obtenho todas as cadeiras de todos os cursos
//Organizo-as por curso
//devolvo a lista final
HashMap<Course,CourseMissingValidationEvaluation> mapaUnidadesCurso = new HashMap<Course, CourseMissingValidationEvaluation>();
 
List<CourseUnit> courseUnits = loadMissingEvaluationOptimizedComissionsAndSecreariat(userSession.getUser());
for(CourseUnit cu : courseUnits)
{
if(mapaUnidadesCurso.get(cu.getCourse()) == null)
{
CourseMissingValidationEvaluation c = new CourseMissingValidationEvaluation();
c.course = DaoFactory.getCourseDaoImpl().narrow(cu.getCourse());
c.courseUnits = new ArrayList<CourseUnit>();
c.courseUnits.add(cu);
result.add(c);
mapaUnidadesCurso.put(c.course,c);
}
else
{
CourseMissingValidationEvaluation c = mapaUnidadesCurso.get(cu.getCourse());
c.courseUnits.add(cu);
}
}
return result;
}
 
public List<CourseMissingValidationEvaluation> loadMissingEvaluation(UserSession userSession)
{
List<CourseMissingValidationEvaluation> result = new ArrayList<CourseMissingValidationEvaluation>();
List<Course> courses = DaoFactory.getCourseDaoImpl().findAll();
for(Course course: courses)
{
CourseImpl cImpl = (CourseImpl) DaoFactory.getCourseDaoImpl().narrow(course);
if(cImpl.isFromCourseCommission(userSession) || userSession.getUser().hasRole(Globals.SERVICES_PROGRAMS_ROLE))
{
List<CourseUnit> courseUnits = loadMissingEvaluation(course.getId());
if(courseUnits != null && courseUnits.size() > 0)
{
CourseMissingValidationEvaluation c = new CourseMissingValidationEvaluation();
c.course = course;
c.courseUnits = courseUnits;
result.add(c);
}
}
}
return result;
}
 
public List<CourseUnit> loadMissingEvaluationOptimizedComissionsAndSecreariat(User u)
{
 
/branches/v3/impl/src/java/pt/estgp/estgweb/web/controllers/repositorydocs/RepositoryDocController.java
3,6 → 3,10
import org.apache.struts.action.ActionForm;
import org.json.JSONArray;
import org.json.JSONObject;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;
import pt.estgp.estgweb.web.controllers.utils.AbstractWidgetAjaxController;
import pt.estgp.estgweb.web.controllers.utils.FilesUploadResult;
import pt.estgp.estgweb.web.utils.RequestUtils;
11,6 → 15,8
 
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.net.URL;
import java.util.GregorianCalendar;
 
/**
* Created by jorgemachado on 23/02/17.
144,5 → 150,153
addMessageAsString(request,"Interface guardada com sucesso");
return true;
}
 
public JSONObject selectObjectsFromURL(ActionForm form,HttpServletRequest request, HttpServletResponse response) throws Throwable
{
String paragraphSelector = request.getParameter("paragraphSelector");
String url = request.getParameter("urlSource");
URL u = new URL(url);
String domainRoot = u.getProtocol() + "://" + u.getHost();
//if(domainRoot.endsWith("/"))
// domainRoot = domainRoot.substring(0,domainRoot.length()-1);
JSONArray sections = new JSONArray();
JSONArray nowSectionDocuments = new JSONArray();
JSONObject section = new JSONObject();
section.put("section","PRIMEIRA_IGNORAR");
section.put("documents",nowSectionDocuments);
sections.put(section);
 
int count = 0;
Document doc = Jsoup.connect(url).get();
Elements newsHeadlines = doc.select(paragraphSelector);
String dateYearSection = null;
for(Element e: newsHeadlines)
{
String allText = e.text().replaceAll("\\n", " ").replaceAll("[ \\t\\xA0\\u1680\\u180e\\u2000-\\u200a\\u202f\\u205f\\u3000]"," ").trim();
 
 
if(allText.length() > 0)
{
System.out.println("-----------------------------------");
count++;
String[] nodes = e.html().replaceAll("(?i)<br[^>]*>", "br2n").split("br2n");
 
String docTitle = "";
String dateYear = "";
if(dateYearSection != null)
{
dateYear = dateYearSection;
}
else
{
for(int i = new GregorianCalendar().get(GregorianCalendar.YEAR); i > 2000;i--)
{
if(allText.indexOf("" + i)>=0)
{
dateYear = i + "";
break;
}
}
}
 
JSONArray files = new JSONArray();
 
for(String node : nodes)
{
Document lineText = Jsoup.parse(node);
Elements as = lineText.select("a");
if(as.size()==0)
{
docTitle+= " " + lineText.text().replaceAll("\\n", " ").replaceAll("[ \\t\\xA0\\u1680\\u180e\\u2000-\\u200a\\u202f\\u205f\\u3000]"," ").trim();
}
else if(as.size() == 1)
{
JSONObject file = new JSONObject();
//lineText includes URL text + Line without URL Text
String fileText = lineText.text().replaceAll("[ \\t\\xA0\\u1680\\u180e\\u2000-\\u200a\\u202f\\u205f\\u3000]"," ").trim();
String href = as.get(0).attr("href");
if(href.startsWith("/"))
{
href = domainRoot + href;
}
file.put("href", href);
file.put("text",fileText);
files.put(file);
System.out.println("FILE: " + fileText + " :: URL :: " + as.get(0).attr("href"));
}
else if(as.size() >= 1)
{
//when we have several URL's n same line we put in each URL only the text inside <a>
for(Element a : as)
{
JSONObject file = new JSONObject();
String fileText = a.text().replaceAll("[ \\t\\xA0\\u1680\\u180e\\u2000-\\u200a\\u202f\\u205f\\u3000]"," ").trim();
 
String href = as.get(0).attr("href");
if(href.startsWith("/"))
{
href = domainRoot + href;
}
file.put("href",href);
file.put("text",fileText);
files.put(file);
System.out.println("?????????FILE: " + fileText + " :: URL :: " + as.get(0).attr("href"));
}
}
}
if(files.length() == 0)
{
System.out.println("SECTION CANDIDATE: " + docTitle);
nowSectionDocuments = new JSONArray();
section = new JSONObject();
section.put("section",docTitle);
section.put("documents",nowSectionDocuments);
sections.put(section);
dateYearSection = null;
for(int i = new GregorianCalendar().get(GregorianCalendar.YEAR); i > 2000;i--)
{
if(docTitle.indexOf("" + i)>=0)
{
dateYearSection = i + "";
break;
}
}
}
else
{
 
JSONObject j = new JSONObject();
 
 
docTitle = docTitle.trim();
if(docTitle.startsWith("-"))
{
docTitle = docTitle.substring(1);
}
if(docTitle.endsWith("-"))
{
docTitle = docTitle.substring(0, docTitle.length()-1);
}
docTitle = docTitle.trim();
j.put("text",docTitle);
if(files.length() > 0)
j.put("files",files);
if(dateYear.length()>0)
j.put("year", dateYear);
 
 
System.out.println(docTitle);
 
nowSectionDocuments.put(j);
}
}
}
System.out.println(sections.toString());
System.out.println(count);
JSONObject sectionsObj = new JSONObject();
sectionsObj.put("sections",sections);
return sectionsObj;
}
 
}
 
/branches/v3/impl/src/java/pt/estgp/estgweb/web/controllers/processes/MetaProcessesController.java
7,7 → 7,6
import org.apache.struts.upload.FormFile;
import pt.estgp.estgweb.Globals;
import pt.estgp.estgweb.domain.MetaProcess;
import pt.estgp.estgweb.domain.UserSession;
import pt.estgp.estgweb.domain.dao.DaoFactory;
import pt.estgp.estgweb.filters.chains.ResourceAccessControlEnum;
import pt.estgp.estgweb.services.data.RepositoryService;
15,10 → 14,6
import pt.estgp.estgweb.web.UserSessionProxy;
import pt.estgp.estgweb.web.controllers.ApplicationDispatchController;
import pt.estgp.estgweb.web.form.processes.NewMetaProcessForm;
import pt.estgp.estgweb.web.form.processes.NewProcessForm;
import pt.estgp.estgweb.web.utils.RequestUtils;
import pt.utl.ist.berserk.logic.serviceManager.IServiceManager;
import pt.utl.ist.berserk.logic.serviceManager.ServiceManager;
 
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
64,7 → 59,7
if(f.getMetaProcess().getRepositoryStream() == null || f.getMetaProcess().getRepositoryStream().length() == 0)
{
System.out.println("AQUI");
String repositoryId = repositoryService.storeRepositoryFile(file.getInputStream(),file.getContentType(), FilesUtils.getExtension(file.getFileName()),file.getFileSize(),file.getFileName(),"MetaProcess Template file", ResourceAccessControlEnum.authenticatedDomain, UserSessionProxy.loadUserSessionFromRequest(request));
String repositoryId = repositoryService.storeRepositoryFile(file.getInputStream(),file.getContentType(), FilesUtils.getExtension(file.getFileName()),file.getFileSize(),file.getFileName(),"MetaProcess Template file", ResourceAccessControlEnum.authenticatedDomain, null, UserSessionProxy.loadUserSessionFromRequest(request));
System.out.println(repositoryId);
f.getMetaProcess().setRepositoryStream(repositoryId);
f.setFileName(file.getFileName());
/branches/v3/impl/src/java/pt/estgp/estgweb/web/controllers/processes/ProcessEventController.java
1,6 → 1,5
package pt.estgp.estgweb.web.controllers.processes;
 
import com.sun.tools.javac.code.Type;
import jomm.dao.utils.HibernateUtils;
import jomm.utils.FilesUtils;
import jomm.utils.MessageResources;
9,7 → 8,6
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.upload.FormFile;
import pt.estgp.estgweb.Globals;
import pt.estgp.estgweb.domain.*;
import pt.estgp.estgweb.domain.Process;
import pt.estgp.estgweb.domain.dao.DaoFactory;
17,16 → 15,11
import pt.estgp.estgweb.services.data.RepositoryService;
import pt.estgp.estgweb.web.UserSessionProxy;
import pt.estgp.estgweb.web.controllers.ApplicationDispatchController;
import pt.estgp.estgweb.web.form.processes.NewProcessForm;
import pt.estgp.estgweb.web.form.processes.ProcessEventForm;
import pt.estgp.estgweb.web.utils.RequestUtils;
import pt.utl.ist.berserk.logic.serviceManager.IServiceManager;
import pt.utl.ist.berserk.logic.serviceManager.ServiceManager;
 
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.File;
import java.io.IOException;
import java.util.Date;
import java.util.HashSet;
151,7 → 144,7
String repositoryId;
try {
repositoryId = repositoryService.storeRepositoryFile(file.getInputStream(),file.getContentType(), FilesUtils.getExtension(file.getFileName()),
file.getFileSize(),file.getFileName(),"Process Event file " + p.getProcess().getMetaProcess().getName(), ResourceAccessControlEnum.processDomain,sess);
file.getFileSize(),file.getFileName(),"Process Event file " + p.getProcess().getMetaProcess().getName(), ResourceAccessControlEnum.processDomain, null, sess);
 
ProcessEventFileImpl ef = DomainObjectFactory.createProcessEventFileImpl();
Set<ProcessEventFile> proceSet = null;