/** * */ package nl.ipo.cds.admin.ba.controller; import nl.idgis.commons.jobexecutor.Job; import nl.ipo.cds.domain.Bronhouder; import nl.ipo.cds.domain.Dataset; import nl.ipo.cds.domain.DatasetType; import nl.ipo.cds.domain.EtlJob; import nl.ipo.cds.domain.ImportJob; /** * @author Rob * */ public class DatasetInfo { private static final String PROGRESS_NO_PENDING_JOB = "NO_PENDING_JOB"; private static final String PROGRESS_WAIT_FOR_VALIDATION = "WAIT_FOR_VALIDATION"; private static final String PROGRESS_WAIT_FOR_IMPORT = "WAIT_FOR_IMPORT"; private static final String PROGRESS_VALIDATING = "VALIDATING"; private static final String PROGRESS_IMPORTING = "IMPORTING"; private static final String STATUS_IMPORT_NOT_IMPORTED = "NOT_IMPORTED"; private static final String STATUS_IMPORT_IMPORTED = "IMPORTED"; private static final String STATUS_IMPORT_IMPORTED_WARNINGS = "IMPORTED_WARNINGS"; private static final String STATUS_IMPORT_TRANSFORMED = "TRANSFORMED"; private static final String STATUS_IMPORT_TRANSFORMED_WARNINGS = "TRANSFORMED_WARNINGS"; private Dataset dataset; private EtlJob lastCompletedJob; private JobInfo lastValidationJobInfo; private JobInfo lastImportJobInfo; private EtlJob lastTransformJob; private EtlJob pendingJob; private EtlJob currentJob; public DatasetInfo (Dataset dataset) { this.dataset = dataset; } /** * @return the currentJob */ public EtlJob getCurrentJob() { return currentJob; } /** * @param currentJob the currentJob to set */ public void setCurrentJob(EtlJob currentJob) { this.currentJob = currentJob; } public EtlJob getLastCompletedJob() { return lastCompletedJob; } public void setLastCompletedJob(EtlJob lastCompletedJob) { this.lastCompletedJob = lastCompletedJob; } public EtlJob getPendingJob() { return pendingJob; } public void setPendingJob(EtlJob pendingJob) { this.pendingJob = pendingJob; } public String getProgress() { String progress = null; EtlJob pendingJob = this.getPendingJob(); if(pendingJob != null) { if(pendingJob.getStatus() == Job.Status.CREATED){ if(pendingJob instanceof ImportJob){ progress = PROGRESS_WAIT_FOR_IMPORT; } else { progress = PROGRESS_WAIT_FOR_VALIDATION; } } else { if(pendingJob instanceof ImportJob){ progress = PROGRESS_IMPORTING; } else { progress = PROGRESS_VALIDATING; } } } else { progress = PROGRESS_NO_PENDING_JOB; } return progress; } public EtlJob getLastTransformJob() { return lastTransformJob; } public void setLastTransformJob(EtlJob lastTransformJob) { this.lastTransformJob = lastTransformJob; } public JobInfo getLastValidationJobInfo() { return lastValidationJobInfo; } public void setLastValidationJobInfo(JobInfo lastValidationJobInfo) { this.lastValidationJobInfo = lastValidationJobInfo; } public JobInfo getLastImportJobInfo() { return lastImportJobInfo; } public void setLastImportJobInfo(JobInfo lastImportJobInfo) { this.lastImportJobInfo = lastImportJobInfo; } public Boolean isTransformed(){ return this.lastTransformJob != null && this.lastImportJobInfo != null && this.lastTransformJob.getFinishTime() != null && this.lastImportJobInfo.getEindTijd() != null && this.lastTransformJob.getFinishTime().after(this.lastImportJobInfo.getEindTijd()); } public String getStatusImport(){ String status = STATUS_IMPORT_NOT_IMPORTED; if(this.lastImportJobInfo != null){ boolean importWarnings = this.lastImportJobInfo.getWarningCount() > 0; if(importWarnings){ if(this.isTransformed()){ status = STATUS_IMPORT_TRANSFORMED_WARNINGS; } else { status = STATUS_IMPORT_IMPORTED_WARNINGS; } } else{ if(this.isTransformed()){ status = STATUS_IMPORT_TRANSFORMED; } else { status = STATUS_IMPORT_IMPORTED; } } } return status; } /* * Getters for dataset */ /** * @return id */ public Long getId() { return dataset.getId(); } /** * @return datasetType */ public DatasetType getDatasetType() { return dataset.getDatasetType(); } /** * @return bronhouder */ public Bronhouder getBronhouder() { return dataset.getBronhouder(); } /** * @return uuid */ public String getUuid() { return dataset.getUuid(); } /** * @return actief */ public Boolean getActief() { return dataset.getActief(); } public String getNaam() { return dataset.getNaam(); } }