package pl.edu.icm.saos.persistence.model.importer; import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.GeneratedValue; import javax.persistence.GenerationType; import javax.persistence.Id; import javax.persistence.Inheritance; import javax.persistence.InheritanceType; import javax.persistence.SequenceGenerator; import org.joda.time.DateTime; import pl.edu.icm.saos.persistence.common.ColumnDefinitionConst; import pl.edu.icm.saos.persistence.common.DataObject; /** * @author Ɓukasz Dumiszewski */ @Entity @Inheritance(strategy = InheritanceType.TABLE_PER_CLASS) @SequenceGenerator(name = "seq_raw_source_judgment", allocationSize = 1, sequenceName = "seq_raw_source_judgment") public abstract class RawSourceJudgment extends DataObject { private String sourceId; private DateTime processingDate; private boolean processed = false; //------------------------ GETTERS -------------------------- @Id @GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "seq_raw_source_judgment") @Override public long getId() { return id; } /** Is completely processed? (and is not supposed to be processed again) */ @Column(columnDefinition=ColumnDefinitionConst.BOOLEAN_NOT_NULL_DEFUALT_FALSE) public boolean isProcessed() { return processed; } public DateTime getProcessingDate() { return processingDate; } /** * Id of the judgment in source system <br/> * In case of reading from pdf/html it can be a value generated by the import process */ public String getSourceId() { return sourceId; } //------------------------ LOGIC -------------------------- public void markProcessed() { setProcessed(true); setProcessingDate(new DateTime()); } //------------------------ SETTERS -------------------------- protected void setProcessingDate(DateTime processingDate) { this.processingDate = processingDate; } protected void setProcessed(boolean processed) { this.processed = processed; } public void setSourceId(String sourceId) { this.sourceId = sourceId; } }