diff --git a/src/main/java/org/alfresco/service/cmr/search/Interval.java b/src/main/java/org/alfresco/service/cmr/search/Interval.java index 4fc0e1addb..bc0855d4c8 100644 --- a/src/main/java/org/alfresco/service/cmr/search/Interval.java +++ b/src/main/java/org/alfresco/service/cmr/search/Interval.java @@ -29,7 +29,9 @@ import org.codehaus.jackson.annotate.JsonCreator; import org.codehaus.jackson.annotate.JsonProperty; import java.util.ArrayList; +import java.util.HashSet; import java.util.List; +import java.util.Set; /** * Parameters used for a search Interval. @@ -38,17 +40,17 @@ public class Interval { private final String field; private final String label; - private final List sets; + private final Set sets; @JsonCreator public Interval( @JsonProperty("field") String field, @JsonProperty("label") String label, - @JsonProperty("sets") List sets) + @JsonProperty("sets") Set sets) { this.field = field; this.label = label; - this.sets = sets == null ? new ArrayList<>() :sets; + this.sets = sets == null ? new HashSet() :sets; } public String getField() @@ -61,7 +63,7 @@ public class Interval return label; } - public List getSets() + public Set getSets() { return sets; } diff --git a/src/main/java/org/alfresco/service/cmr/search/IntervalParameters.java b/src/main/java/org/alfresco/service/cmr/search/IntervalParameters.java index 3ca6a1da37..f696ea3f6f 100644 --- a/src/main/java/org/alfresco/service/cmr/search/IntervalParameters.java +++ b/src/main/java/org/alfresco/service/cmr/search/IntervalParameters.java @@ -30,6 +30,7 @@ import org.codehaus.jackson.annotate.JsonCreator; import org.codehaus.jackson.annotate.JsonProperty; import java.util.List; +import java.util.Set; /** * Parameters used for search Intervals. @@ -37,19 +38,19 @@ import java.util.List; @AlfrescoPublicApi public class IntervalParameters { - private final List sets; + private final Set sets; private final List intervals; @JsonCreator public IntervalParameters( - @JsonProperty("sets") List sets, + @JsonProperty("sets") Set sets, @JsonProperty("intervals") List intervals) { this.sets = sets; this.intervals = intervals; } - public List getSets() + public Set getSets() { return sets; } diff --git a/src/main/java/org/alfresco/service/cmr/search/IntervalSet.java b/src/main/java/org/alfresco/service/cmr/search/IntervalSet.java index 17c3c73326..70b04db93f 100644 --- a/src/main/java/org/alfresco/service/cmr/search/IntervalSet.java +++ b/src/main/java/org/alfresco/service/cmr/search/IntervalSet.java @@ -37,7 +37,7 @@ public class IntervalSet { private final String start; private final String end; - private final String label; + private String label; private final boolean startInclusive; private final boolean endInclusive; @@ -71,6 +71,11 @@ public class IntervalSet return label; } + public void setLabel(String label) + { + this.label = label; + } + public boolean isStartInclusive() { return startInclusive; @@ -128,4 +133,38 @@ public class IntervalSet ", endInclusive=" + endInclusive + '}'; } + + @Override + public boolean equals(Object o) + { + if (this == o) + return true; + if (o == null || getClass() != o.getClass()) + return false; + + IntervalSet that = (IntervalSet) o; + + if (startInclusive != that.startInclusive) + return false; + if (endInclusive != that.endInclusive) + return false; + if (start != null ? !start.equals(that.start) : that.start != null) + return false; + if (end != null ? !end.equals(that.end) : that.end != null) + return false; + if (label != null ? !label.equals(that.label) : that.label != null) + return false; + + return true; + } + + @Override + public int hashCode() + { + int result = start != null ? start.hashCode() : 0; + result = 31 * result + (end != null ? end.hashCode() : 0); + result = 31 * result + (startInclusive ? 1 : 0); + result = 31 * result + (endInclusive ? 1 : 0); + return result; + } }