Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //
- // Source code recreated from a .class file by IntelliJ IDEA
- // (powered by Fernflower decompiler)
- //
- package com.myspace.demo;
- import io.swagger.annotations.Api;
- import io.swagger.annotations.ApiOperation;
- import io.swagger.annotations.ApiParam;
- import java.util.List;
- import java.util.Optional;
- import java.util.function.Function;
- import java.util.function.Predicate;
- import java.util.stream.Collectors;
- import javax.ws.rs.Consumes;
- import javax.ws.rs.DELETE;
- import javax.ws.rs.GET;
- import javax.ws.rs.POST;
- import javax.ws.rs.Path;
- import javax.ws.rs.PathParam;
- import javax.ws.rs.Produces;
- import org.drools.core.runtime.process.InternalProcessRuntime;
- import org.jbpm.workflow.instance.impl.WorkflowProcessInstanceImpl;
- import org.kie.api.runtime.process.ProcessInstance;
- import org.kie.bootstrap.process.ProcessRuntimeProvider;
- @Path("/orders")
- @Api("Deals with orders created by customer")
- public class OrdersResource {
- private InternalProcessRuntime processRuntime = ProcessRuntimeProvider.getProcessRuntime();
- private String processId = "demo.orders";
- public OrdersResource() {
- }
- @POST
- @Produces({"application/json"})
- @Consumes({"application/json"})
- @ApiOperation(
- value = "Creates new instance of orders",
- tags = {"OrdersModel"}
- )
- public OrdersModel createResource(@ApiParam(value = "OrdersModel Object that needs to be created",required = true) OrdersModel resource) {
- if(resource == null) {
- resource = new OrdersModel();
- }
- ProcessInstance pi = this.processRuntime.startProcess(this.processId, resource.toMap());
- return OrdersModel.fromMap(Long.valueOf(pi.getId()), ((WorkflowProcessInstanceImpl)pi).getVariables());
- }
- @GET
- @Produces({"application/json"})
- @ApiOperation(
- value = "Returns a list of orders",
- tags = {"OrdersModel"}
- )
- public List<OrdersModel> getResources() {
- return (List)this.processRuntime.getProcessInstances().stream().filter((pi) -> {
- return pi.getProcessId().equals(this.processId);
- }).map((pi) -> {
- return OrdersModel.fromMap(Long.valueOf(pi.getId()), ((WorkflowProcessInstanceImpl)pi).getVariables());
- }).collect(Collectors.toList());
- }
- @GET
- @Path("/{id}")
- @Produces({"application/json"})
- @ApiOperation(
- value = "Returns information about specified orders",
- tags = {"OrdersModel"}
- )
- public OrdersModel getResource(@PathParam("id") Long id) {
- return (OrdersModel)Optional.ofNullable(this.processRuntime.getProcessInstance(id.longValue(), true)).map((pi) -> {
- return OrdersModel.fromMap(Long.valueOf(pi.getId()), ((WorkflowProcessInstanceImpl)pi).getVariables());
- }).orElse((Object)null);
- }
- @DELETE
- @Path("/{id}")
- @Produces({"application/json"})
- @ApiOperation(
- value = "Cancels specified orders",
- tags = {"OrdersModel"}
- )
- public OrdersModel deleteResource(@PathParam("id") Long id) {
- OrdersModel item = (OrdersModel)Optional.ofNullable(this.processRuntime.getProcessInstance(id.longValue(), true)).map((pi) -> {
- return OrdersModel.fromMap(Long.valueOf(pi.getId()), ((WorkflowProcessInstanceImpl)pi).getVariables());
- }).orElse((Object)null);
- this.processRuntime.abortProcessInstance(id.longValue());
- return item;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement