Newer
Older
algoLike.pull / src / main / java / algoLike / push / LoseB.java
Shinji on 25 Jan 2023 1 KB pushから移植
package algoLike.push;

import java.util.*;
import java.util.stream.Collectors;
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 com.fasterxml.jackson.core.JsonProcessingException;
import pushPullRefactor.Getter;
import pushPullRefactor.Message;
import pushPullRefactor.Resource;
import pushPullRefactor.State;

@Path("/loseB")
@Component
@Resource("loseB")
public class LoseB {
	@State
	private boolean value;
	@PUT
	@Message({"handsB"})
	public void updateHandsB(@FormParam("handsB") List<String> handsB_json) throws JsonProcessingException {
		List<Map.Entry<Integer, Boolean>> handsB = new ArrayList<>();
		for (String str: handsB_json) {
			Map<Integer, Boolean> i = new ObjectMapper().readValue(str, HashMap.class);
			handsB.add(i.entrySet().iterator().next());
		}
		this.value = (handsB.stream().filter(item -> item.getValue()==false).collect(Collectors.toList()).size()==0);
	}
	@Produces(MediaType.APPLICATION_JSON)
	@GET
	@Getter
	public boolean getValue() {
		return value;
	}
}