package ai.cogmission.mosaic; import static ai.cogmission.mosaic.LayoutConstants.*; import java.awt.geom.Rectangle2D; import java.io.IOException; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.core.ObjectCodec; import com.fasterxml.jackson.databind.DeserializationContext; import com.fasterxml.jackson.databind.JsonDeserializer; import com.fasterxml.jackson.databind.JsonNode; public class AreaDeserializer extends JsonDeserializer<Rectangle2D.Double> { @Override public Rectangle2D.Double deserialize(JsonParser jsonParser, DeserializationContext deserializationContext) throws IOException { ObjectCodec oc = jsonParser.getCodec(); JsonNode node = oc.readTree(jsonParser); String[] params = node.get(KEY_SURFACE_BOUNDS).asText().split(CELL_PTRN); return new Rectangle2D.Double( Double.parseDouble(params[X - 1]), Double.parseDouble(params[Y - 1]), Double.parseDouble(params[W - 1]), Double.parseDouble(params[H - 1])); } }