SEARCH-339: Switching to an Interval Set

This commit is contained in:
Gethin James
2017-05-16 10:44:46 +02:00
parent 2372b48cb1
commit f4d93daa91
3 changed files with 50 additions and 8 deletions

View File

@@ -29,7 +29,9 @@ import org.codehaus.jackson.annotate.JsonCreator;
import org.codehaus.jackson.annotate.JsonProperty; import org.codehaus.jackson.annotate.JsonProperty;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.HashSet;
import java.util.List; import java.util.List;
import java.util.Set;
/** /**
* Parameters used for a search Interval. * Parameters used for a search Interval.
@@ -38,17 +40,17 @@ public class Interval
{ {
private final String field; private final String field;
private final String label; private final String label;
private final List<IntervalSet> sets; private final Set<IntervalSet> sets;
@JsonCreator @JsonCreator
public Interval( public Interval(
@JsonProperty("field") String field, @JsonProperty("field") String field,
@JsonProperty("label") String label, @JsonProperty("label") String label,
@JsonProperty("sets") List<IntervalSet> sets) @JsonProperty("sets") Set<IntervalSet> sets)
{ {
this.field = field; this.field = field;
this.label = label; this.label = label;
this.sets = sets == null ? new ArrayList<>() :sets; this.sets = sets == null ? new HashSet() :sets;
} }
public String getField() public String getField()
@@ -61,7 +63,7 @@ public class Interval
return label; return label;
} }
public List<IntervalSet> getSets() public Set<IntervalSet> getSets()
{ {
return sets; return sets;
} }

View File

@@ -30,6 +30,7 @@ import org.codehaus.jackson.annotate.JsonCreator;
import org.codehaus.jackson.annotate.JsonProperty; import org.codehaus.jackson.annotate.JsonProperty;
import java.util.List; import java.util.List;
import java.util.Set;
/** /**
* Parameters used for search Intervals. * Parameters used for search Intervals.
@@ -37,19 +38,19 @@ import java.util.List;
@AlfrescoPublicApi @AlfrescoPublicApi
public class IntervalParameters public class IntervalParameters
{ {
private final List<IntervalSet> sets; private final Set<IntervalSet> sets;
private final List<Interval> intervals; private final List<Interval> intervals;
@JsonCreator @JsonCreator
public IntervalParameters( public IntervalParameters(
@JsonProperty("sets") List<IntervalSet> sets, @JsonProperty("sets") Set<IntervalSet> sets,
@JsonProperty("intervals") List<Interval> intervals) @JsonProperty("intervals") List<Interval> intervals)
{ {
this.sets = sets; this.sets = sets;
this.intervals = intervals; this.intervals = intervals;
} }
public List<IntervalSet> getSets() public Set<IntervalSet> getSets()
{ {
return sets; return sets;
} }

View File

@@ -37,7 +37,7 @@ public class IntervalSet
{ {
private final String start; private final String start;
private final String end; private final String end;
private final String label; private String label;
private final boolean startInclusive; private final boolean startInclusive;
private final boolean endInclusive; private final boolean endInclusive;
@@ -71,6 +71,11 @@ public class IntervalSet
return label; return label;
} }
public void setLabel(String label)
{
this.label = label;
}
public boolean isStartInclusive() public boolean isStartInclusive()
{ {
return startInclusive; return startInclusive;
@@ -128,4 +133,38 @@ public class IntervalSet
", endInclusive=" + endInclusive + ", 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;
}
} }