diff --git a/src/main/java/com/iemr/common/identity/data/rmnch/RMNCHHouseHoldDetails.java b/src/main/java/com/iemr/common/identity/data/rmnch/RMNCHHouseHoldDetails.java index 5b8088af..a6d98563 100644 --- a/src/main/java/com/iemr/common/identity/data/rmnch/RMNCHHouseHoldDetails.java +++ b/src/main/java/com/iemr/common/identity/data/rmnch/RMNCHHouseHoldDetails.java @@ -361,6 +361,6 @@ public class RMNCHHouseHoldDetails { @Expose @Column(name = "isDeactivate") - private String isDeactivate; + private Boolean isDeactivate; } diff --git a/src/main/java/com/iemr/common/identity/utils/BooleanTypeAdapter.java b/src/main/java/com/iemr/common/identity/utils/BooleanTypeAdapter.java new file mode 100644 index 00000000..4c5ebe4a --- /dev/null +++ b/src/main/java/com/iemr/common/identity/utils/BooleanTypeAdapter.java @@ -0,0 +1,37 @@ +package com.iemr.common.identity.utils; + +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonToken; +import com.google.gson.stream.JsonWriter; + +import java.io.IOException; + +public class BooleanTypeAdapter extends TypeAdapter { + + @Override + public void write(JsonWriter out, Boolean value) throws IOException { + if (value == null) { + out.nullValue(); + } else { + out.value(value); + } + } + + @Override + public Boolean read(JsonReader in) throws IOException { + JsonToken token = in.peek(); + + if (token == JsonToken.BOOLEAN) { + return in.nextBoolean(); + } + if (token == JsonToken.STRING) { + return Boolean.parseBoolean(in.nextString()); + } + if (token == JsonToken.NUMBER) { + return in.nextInt() == 1; + } + in.skipValue(); + return false; + } + } diff --git a/src/main/java/com/iemr/common/identity/utils/mapper/InputMapper.java b/src/main/java/com/iemr/common/identity/utils/mapper/InputMapper.java index 4c8db37d..48dba36d 100644 --- a/src/main/java/com/iemr/common/identity/utils/mapper/InputMapper.java +++ b/src/main/java/com/iemr/common/identity/utils/mapper/InputMapper.java @@ -21,6 +21,7 @@ */ package com.iemr.common.identity.utils.mapper; +import com.iemr.common.identity.utils.BooleanTypeAdapter; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.stereotype.Service; @@ -48,6 +49,8 @@ public InputMapper() { if (builder == null) { builder = new GsonBuilder(); builder.setDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS"); + builder.registerTypeAdapter(Boolean.class, new BooleanTypeAdapter()); + builder.registerTypeAdapter(boolean.class, new BooleanTypeAdapter()); } }