import org.splat.service.dto.DocumentDTO;
import org.splat.service.dto.StepDTO;
import org.splat.service.technical.IndexService;
+import org.splat.service.technical.ProjectSettingsService;
import org.splat.som.Step;
import org.splat.util.BeanHelper;
import org.springframework.transaction.annotation.Transactional;
*/
private SimulationContextService _simulationContextService;
+ /**
+ * Injected project service.
+ */
+ private ProjectSettingsService _projectSettings;
+
/**
* Get the projectElementService.
*
* @param publicationService
* the publicationService to set
*/
- public void setPublicationService(final PublicationService publicationService) {
+ public void setPublicationService(
+ final PublicationService publicationService) {
_publicationService = publicationService;
}
_stepService = stepService;
}
- /**
+ /**
* {@inheritDoc}
+ *
* @see org.splat.service.ScenarioService#getScenarioInfo(long)
*/
@Transactional
public List<StepDTO> getScenarioInfo(final long scenarioId) {
List<StepDTO> res = new ArrayList<StepDTO>();
+ // Get the scenario from the database by id
Scenario scen = getScenarioDAO().get(scenarioId);
+ if (LOG.isDebugEnabled()) {
+ LOG.debug("Scenario[" + scenarioId + "]: Number of publications: "
+ + scen.getDocums().size());
+ }
+ // Get activities of the scenario
Step[] steps = getProjectElementService().getSteps(scen);
StepDTO stepDTO;
DocumentDTO docDTO;
- for (Step step: steps) {
+ String docType, fileFormat;
+ String processing;
+ boolean doImport;
+ // For each activity create a step DTO and add it to the result list
+ for (Step step : steps) {
stepDTO = BeanHelper.copyBean(step.getStep(), StepDTO.class);
res.add(stepDTO);
- for (Publication tag: step.getDocuments()) {
- docDTO = stepDTO.addDoc(tag.value().getIndex(), tag.value().getTitle());
+ if (LOG.isDebugEnabled()) {
+ LOG.debug("Step[" + stepDTO.getNumber()
+ + "]: Number of documents: "
+ + step.getDocuments().size());
+ }
+ // For each publication of the activity create a document DTO.
+ // Each file is considered as a source file.
+ for (Publication tag : step.getDocuments()) {
+ docDTO = stepDTO.addDoc(tag.value().getIndex(), tag.value()
+ .getTitle());
char aState = tag.getIsnew();
- docDTO.addFile(tag.value().getFile().getRelativePath(), aState);
- for(Relation rel: tag.value().getRelations(ConvertsRelation.class)) {
- File aFile = ((ConvertsRelation)rel).getTo();
- docDTO.addFile(aFile.getRelativePath(), aState);
+ docType = tag.value().getType().getName();
+ // For each file of the document create a file DTO
+ // Process source file of the document
+ fileFormat = tag.value().getFile().getFormat();
+ doImport = getProjectSettings().doImport(docType, fileFormat);
+ if (doImport && (!tag.isOutdated())) {
+ processing = "file-import";
+ } else {
+ processing = "file-download";
+ }
+ docDTO.addFile(tag.value().getFile().getRelativePath(), aState,
+ processing, false);
+ // Process all exported files
+ for (Relation rel : tag.value().getRelations(
+ ConvertsRelation.class)) {
+ File aFile = ((ConvertsRelation) rel).getTo();
+ fileFormat = aFile.getFormat();
+ doImport = getProjectSettings().doImport(docType,
+ fileFormat);
+ if (doImport && (!tag.isOutdated())) {
+ processing = "file-import";
+ } else {
+ processing = "file-download";
+ }
+ docDTO.addFile(aFile.getRelativePath(), aState, processing,
+ false);
}
}
}
return res;
}
-
+
/**
* Create a new study with one scenario and "product" simulation context.
*
* if some property occurs several times
*/
@Transactional
- public Study createStudy(final Study.Properties sprop, final Scenario.Properties oprop,
- final SimulationContext.Properties cprop) throws MissedPropertyException,
- InvalidPropertyException, MultiplyDefinedException {
+ public Study createStudy(final Study.Properties sprop,
+ final Scenario.Properties oprop,
+ final SimulationContext.Properties cprop)
+ throws MissedPropertyException, InvalidPropertyException,
+ MultiplyDefinedException {
Study study = getStudyService().createStudy(sprop);
addScenario(study, oprop);
if (cprop.getIndex() == 0) { // Input of new project context
*/
@Transactional
public KnowledgeElement addKnowledgeElement(final Scenario aScenarioDTO,
- final KnowledgeElement.Properties kprop) throws MissedPropertyException,
- InvalidPropertyException, MultiplyDefinedException {
+ final KnowledgeElement.Properties kprop)
+ throws MissedPropertyException, InvalidPropertyException,
+ MultiplyDefinedException {
KnowledgeElement kelm = null;
try {
long aScenarioId = aScenarioDTO.getIndex();
} else if (aScenarioDTO.getKnowledgeElementsList() != null) { // If null, knowl will be initialized when needed
aScenarioDTO.getKnowledgeElementsList().add(kelm);
}
-
- // Load the workflow for the parent study to take into account
+
+ // Load the workflow for the parent study to take into account
// all study actors durng reindexing.
getStudyService().loadWorkflow(aScenario.getOwnerStudy());
-
+
// Update the lucene index of knowledge elements.
getIndexService().add(kelm);
if (LOG.isDebugEnabled()) {
* @see org.splat.service.StudyService#addScenario(org.splat.dal.bo.som.Study, org.splat.dal.bo.som.Scenario.Properties)
*/
@Transactional
- public Scenario addScenario(final Study aStudy, final Scenario.Properties sprop)
- throws MissedPropertyException, InvalidPropertyException,
- MultiplyDefinedException {
+ public Scenario addScenario(final Study aStudy,
+ final Scenario.Properties sprop) throws MissedPropertyException,
+ InvalidPropertyException, MultiplyDefinedException {
if (sprop.getManager() == null) {
sprop.setManager(aStudy.getAuthor());
}
* @param knowledgeElementDAO
* the knowledgeElementDAO to set
*/
- public void setKnowledgeElementDAO(final KnowledgeElementDAO knowledgeElementDAO) {
+ public void setKnowledgeElementDAO(
+ final KnowledgeElementDAO knowledgeElementDAO) {
_knowledgeElementDAO = knowledgeElementDAO;
}
_simulationContextService = simulationContextService;
}
+ /**
+ * Get project settings.
+ *
+ * @return Project settings service
+ */
+ private ProjectSettingsService getProjectSettings() {
+ return _projectSettings;
+ }
+
+ /**
+ * Set project settings service.
+ *
+ * @param projectSettingsService
+ * project settings service
+ */
+ public void setProjectSettings(
+ final ProjectSettingsService projectSettingsService) {
+ _projectSettings = projectSettingsService;
+ }
+
}