ChangeRequest.java
package access.manage;
import access.model.EntityType;
import com.fasterxml.jackson.annotation.JsonIgnore;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
import java.io.Serializable;
import java.time.Instant;
import java.util.Map;
import java.util.Objects;
@NoArgsConstructor
@Getter
public class ChangeRequest implements Serializable {
@Setter
private String id;
@Setter
private String metaDataId;
@Setter
private String type;
private String note;
private Map<String, Object> pathUpdates;
private Map<String, Object> auditData;
private boolean incrementalChange;
private PathUpdateType pathUpdateType;
private RequestType requestType;
private Instant created;
@Setter
private String ticketKey;
public ChangeRequest(Map<String, Object> manageChangeRequest) {
this.id = (String) manageChangeRequest.get("id");
this.type = (String) manageChangeRequest.get("type");
this.metaDataId = (String) manageChangeRequest.get("metaDataId");
}
public ChangeRequest(String metaDataId,
EntityType entityType,
Map<String, Object> pathUpdates,
boolean incrementalChange,
PathUpdateType pathUpdateType,
RequestType requestType) {
this.metaDataId = metaDataId;
this.type = entityType.name();
this.pathUpdates = pathUpdates;
this.incrementalChange = incrementalChange;
this.pathUpdateType = pathUpdateType;
this.requestType = requestType;
}
public void setAuditData(Map<String, Object> auditData) {
this.auditData = auditData;
this.note = auditData != null ? (String) auditData.get("notes") : null;
}
@JsonIgnore
public boolean matches(Map<String, Object> changeRequestMap) {
String pathUpdateTypeString = this.pathUpdateType != null ? this.pathUpdateType.name() : null;
String requestTypeString = this.requestType != null ? this.requestType.name() : null;
return Objects.equals(changeRequestMap.get("pathUpdateType"), pathUpdateTypeString) &&
Objects.equals(changeRequestMap.get("requestType"), requestTypeString) &&
Objects.equals(changeRequestMap.get("pathUpdates"), pathUpdates) ;
}
}