package siena.core; import java.lang.reflect.Field; import java.util.List; import siena.QueryFilter; import siena.embed.JsonDeserializeAs; public class QueryFilterEmbedded extends QueryFilter { public List<Field> fields; public String operator; public String fieldSeparator; @JsonDeserializeAs(String.class) public Object value; public QueryFilterEmbedded(){ } public QueryFilterEmbedded(List<Field> fields, String operator, String fieldSeparator, Object value) { this.fields = fields; this.operator = operator; this.value = value; this.fieldSeparator = fieldSeparator; } public String toString() { return "fields:"+this.fields!=null?this.fields.toString():"null" +" - operator:"+this.operator +" - fieldSeparator"+this.fieldSeparator +" - value:"+this.value; } public boolean equals(Object obj){ if (this == obj) return true; if (obj == null) return false; if (getClass() != obj.getClass()) return false; QueryFilterEmbedded l = (QueryFilterEmbedded)obj; boolean b = true; for(int i=0; i<fields.size();i++){ if(fields.get(i) != null && !fields.get(i).equals(l.fields.get(i))){ b = false; } } return b &&(this.operator == null?l.operator==null:this.operator.equals(l.operator)) && (this.fieldSeparator == null?l.fieldSeparator==null:this.fieldSeparator.equals(l.fieldSeparator)) && (this.value == null?l.value==null:this.value.equals(l.value)); } }