Compare commits

...

7 Commits

15 changed files with 941 additions and 23 deletions

15
pom.xml
View File

@@ -41,6 +41,9 @@
<maven.compiler.source>8</maven.compiler.source>
<maven.compiler.target>8</maven.compiler.target>
<maven.compiler.debuglevel>lines,vars,source</maven.compiler.debuglevel>
<jersey.version>2.35</jersey.version>
<cxf.version>3.4.7</cxf.version>
</properties>
<dependencies>
@@ -54,6 +57,18 @@
<artifactId>jackson-module-jaxb-annotations</artifactId>
<version>2.12.2</version>
</dependency>
<dependency>
<groupId>org.apache.cxf</groupId>
<artifactId>cxf-rt-frontend-jaxrs</artifactId>
<version>${cxf.version}</version>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.glassfish.jersey.media</groupId>
<artifactId>jersey-media-multipart</artifactId>
<version>${jersey.version}</version>
<optional>true</optional>
</dependency>
</dependencies>
<profiles>

View File

@@ -17,6 +17,7 @@ package com.inteligr8.alfresco.activiti;
import com.inteligr8.alfresco.activiti.api.AdminApi;
import com.inteligr8.alfresco.activiti.api.AppDefinitionsApi;
import com.inteligr8.alfresco.activiti.api.AppVersionApi;
import com.inteligr8.alfresco.activiti.api.HistoricProcessInstancesApi;
import com.inteligr8.alfresco.activiti.api.ModelsApi;
import com.inteligr8.alfresco.activiti.api.ProcessInstancesApi;
import com.inteligr8.alfresco.activiti.api.ProfileApi;
@@ -44,6 +45,10 @@ public interface ApsPublicRestApi {
default AppVersionApi getAppVersionApi() {
return this.getApi(AppVersionApi.class);
}
default HistoricProcessInstancesApi getHistoricProcessInstancesApi() {
return this.getApi(HistoricProcessInstancesApi.class);
}
default ModelsApi getModelsApi() {
return this.getApi(ModelsApi.class);

View File

@@ -0,0 +1,18 @@
package com.inteligr8.alfresco.activiti;
import com.inteligr8.alfresco.activiti.api.AppDefinitionsCxfApi;
/**
* This interface appends Apache CXF implementation specific methods to the
* JAX-RS API of the APS Public ReST API. This is due to a lack of multi-part
* in the JAX-RS specification.
*
* @author brian@inteligr8.com
*/
public interface ApsPublicRestCxfApi extends ApsPublicRestApi {
default AppDefinitionsCxfApi getAppDefinitionsCxfApi() {
return this.getApi(AppDefinitionsCxfApi.class);
}
}

View File

@@ -0,0 +1,18 @@
package com.inteligr8.alfresco.activiti;
import com.inteligr8.alfresco.activiti.api.AppDefinitionsJerseyApi;
/**
* This interface appends Jersey implementation specific methods to the JAX-RS
* API of the APS Public ReST API. This is due to a lack of multi-part in the
* JAX-RS specification.
*
* @author brian@inteligr8.com
*/
public interface ApsPublicRestJerseyApi extends ApsPublicRestApi {
default AppDefinitionsJerseyApi getAppDefinitionsJerseyApi() {
return this.getApi(AppDefinitionsJerseyApi.class);
}
}

View File

@@ -0,0 +1,51 @@
package com.inteligr8.alfresco.activiti.api;
import javax.ws.rs.Consumes;
import javax.ws.rs.POST;
import javax.ws.rs.Path;
import javax.ws.rs.PathParam;
import javax.ws.rs.Produces;
import javax.ws.rs.QueryParam;
import javax.ws.rs.core.MediaType;
import com.inteligr8.alfresco.activiti.model.AppDefinitionRepresentation;
import com.inteligr8.alfresco.activiti.model.AppDefinitionUpdateResultRepresentation;
import com.inteligr8.alfresco.activiti.model.FileMultipartCxf;
@Path("/api/enterprise/app-definitions")
public interface AppDefinitionsCxfApi {
@POST
@Path("import")
@Consumes({ MediaType.MULTIPART_FORM_DATA })
@Produces({ MediaType.APPLICATION_JSON })
AppDefinitionRepresentation import_(
FileMultipartCxf body,
@QueryParam("renewIdmEntries") Boolean renewIdmEntries);
@POST
@Path("{modelId}/import")
@Consumes({ MediaType.MULTIPART_FORM_DATA })
@Produces({ MediaType.APPLICATION_JSON })
AppDefinitionRepresentation import_(
@PathParam("modelId") Long appId,
FileMultipartCxf body,
@QueryParam("renewIdmEntries") Boolean renewIdmEntries);
@POST
@Path("publish-app")
@Consumes({ MediaType.MULTIPART_FORM_DATA })
@Produces({ MediaType.APPLICATION_JSON })
AppDefinitionUpdateResultRepresentation publishApp(
FileMultipartCxf body);
@POST
@Path("{modelId}/publish-app")
@Consumes({ MediaType.MULTIPART_FORM_DATA })
@Produces({ MediaType.APPLICATION_JSON })
AppDefinitionUpdateResultRepresentation publishApp(
@PathParam("modelId") Long appId,
FileMultipartCxf body);
}

View File

@@ -0,0 +1,51 @@
package com.inteligr8.alfresco.activiti.api;
import javax.ws.rs.Consumes;
import javax.ws.rs.POST;
import javax.ws.rs.Path;
import javax.ws.rs.PathParam;
import javax.ws.rs.Produces;
import javax.ws.rs.QueryParam;
import javax.ws.rs.core.MediaType;
import com.inteligr8.alfresco.activiti.model.AppDefinitionRepresentation;
import com.inteligr8.alfresco.activiti.model.AppDefinitionUpdateResultRepresentation;
import com.inteligr8.alfresco.activiti.model.FileMultipartJersey;
@Path("/api/enterprise/app-definitions")
public interface AppDefinitionsJerseyApi {
@POST
@Path("import")
@Consumes({ MediaType.MULTIPART_FORM_DATA })
@Produces({ MediaType.APPLICATION_JSON })
AppDefinitionRepresentation importApp(
FileMultipartJersey file,
@QueryParam("renewIdmEntries") Boolean renewIdmEntries);
@POST
@Path("{modelId}/import")
@Consumes({ MediaType.MULTIPART_FORM_DATA })
@Produces({ MediaType.APPLICATION_JSON })
AppDefinitionRepresentation importApp(
@PathParam("modelId") Long appId,
FileMultipartJersey file,
@QueryParam("renewIdmEntries") Boolean renewIdmEntries);
@POST
@Path("publish-app")
@Consumes({ MediaType.MULTIPART_FORM_DATA })
@Produces({ MediaType.APPLICATION_JSON })
AppDefinitionUpdateResultRepresentation publishApp(
FileMultipartJersey file);
@POST
@Path("{modelId}/publish-app")
@Consumes({ MediaType.MULTIPART_FORM_DATA })
@Produces({ MediaType.APPLICATION_JSON })
AppDefinitionUpdateResultRepresentation publishApp(
@PathParam("modelId") Long appId,
FileMultipartJersey file);
}

View File

@@ -0,0 +1,35 @@
/*
* This program is free software: you can redistribute it and/or modify it
* under the terms of the GNU Lesser General Public License as published by
* the Free Software Foundation, either version 3 of the License, or (at your
* option) any later version.
*
* This program is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
* more details.
*
* You should have received a copy of the GNU General Public License along
* with this program. If not, see <https://www.gnu.org/licenses/>.
*/
package com.inteligr8.alfresco.activiti.api;
import javax.ws.rs.Consumes;
import javax.ws.rs.POST;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
import com.inteligr8.alfresco.activiti.model.HistoricProcessInstanceQueryRepresentation;
import com.inteligr8.alfresco.activiti.model.ProcessInstance;
import com.inteligr8.alfresco.activiti.model.ResultListDataRepresentation;
@Path("/api/enterprise/historic-process-instances")
public interface HistoricProcessInstancesApi {
@POST
@Path("query")
@Consumes({ "application/json" })
@Produces({ "application/json" })
ResultListDataRepresentation<ProcessInstance> query(HistoricProcessInstanceQueryRepresentation request);
}

View File

@@ -27,6 +27,8 @@ import javax.ws.rs.Produces;
import com.inteligr8.alfresco.activiti.model.CreateProcessInstance;
import com.inteligr8.alfresco.activiti.model.ProcessInstance;
import com.inteligr8.alfresco.activiti.model.ProcessInstanceQueryRepresentation;
import com.inteligr8.alfresco.activiti.model.ResultListDataRepresentation;
import com.inteligr8.alfresco.activiti.model.Variable;
@Path("/api/enterprise/process-instances")
@@ -36,6 +38,12 @@ public interface ProcessInstancesApi {
@Consumes({ "application/json" })
@Produces({ "application/json" })
ProcessInstance create(CreateProcessInstance processInstance);
@POST
@Path("query")
@Consumes({ "application/json" })
@Produces({ "application/json" })
ResultListDataRepresentation<ProcessInstance> query(ProcessInstanceQueryRepresentation request);
@GET
@Path("{processInstanceId}")

View File

@@ -0,0 +1,38 @@
package com.inteligr8.alfresco.activiti.model;
import java.io.IOException;
import java.io.InputStream;
import java.util.Arrays;
import java.util.List;
import org.apache.cxf.jaxrs.ext.multipart.Attachment;
import org.apache.cxf.jaxrs.ext.multipart.ContentDisposition;
import org.apache.cxf.jaxrs.ext.multipart.MultipartBody;
public class FileMultipartCxf extends MultipartBody {
public static FileMultipartCxf from(String filename, InputStream istream) throws IOException {
return new FileMultipartCxf(Arrays.asList(toAttachment(filename, istream)));
}
public FileMultipartCxf(List<Attachment> atts) throws IOException {
super(atts);
}
public FileMultipartCxf(List<Attachment> atts, boolean outbound) {
super(atts, outbound);
}
public Attachment getFileAttachment() {
return this.getAttachment("file");
}
private static Attachment toAttachment(String filename, InputStream istream) {
if (filename == null) {
return new Attachment("file", istream, new ContentDisposition("form-data; name=\"file\""));
} else {
return new Attachment("file", istream, new ContentDisposition("form-data; name=\"file\"; filename=\"" + filename + "\""));
}
}
}

View File

@@ -0,0 +1,38 @@
package com.inteligr8.alfresco.activiti.model;
import java.io.InputStream;
import java.text.ParseException;
import org.glassfish.jersey.media.multipart.BodyPart;
import org.glassfish.jersey.media.multipart.FormDataBodyPart;
import org.glassfish.jersey.media.multipart.FormDataContentDisposition;
import org.glassfish.jersey.media.multipart.FormDataMultiPart;
public class FileMultipartJersey extends FormDataMultiPart {
public static FileMultipartJersey from(String filename, InputStream istream) throws ParseException {
FileMultipartJersey multipart = new FileMultipartJersey();
multipart.bodyPart(toBodyPart(filename, istream));
return multipart;
}
private FileMultipartJersey() {
}
public FormDataBodyPart getFileAttachment() {
return this.getField("file");
}
private static BodyPart toBodyPart(String filename, InputStream istream) throws ParseException {
if (filename == null) {
return new FormDataBodyPart()
.contentDisposition(new FormDataContentDisposition("form-data; name=\"file\""))
.entity(istream);
} else {
return new FormDataBodyPart()
.contentDisposition(new FormDataContentDisposition("form-data; name=\"file\"; filename=\"" + filename + "\""))
.entity(istream);
}
}
}

View File

@@ -0,0 +1,397 @@
package com.inteligr8.alfresco.activiti.model;
import java.time.OffsetDateTime;
import java.util.LinkedList;
import java.util.List;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.fasterxml.jackson.annotation.JsonPropertyOrder;
@JsonInclude(JsonInclude.Include.NON_NULL)
@JsonPropertyOrder({
"excludeSubprocesses",
"finished",
"finishedAfter",
"finishedBefore",
"includeProcessVariables",
"involvedUser",
"order",
"processBusinessKey",
"processDefinitionId",
"processDefinitionKey",
"processInstanceId",
"processInstanceIds",
"size",
"sort",
"start",
"startedAfter",
"startedBefore",
"startedBy",
"superProcessInstanceId",
"tenantId",
"tenantIdLike",
"variables",
"withoutTenantId"
})
public class HistoricProcessInstanceQueryRepresentation {
@JsonProperty("excludeSubprocesses")
private Boolean excludeSubprocesses;
@JsonProperty("finished")
private Boolean finished;
@JsonProperty("finishedAfter")
private OffsetDateTime finishedAfter;
@JsonProperty("finishedBefore")
private OffsetDateTime finishedBefore;
@JsonProperty("includeProcessVariables")
private Boolean includeProcessVariables;
@JsonProperty("involvedUser")
private String involvedUser;
@JsonProperty("order")
private String order;
@JsonProperty("processBusinessKey")
private String processBusinessKey;
@JsonProperty("processDefinitionId")
private String processDefinitionId;
@JsonProperty("processDefinitionKey")
private String processDefinitionKey;
@JsonProperty("processInstanceId")
private String processInstanceId;
@JsonProperty("processInstanceIds")
private List<String> processInstanceIds;
@JsonProperty("size")
private Integer size;
@JsonProperty("sort")
private String sort;
@JsonProperty("start")
private Integer start;
@JsonProperty("startedAfter")
private OffsetDateTime startedAfter;
@JsonProperty("startedBefore")
private OffsetDateTime startedBefore;
@JsonProperty("startedBy")
private String startedBy;
@JsonProperty("superProcessInstanceId")
private String superProcessInstanceId;
@JsonProperty("tenantId")
private String tenantId;
@JsonProperty("tenantIdLike")
private String tenantIdLike;
@JsonProperty("variables")
private List<QueryVariable> variables;
@JsonProperty("withoutTenantId")
private Boolean withoutTenantId;
/**
* No args constructor for use in serialization
*/
public HistoricProcessInstanceQueryRepresentation() {
}
public Boolean isExcludeSubprocesses() {
return excludeSubprocesses;
}
public void setExcludeSubprocesses(Boolean excludeSubprocesses) {
this.excludeSubprocesses = excludeSubprocesses;
}
public HistoricProcessInstanceQueryRepresentation withExcludeSubprocesses(Boolean excludeSubprocesses) {
this.excludeSubprocesses = excludeSubprocesses;
return this;
}
public Boolean isFinished() {
return finished;
}
public void setFinished(Boolean finished) {
this.finished = finished;
}
public HistoricProcessInstanceQueryRepresentation withFinished(Boolean finished) {
this.finished = finished;
return this;
}
public OffsetDateTime getFinishedAfter() {
return finishedAfter;
}
public void setFinishedAfter(OffsetDateTime finishedAfter) {
this.finishedAfter = finishedAfter;
}
public HistoricProcessInstanceQueryRepresentation withFinishedAfter(OffsetDateTime finishedAfter) {
this.finishedAfter = finishedAfter;
return this;
}
public OffsetDateTime getFinishedBefore() {
return finishedBefore;
}
public void setFinishedBefore(OffsetDateTime finishedBefore) {
this.finishedBefore = finishedBefore;
}
public HistoricProcessInstanceQueryRepresentation withFinishedBefore(OffsetDateTime finishedBefore) {
this.finishedBefore = finishedBefore;
return this;
}
public Boolean isIncludeProcessVariables() {
return includeProcessVariables;
}
public void setIncludeProcessVariables(Boolean includeProcessVariables) {
this.includeProcessVariables = includeProcessVariables;
}
public HistoricProcessInstanceQueryRepresentation withIncludeProcessVariables(Boolean includeProcessVariables) {
this.includeProcessVariables = includeProcessVariables;
return this;
}
public String getInvolvedUser() {
return involvedUser;
}
public void setInvolvedUser(String involvedUser) {
this.involvedUser = involvedUser;
}
public HistoricProcessInstanceQueryRepresentation withInvolvedUser(String involvedUser) {
this.involvedUser = involvedUser;
return this;
}
public String getOrder() {
return order;
}
public void setOrder(String order) {
this.order = order;
}
public HistoricProcessInstanceQueryRepresentation withOrder(String order) {
this.order = order;
return this;
}
public String getProcessBusinessKey() {
return processBusinessKey;
}
public void setProcessBusinessKey(String processBusinessKey) {
this.processBusinessKey = processBusinessKey;
}
public HistoricProcessInstanceQueryRepresentation withProcessBusinessKey(String processBusinessKey) {
this.processBusinessKey = processBusinessKey;
return this;
}
public String getProcessDefinitionId() {
return processDefinitionId;
}
public void setProcessDefinitionId(String processDefinitionId) {
this.processDefinitionId = processDefinitionId;
}
public HistoricProcessInstanceQueryRepresentation withProcessDefinitionId(String processDefinitionId) {
this.processDefinitionId = processDefinitionId;
return this;
}
public String getProcessDefinitionKey() {
return processDefinitionKey;
}
public void setProcessDefinitionKey(String processDefinitionKey) {
this.processDefinitionKey = processDefinitionKey;
}
public HistoricProcessInstanceQueryRepresentation withProcessDefinitionKey(String processDefinitionKey) {
this.processDefinitionKey = processDefinitionKey;
return this;
}
public String getProcessInstanceId() {
return processInstanceId;
}
public void setProcessInstanceId(String processInstanceId) {
this.processInstanceId = processInstanceId;
}
public HistoricProcessInstanceQueryRepresentation withProcessInstanceId(String processInstanceId) {
this.processInstanceId = processInstanceId;
return this;
}
public List<String> getProcessInstanceIds() {
return processInstanceIds;
}
public void setProcessInstanceIds(List<String> processInstanceIds) {
this.processInstanceIds = processInstanceIds;
}
public HistoricProcessInstanceQueryRepresentation withProcessInstanceIds(List<String> processInstanceIds) {
this.processInstanceIds = processInstanceIds;
return this;
}
public Integer getSize() {
return size;
}
public void setSize(Integer size) {
this.size = size;
}
public HistoricProcessInstanceQueryRepresentation withSize(Integer size) {
this.size = size;
return this;
}
public String getSort() {
return sort;
}
public void setSort(String sort) {
this.sort = sort;
}
public HistoricProcessInstanceQueryRepresentation withSort(String sort) {
this.sort = sort;
return this;
}
public Integer getStart() {
return start;
}
public void setStart(Integer start) {
this.start = start;
}
public HistoricProcessInstanceQueryRepresentation withStart(Integer start) {
this.start = start;
return this;
}
public OffsetDateTime getStartedAfter() {
return startedAfter;
}
public void setStartedAfter(OffsetDateTime startedAfter) {
this.startedAfter = startedAfter;
}
public HistoricProcessInstanceQueryRepresentation withStartedAfter(OffsetDateTime startedAfter) {
this.startedAfter = startedAfter;
return this;
}
public OffsetDateTime getStartedBefore() {
return startedBefore;
}
public void setStartedBefore(OffsetDateTime startedBefore) {
this.startedBefore = startedBefore;
}
public HistoricProcessInstanceQueryRepresentation withStartedBefore(OffsetDateTime startedBefore) {
this.startedBefore = startedBefore;
return this;
}
public String getStartedBy() {
return startedBy;
}
public void setStartedBy(String startedBy) {
this.startedBy = startedBy;
}
public HistoricProcessInstanceQueryRepresentation withStartedBy(String startedBy) {
this.startedBy = startedBy;
return this;
}
public String getSuperProcessInstanceId() {
return superProcessInstanceId;
}
public void setSuperProcessInstanceId(String superProcessInstanceId) {
this.superProcessInstanceId = superProcessInstanceId;
}
public HistoricProcessInstanceQueryRepresentation withSuperProcessInstanceId(String superProcessInstanceId) {
this.superProcessInstanceId = superProcessInstanceId;
return this;
}
public String getTenantId() {
return tenantId;
}
public void setTenantId(String tenantId) {
this.tenantId = tenantId;
}
public HistoricProcessInstanceQueryRepresentation withTenantId(String tenantId) {
this.tenantId = tenantId;
return this;
}
public String getTenantIdLike() {
return tenantIdLike;
}
public void setTenantIdLike(String tenantIdLike) {
this.tenantIdLike = tenantIdLike;
}
public HistoricProcessInstanceQueryRepresentation withTenantIdLike(String tenantIdLike) {
this.tenantIdLike = tenantIdLike;
return this;
}
public List<QueryVariable> getVariables() {
if (variables == null)
variables = new LinkedList<>();
return variables;
}
public void setVariables(List<QueryVariable> variables) {
this.variables = variables;
}
public HistoricProcessInstanceQueryRepresentation withVariables(List<QueryVariable> variables) {
this.variables = variables;
return this;
}
public Boolean isWithoutTenantId() {
return withoutTenantId;
}
public void setWithoutTenantId(Boolean withoutTenantId) {
this.withoutTenantId = withoutTenantId;
}
public HistoricProcessInstanceQueryRepresentation withWithoutTenantId(Boolean withoutTenantId) {
this.withoutTenantId = withoutTenantId;
return this;
}
}

View File

@@ -11,26 +11,26 @@ import com.fasterxml.jackson.annotation.JsonPropertyOrder;
@JsonInclude(JsonInclude.Include.NON_NULL)
@JsonPropertyOrder({
"businessKey",
"ended",
"graphicalNotationDefined",
"id",
"name",
"processDefinitionCategory",
"processDefinitionDeploymentId",
"processDefinitionDescription",
"businessKey",
"processDefinitionId",
"processDefinitionKey",
"processDefinitionName",
"processDefinitionVersion",
"startFormDefined",
"started",
"startedBy",
"suspended",
"tenantId",
"started",
"ended",
"startedBy",
"processDefinitionName",
"processDefinitionDescription",
"processDefinitionKey",
"processDefinitionCategory",
"processDefinitionVersion",
"processDefinitionDeploymentId",
"graphicalNotationDefined",
"startFormDefined",
"suspended",
"variables"
})
public class ProcessInstance {
public class ProcessInstance extends Datum {
@JsonProperty("businessKey")
private String businessKey;

View File

@@ -0,0 +1,154 @@
package com.inteligr8.alfresco.activiti.model;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.fasterxml.jackson.annotation.JsonPropertyOrder;
@JsonInclude(JsonInclude.Include.NON_NULL)
@JsonPropertyOrder({
"appDefinitionId",
"page",
"processDefinitionId",
"processInstanceId",
"size",
"sort",
"start",
"state"
})
public class ProcessInstanceQueryRepresentation {
public enum Sort {
@JsonProperty("created-asc")
CreatedAsc,
@JsonProperty("created-desc")
CreatedDesc,
@JsonProperty("ended-asc")
EndedAsc,
@JsonProperty("ended-desc")
EndedDesc,
}
public enum State {
@JsonProperty("all")
All,
@JsonProperty("completed")
Completed,
@JsonProperty("running")
Running
}
@JsonProperty("appDefinitionId")
private Long appDefinitionId;
@JsonProperty("processDefinitionId")
private String processDefinitionId;
@JsonProperty("processInstanceId")
private String processInstanceId;
@JsonProperty("size")
private Integer size;
@JsonProperty("sort")
private Sort sort;
@JsonProperty("start")
private Integer start;
@JsonProperty("state")
private State state;
/**
* No args constructor for use in serialization
*/
public ProcessInstanceQueryRepresentation() {
}
public Long getAppDefinitionId() {
return appDefinitionId;
}
public void setAppDefinitionId(Long appDefinitionId) {
this.appDefinitionId = appDefinitionId;
}
public ProcessInstanceQueryRepresentation withAppDefinitionId(Long appDefinitionId) {
this.appDefinitionId = appDefinitionId;
return this;
}
public String getProcessDefinitionId() {
return processDefinitionId;
}
public void setProcessDefinitionId(String processDefinitionId) {
this.processDefinitionId = processDefinitionId;
}
public ProcessInstanceQueryRepresentation withProcessDefinitionId(String processDefinitionId) {
this.processDefinitionId = processDefinitionId;
return this;
}
public String getProcessInstanceId() {
return processInstanceId;
}
public void setProcessInstanceId(String processInstanceId) {
this.processInstanceId = processInstanceId;
}
public ProcessInstanceQueryRepresentation withProcessInstanceId(String processInstanceId) {
this.processInstanceId = processInstanceId;
return this;
}
public Integer getSize() {
return size;
}
public void setSize(Integer size) {
this.size = size;
}
public ProcessInstanceQueryRepresentation withSize(Integer size) {
this.size = size;
return this;
}
public Sort getSort() {
return sort;
}
public void setSort(Sort sort) {
this.sort = sort;
}
public ProcessInstanceQueryRepresentation withSort(Sort sort) {
this.sort = sort;
return this;
}
public Integer getStart() {
return start;
}
public void setStart(Integer start) {
this.start = start;
}
public ProcessInstanceQueryRepresentation withStart(Integer start) {
this.start = start;
return this;
}
public State getState() {
return state;
}
public void setState(State state) {
this.state = state;
}
public ProcessInstanceQueryRepresentation withState(State state) {
this.state = state;
return this;
}
}

View File

@@ -0,0 +1,90 @@
package com.inteligr8.alfresco.activiti.model;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.fasterxml.jackson.annotation.JsonPropertyOrder;
@JsonInclude(JsonInclude.Include.NON_NULL)
@JsonPropertyOrder({
"name",
"operation",
"type",
"value"
})
public class QueryVariable {
@JsonProperty("name")
private String name;
@JsonProperty("operation")
private String operation;
@JsonProperty("type")
private String type;
@JsonProperty("value")
private Object value;
/**
* No args constructor for use in serialization
*/
public QueryVariable() {
}
public QueryVariable(String name, String operation, String type, Object value) {
this.name = name;
this.operation = operation;
this.type = type;
this.value = value;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public QueryVariable withName(String name) {
this.name = name;
return this;
}
public String getOperation() {
return operation;
}
public void setOperation(String operation) {
this.operation = operation;
}
public QueryVariable withOperation(String operation) {
this.operation = operation;
return this;
}
public String getType() {
return type;
}
public void setType(String type) {
this.type = type;
}
public QueryVariable withType(String type) {
this.type = type;
return this;
}
public Object getValue() {
return value;
}
public void setValue(Object value) {
this.value = value;
}
public QueryVariable withValue(Object value) {
this.value = value;
return this;
}
}

View File

@@ -26,10 +26,10 @@ import com.fasterxml.jackson.annotation.JsonPropertyOrder;
"start",
"total"
})
public class ResultListDataRepresentation {
public class ResultListDataRepresentation<T extends Datum> {
@JsonProperty("data")
private List<Datum> data = new ArrayList<Datum>();
private List<T> data = new ArrayList<>();
@JsonProperty("size")
private Integer size;
@JsonProperty("start")
@@ -40,16 +40,16 @@ public class ResultListDataRepresentation {
private Map<String, Object> additionalProperties = new HashMap<String, Object>();
@JsonProperty("data")
public List<Datum> getData() {
public List<T> getData() {
return data;
}
@JsonProperty("data")
public void setData(List<Datum> data) {
public void setData(List<T> data) {
this.data = data;
}
public ResultListDataRepresentation withData(List<Datum> data) {
public ResultListDataRepresentation<T> withData(List<T> data) {
this.data = data;
return this;
}
@@ -64,7 +64,7 @@ public class ResultListDataRepresentation {
this.size = size;
}
public ResultListDataRepresentation withSize(Integer size) {
public ResultListDataRepresentation<T> withSize(Integer size) {
this.size = size;
return this;
}
@@ -79,7 +79,7 @@ public class ResultListDataRepresentation {
this.start = start;
}
public ResultListDataRepresentation withStart(Integer start) {
public ResultListDataRepresentation<T> withStart(Integer start) {
this.start = start;
return this;
}
@@ -94,7 +94,7 @@ public class ResultListDataRepresentation {
this.total = total;
}
public ResultListDataRepresentation withTotal(Integer total) {
public ResultListDataRepresentation<T> withTotal(Integer total) {
this.total = total;
return this;
}
@@ -109,7 +109,7 @@ public class ResultListDataRepresentation {
this.additionalProperties.put(name, value);
}
public ResultListDataRepresentation withAdditionalProperty(String name, Object value) {
public ResultListDataRepresentation<T> withAdditionalProperty(String name, Object value) {
this.additionalProperties.put(name, value);
return this;
}