package stockManagement.push; import java.util.*; import javax.ws.rs.*; import javax.ws.rs.client.*; import javax.ws.rs.core.*; import org.springframework.stereotype.Component; import com.fasterxml.jackson.databind.ObjectMapper; import pushPullRefactor.*; import com.fasterxml.jackson.core.JsonProcessingException; @Path("/handling") @Component @Resource("handling") public class Handling { private Client client = ClientBuilder.newClient(); @Cache("available") private Map.Entry<String, Integer> available; @Cache("request") private Map.Entry<String, Integer> request; @PushReference("shipping") @Pullable("direct") private String shipping = "/shipping"; @PushReference("stock") private String stock = "/stock"; @State private Map.Entry<String, Map.Entry<Integer, Integer>> value; @Path("/available") @PUT @Message({"available", "shortage"}) public void updateAvailable(@FormParam("available") String available_json, @FormParam("shortage") String shortage_json) throws JsonProcessingException { Map<String, Integer> shortage = new HashMap<>(); { Map<String, Integer> i = new ObjectMapper().readValue(shortage_json, HashMap.class); shortage = i; } Map.Entry<String, Integer> available; { Map<String, Integer> i = new ObjectMapper().readValue(available_json, HashMap.class); available = new AbstractMap.SimpleEntry<>(i.entrySet().iterator().next().getKey(), i.entrySet().iterator().next().getValue()); } this.available = available; Map.Entry<String, Map.Entry<Integer, Integer>> temp_if6; int temp_get14; if (shortage.get(available.getKey()) != null) { temp_get14 = shortage.get(available.getKey()); } else { temp_get14 = 0; } if ((available.getValue()>=temp_get14)) { int temp_get15; if (shortage.get(available.getKey()) != null) { temp_get15 = shortage.get(available.getKey()); } else { temp_get15 = 0; } int temp_get16; if (shortage.get(available.getKey()) != null) { temp_get16 = shortage.get(available.getKey()); } else { temp_get16 = 0; } temp_if6 = new AbstractMap.SimpleEntry<>(available.getKey(), new AbstractMap.SimpleEntry<>(temp_get15, (available.getValue()-temp_get16))); } else { temp_if6 = new AbstractMap.SimpleEntry<>(available.getKey(), new AbstractMap.SimpleEntry<>(0, available.getValue())); } this.value = temp_if6; Form form = new Form(); form.param("handling", new ObjectMapper().writeValueAsString(this.value)); Entity<Form> entity = Entity.entity(form, MediaType.APPLICATION_FORM_URLENCODED); String result = client.target("http://localhost:8080").path(shipping).request().put(entity, String.class); form = new Form(); form.param("handling", new ObjectMapper().writeValueAsString(this.value)); entity = Entity.entity(form, MediaType.APPLICATION_FORM_URLENCODED); result = client.target("http://localhost:8080").path(stock).request().post(entity, String.class); } @Path("/request") @PUT @Message({"request", "stock"}) public void updateRequest(@FormParam("request") String request_json, @FormParam("stock") String stock_json) throws JsonProcessingException { Map<String, Integer> stock = new HashMap<>(); { Map<String, Integer> i = new ObjectMapper().readValue(stock_json, HashMap.class); stock = i; } Map.Entry<String, Integer> request; { Map<String, Integer> i = new ObjectMapper().readValue(request_json, HashMap.class); request = new AbstractMap.SimpleEntry<>(i.entrySet().iterator().next().getKey(), i.entrySet().iterator().next().getValue()); } this.request = request; Map.Entry<String, Map.Entry<Integer, Integer>> temp_if7; int temp_get17; if (stock.get(request.getKey()) != null) { temp_get17 = stock.get(request.getKey()); } else { temp_get17 = 0; } if ((temp_get17>=request.getValue())) { int temp_get18; if (stock.get(request.getKey()) != null) { temp_get18 = stock.get(request.getKey()); } else { temp_get18 = 0; } temp_if7 = new AbstractMap.SimpleEntry<>(request.getKey(), new AbstractMap.SimpleEntry<>(request.getValue(), (temp_get18-request.getValue()))); } else { int temp_get19; if (stock.get(request.getKey()) != null) { temp_get19 = stock.get(request.getKey()); } else { temp_get19 = 0; } temp_if7 = new AbstractMap.SimpleEntry<>(request.getKey(), new AbstractMap.SimpleEntry<>(0, temp_get19)); } this.value = temp_if7; Form form = new Form(); form.param("handling", new ObjectMapper().writeValueAsString(this.value)); Entity<Form> entity = Entity.entity(form, MediaType.APPLICATION_FORM_URLENCODED); String result = client.target("http://localhost:8080").path(this.stock).request().post(entity, String.class); form = new Form(); form.param("handling", new ObjectMapper().writeValueAsString(this.value)); entity = Entity.entity(form, MediaType.APPLICATION_FORM_URLENCODED); result = client.target("http://localhost:8080").path(shipping).request().put(entity, String.class); } @Produces(MediaType.APPLICATION_JSON) @GET @Getter public Map.Entry<String, Map.Entry<Integer, Integer>> getValue() { return value; } }