Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -1,16 +1,19 @@
package org.folio.rest.workflow.dto;

import org.folio.rest.workflow.model.has.HasChecksum;
import org.folio.rest.workflow.model.has.HasCreatedOn;
import org.folio.rest.workflow.model.has.HasDeploymentId;
import org.folio.rest.workflow.model.has.HasId;
import org.folio.rest.workflow.model.has.HasInformational;
import org.folio.rest.workflow.model.has.HasName;
import org.folio.rest.workflow.model.has.HasNodes;
import org.folio.rest.workflow.model.has.HasUpdatedOn;
import org.folio.rest.workflow.model.has.HasVersionTag;
import org.folio.rest.workflow.model.has.common.HasWorkflowCommon;

/**
* This is a DTO design for providing the entire {@link org.folio.rest.workflow.model.Workflow Workflow} model.
*/
public interface WorkflowDto extends HasDeploymentId, HasId, HasInformational, HasName, HasNodes, HasVersionTag, HasWorkflowCommon {
public interface WorkflowDto extends HasChecksum, HasCreatedOn, HasDeploymentId, HasId, HasInformational, HasName, HasNodes, HasUpdatedOn, HasVersionTag, HasWorkflowCommon {

}
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
package org.folio.rest.workflow.model;

import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import jakarta.annotation.Nullable;
import jakarta.persistence.CollectionTable;
import jakarta.persistence.Column;
import jakarta.persistence.Convert;
Expand All @@ -15,16 +16,20 @@
import jakarta.validation.constraints.Min;
import jakarta.validation.constraints.NotNull;
import jakarta.validation.constraints.Size;
import java.time.Instant;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.folio.rest.workflow.model.converter.JsonNodeConverter;
import org.folio.rest.workflow.model.has.HasChecksum;
import org.folio.rest.workflow.model.has.HasCreatedOn;
import org.folio.rest.workflow.model.has.HasDeploymentId;
import org.folio.rest.workflow.model.has.HasId;
import org.folio.rest.workflow.model.has.HasInformational;
import org.folio.rest.workflow.model.has.HasName;
import org.folio.rest.workflow.model.has.HasNodes;
import org.folio.rest.workflow.model.has.HasUpdatedOn;
import org.folio.rest.workflow.model.has.HasVersionTag;
import org.folio.rest.workflow.model.has.common.HasWorkflowCommon;
import org.folio.spring.domain.model.AbstractBaseEntity;
Expand All @@ -34,12 +39,20 @@

@Entity
@JsonIgnoreProperties({ "hibernateLazyInitializer", "handler" })
public class Workflow extends AbstractBaseEntity implements HasDeploymentId, HasId, HasInformational, HasName, HasNodes, HasVersionTag, HasWorkflowCommon {
public class Workflow extends AbstractBaseEntity implements HasChecksum, HasCreatedOn, HasDeploymentId, HasId, HasInformational, HasName, HasNodes, HasUpdatedOn, HasVersionTag, HasWorkflowCommon {

@Column(nullable = true)
@ColumnDefault("false")
private Boolean active;

@Nullable
@Column
private String checksum;

@NotNull
@Column(columnDefinition="TIMESTAMP WITH TIME ZONE NOT NULL DEFAULT NOW()")
private Instant createdOn;

@Column(unique = true)
private String deploymentId;

Expand All @@ -63,13 +76,17 @@
@Column(nullable = false, unique = true)
private String name;

@OneToMany

Check warning on line 79 in components/src/main/java/org/folio/rest/workflow/model/Workflow.java

View check run for this annotation

SonarQubeCloud / SonarCloud Code Analysis

Add "mappedBy" or "@JoinColumn" to this "@OneToMany" relationship.

See more on https://sonarcloud.io/project/issues?id=org.folio%3Amod-workflow&issues=AZ9N0DsSlU4VlX1196SA&open=AZ9N0DsSlU4VlX1196SA&pullRequest=160
@OrderColumn
private List<Node> nodes;

@Embedded
private Setup setup;

@NotNull
@Column(columnDefinition="TIMESTAMP WITH TIME ZONE NOT NULL DEFAULT NOW()")
private Instant updatedOn;

@Version
@NotNull
@Size(min = 1, max = 64)
Expand All @@ -80,10 +97,13 @@
super();

active = false;
checksum = null;
createdOn = now();
name = "";
historyTimeToLive = 0;
initialContext = new HashMap<>();
nodes = new ArrayList<>();
updatedOn = now();
versionTag = "1.0";
}

Expand All @@ -93,6 +113,10 @@
active = false;
}

if (createdOn == null) {
createdOn = now();
}

if (historyTimeToLive == null) {
historyTimeToLive = 0;
}
Expand All @@ -109,6 +133,10 @@
nodes = new ArrayList<>();
}

if (updatedOn == null) {
updatedOn = now();
}

if (versionTag == null) {
versionTag = "1.0";
}
Expand All @@ -124,6 +152,16 @@
return active;
}

@Override
public String getChecksum() {
return checksum;
}

@Override
public Instant getCreatedOn() {
return createdOn;
}

@Override
public Integer getHistoryTimeToLive() {
return historyTimeToLive;
Expand All @@ -139,6 +177,11 @@
return setup;
}

@Override
public Instant getUpdatedOn() {
return updatedOn;
}

@Override
public String getVersionTag() {
return versionTag;
Expand Down Expand Up @@ -169,6 +212,16 @@
this.active = active;
}

@Override
public void setChecksum(String checksum) {
this.checksum = checksum;
}

@Override
public void setCreatedOn(Instant createdOn) {
this.createdOn = createdOn;
}

@Override
public void setHistoryTimeToLive(Integer historyTimeToLive) {
this.historyTimeToLive = historyTimeToLive;
Expand All @@ -184,6 +237,11 @@
this.setup = setup;
}

@Override
public void setUpdatedOn(Instant updatedOn) {
this.updatedOn = updatedOn;
}

@Override
public void setVersionTag(String versionTag) {
this.versionTag = versionTag;
Expand All @@ -209,4 +267,16 @@
this.deploymentId = deploymentId;
}

/**
* Get the current time.
*
* This is used to allow for easier unit testing where the unit tests need only override this method through mocks or similar.
*
* @return The current instant.
*/
Instant now() {

return Instant.now();
}

}
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
package org.folio.rest.workflow.model.has;

/**
* This interface provides the Checksum methods.
*/
public interface HasChecksum {

public String getChecksum();

public void setChecksum(String checksum);
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
package org.folio.rest.workflow.model.has;

import java.time.Instant;

/**
* This interface provides the CreatedOn methods.
*/
public interface HasCreatedOn {

public Instant getCreatedOn();

public void setCreatedOn(Instant createdOn);
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
package org.folio.rest.workflow.model.has;

import java.time.Instant;

/**
* This interface provides the UpdatedOn methods.
*/
public interface HasUpdatedOn {

public Instant getUpdatedOn();

public void setUpdatedOn(Instant updatedOn);
}
Loading