Process.java
package com.tradecloud.domain.async;
import com.tradecloud.common.base.PersistenceBase;
import org.hibernate.annotations.Fetch;
import org.hibernate.annotations.FetchMode;
import javax.persistence.*;
import javax.validation.constraints.NotNull;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;
@Entity
public class Process extends PersistenceBase {
@Enumerated(EnumType.STRING)
private ProcessType processType;
@Enumerated(EnumType.STRING)
@NotNull
private EntityType entityType;
@Enumerated(EnumType.STRING)
@NotNull
private ProcessState processState = ProcessState.PENDING;
@ElementCollection(fetch = FetchType.EAGER)
@CollectionTable(name = "process_fields", joinColumns = {@JoinColumn(name = "process_id", unique = false)})
@org.hibernate.annotations.ForeignKey(name = "fk_process")
@Fetch(value = FetchMode.SUBSELECT)
private Map<String, String> additionalFields = new HashMap<>();
private Long entityId;
private String reference;
private String userName;
private String error;
private EntityType relatedEntityType;
private Long relatedEntityId;
private String relatedEntityReference;
private Date processedDate;
private Date processingStartedDate;
public Process() {
}
public Process(ProcessType processType, EntityType entityType, Long entityId, String reference, String userName) {
this.processType = processType;
this.entityType = entityType;
this.entityId = entityId;
this.reference = reference;
this.userName = userName;
}
public ProcessType getProcessType() {
return processType;
}
public void setProcessType(ProcessType processType) {
this.processType = processType;
}
public EntityType getEntityType() {
return entityType;
}
public void setEntityType(EntityType entityType) {
this.entityType = entityType;
}
public Long getEntityId() {
return entityId;
}
public void setEntityId(Long entityId) {
this.entityId = entityId;
}
public ProcessState getProcessState() {
return processState;
}
public void setProcessState(ProcessState processState) {
this.processState = processState;
}
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
this.userName = userName;
}
public String getReference() {
return reference;
}
public void setReference(String reference) {
this.reference = reference;
}
public String getError() {
return error;
}
public void setError(String error) {
this.error = error;
}
public EntityType getRelatedEntityType() {
return relatedEntityType;
}
public void setRelatedEntityType(EntityType relatedEntity) {
this.relatedEntityType = relatedEntity;
}
public Long getRelatedEntityId() {
return relatedEntityId;
}
public void setRelatedEntityId(Long relatedEntityId) {
this.relatedEntityId = relatedEntityId;
}
public String getRelatedEntityReference() {
return relatedEntityReference;
}
public void setRelatedEntityReference(String relatedEntityReference) {
this.relatedEntityReference = relatedEntityReference;
}
public Date getProcessedDate() {
return processedDate;
}
public void setProcessedDate(Date processedDate) {
this.processedDate = processedDate;
}
public Date getProcessingStartedDate() {
return processingStartedDate;
}
public void setProcessingStartedDate(Date processingStartedDate) {
this.processingStartedDate = processingStartedDate;
}
@Override
public String toString() {
return "Process{" +
"processType=" + processType +
", entityType=" + entityType +
", entityId=" + entityId +
", reference='" + reference + '\'' +
'}';
}
public Map<String, String> getAdditionalFields() {
return additionalFields;
}
public void setAdditionalFields(Map<String, String> additionalFields) {
this.additionalFields = additionalFields;
}
}