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;
}
}