001package com.plivo.api.serializers;
002
003import com.fasterxml.jackson.core.JsonGenerator;
004import com.fasterxml.jackson.core.JsonProcessingException;
005import com.fasterxml.jackson.databind.JsonSerializer;
006import com.fasterxml.jackson.databind.SerializerProvider;
007import com.plivo.api.util.PropertyFilter;
008import java.io.IOException;
009
010public class PropertyFilterSerializer<T> extends JsonSerializer<PropertyFilter<T>> {
011
012  @Override
013  public void serialize(PropertyFilter<T> value, JsonGenerator gen, SerializerProvider serializers)
014    throws IOException, JsonProcessingException {
015    gen.writeStartObject();
016    if (value.equalTo() != null) {
017      gen.writeObjectField("", value.equalTo());
018    }
019    if (value.greaterThan() != null) {
020      gen.writeObjectField("__gt", value.greaterThan());
021    }
022    if (value.greaterOrEqual() != null) {
023      gen.writeObjectField("__gte", value.greaterOrEqual());
024    }
025    if (value.lessThan() != null) {
026      gen.writeObjectField("__lt", value.lessThan());
027    }
028    if (value.lessOrEqual() != null) {
029      gen.writeObjectField("__lte", value.lessOrEqual());
030    }
031    gen.writeEndObject();
032  }
033}