Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,9 @@ public class FilterFacetOption {
@SerializedName("value")
private String value;

@SerializedName("range")
private Object[] range; // Array to hold two values of either Number or "inf", "-inf"

/**
* @return the counts
*/
Expand Down Expand Up @@ -56,6 +59,13 @@ public String getValue() {
return value;
}

/**
* @return the range
*/
public Object[] getRange() {
return range;
}

public void setCount(Integer count) {
this.count = count;
}
Expand All @@ -75,4 +85,32 @@ public void setStatus(String status) {
public void setValue(String value) {
this.value = value;
}

public void setRange(Object[] range) {
if (range != null && range.length != 2) {
throw new IllegalArgumentException("Range array must contain exactly two elements.");
}

Object[] validatedRange = new Object[2];
for (int i = 0; i < range.length; i++) {
validatedRange[i] = validateRangeElement(range[i]);
}
this.range = validatedRange;
}

/**
* Validates a single range element. Each element should be string "inf" or "-inf" or a Number
*/
private Object validateRangeElement(Object element) {
if (element instanceof Number) {
return element;
} else if (element instanceof String) {
String str = (String) element;
if (str.equals("inf") || str.equals("-inf")) {
return str;
}
}
throw new IllegalArgumentException(
"Each element of a range must be a Number or the string 'inf' or '-inf'");
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -79,6 +79,12 @@ public void facetOption() throws Exception {
assertEquals(facet.getDisplayName(), "Jif");
assertEquals(facet.getStatus(), "");
assertEquals(facet.getValue(), "Jif");
assertEquals(facet.getRange()[0], "-inf");
assertEquals(facet.getRange()[1], 10.0);
Object[] range = {10, "inf"};
facet.setRange(range);
assertEquals(facet.getRange()[0], 10);
assertEquals(facet.getRange()[1], "inf");
}

@Test
Expand Down
3 changes: 2 additions & 1 deletion constructorio-client/src/test/resources/facetoption.json
Original file line number Diff line number Diff line change
Expand Up @@ -3,5 +3,6 @@
"data": {},
"display_name": "Jif",
"status": "",
"value": "Jif"
"value": "Jif",
"range": ["-inf", 10]
}