public Interval locateInterval(Object value) { for (Interval interval : this) { if (interval.getName() == value) { return interval; } if (interval.getName() == null) { continue; } String name = (value == null ? null : value.toString()); if (interval.getName().equals(name)) { return interval; } } return null; } }
public JsonObject formatInterval(Interval interval) throws JsonException { if (interval == null) { return null; } JsonObject jsonObj = Json.createObject(); jsonObj.put(INTERVAL_NAME, interval.getName()); jsonObj.put(INTERVAL_IDX, Integer.toString(interval.getIndex())); if (interval.getType() != null) { jsonObj.put(INTERVAL_TYPE, interval.getName()); } if (interval.getMinValue() != null) { jsonObj.put(INTERVAL_MIN, formatValue(interval.getMinValue())); } if (interval.getMinValue() != null) { jsonObj.put(INTERVAL_MAX, formatValue(interval.getMaxValue())); } return jsonObj; }
public Interval parseInterval(JsonObject jsonObj) { if (jsonObj == null) { return null; } Interval interval = new Interval(); interval.setName(jsonObj.getString(INTERVAL_NAME)); interval.setType(jsonObj.getString(INTERVAL_TYPE)); interval.setIndex(jsonObj.getNumber(INTERVAL_IDX, 0).intValue()); interval.setMinValue(parseValue(jsonObj.get(INTERVAL_MIN))); interval.setMaxValue(parseValue(jsonObj.get(INTERVAL_MAX))); return interval; }
public DataSetIntervalIndex(DataSetGroupIndex parent, Interval interval) { super(parent, interval.getRows(), 0); this.intervalName = interval.getName(); intervalType = interval.getType(); minValue = interval.getMinValue(); maxValue = interval.getMaxValue(); }
public IntervalDateRange(int index, DateIntervalType intervalType, Date minDate, Date maxDate) { super(calculateName(intervalType, minDate)); super.setMinValue(minDate); super.setMaxValue(maxDate); super.setIndex(index); super.setType(intervalType != null ? intervalType.toString() : null); }
public IntervalListSecond(ColumnGroup columnGroup, int size) { super(columnGroup); intervalMap = new HashMap<Integer, Interval>(); for (int i = 0; i < size; i++) { Interval interval = new Interval(Integer.toString(i), i); interval.setType(columnGroup.getIntervalSize()); this.add(interval); intervalMap.put(i, interval); } }
Comparable max = null; for (Interval interval : intervalList) { names.add(interval.getName()); Comparable intervalMin = (Comparable) interval.getMinValue(); Comparable intervalMax = (Comparable) interval.getMaxValue();
@Override public Interval getInterval(String columnId, int row) { if (lastLookedUpDataSet == null) { return null; } DataColumn column = lastLookedUpDataSet.getColumnById(columnId); if (column == null) { return null; } // Get the target value List values = column.getValues(); Object value = row < values.size() ? values.get(row) : null; if (value == null) { return null; } Interval result = new Interval(value.toString(), row); result.setType(column.getIntervalType()); result.setMinValue(column.getMinValue()); result.setMaxValue(column.getMaxValue()); return result; }
@Test public void appendBetweenIntervalSelectionTest() { String filterValue = "testValue"; Long minValue = Long.valueOf(0); Long maxValue = Long.valueOf(2); DataSetGroup dataSetGroup = new DataSetGroup(); dataSetGroup.setColumnGroup(new ColumnGroup(COLUMN_TEST, COLUMN_TEST, GroupStrategy.DYNAMIC)); List<Interval> intervalList = new ArrayList<Interval>(); Interval interval = new Interval(filterValue); interval.setMinValue(minValue); interval.setMaxValue(maxValue); intervalList.add(interval); dataSetGroup.setSelectedIntervalList(intervalList); List<QueryParam> filterParams = new ArrayList<>(); kieServerDataSetProvider.appendIntervalSelection(dataSetGroup, filterParams); assertEquals(1, filterParams.size()); assertEquals(COLUMN_TEST, filterParams.get(0).getColumn()); assertEquals("BETWEEN", filterParams.get(0).getOperator()); assertEquals(Double.valueOf(minValue), filterParams.get(0).getValue().get(0)); assertEquals(Double.valueOf(maxValue), filterParams.get(0).getValue().get(1)); }
/** * Get the current filter interval matching the specified index * * @param columnId The column identifier. * @param idx The index of the interval * @return The target interval matching the specified parameters or null if it does not exist. */ public Interval filterInterval(String columnId, int idx) { List<Interval> selected = columnSelectionMap.get(columnId); if (selected != null && !selected.isEmpty()) { for (Interval interval : selected) { if (interval.getIndex() == idx) { return interval; } } } return null; }
public String formatInterval(Interval interval, DataColumn column) { // Raw values if (column == null || column.getColumnGroup() == null) { return interval.getName(); } // Date interval String type = interval.getType(); if (StringUtils.isBlank(type)) type = column.getIntervalType(); if (StringUtils.isBlank(type)) type = column.getColumnGroup().getIntervalSize(); DateIntervalType intervalType = DateIntervalType.getByName(type); if (intervalType != null) { ColumnSettings columnSettings = displayerSettings.getColumnSettings(column.getId()); String pattern = columnSettings != null ? columnSettings.getValuePattern() : ColumnSettings.getDatePattern(intervalType); String expression = columnSettings != null ? columnSettings.getValueExpression() : null; if (pattern == null) { pattern = ColumnSettings.getDatePattern(intervalType); } if (expression == null && column.getColumnGroup().getStrategy().equals(GroupStrategy.FIXED)) { expression = ColumnSettings.getFixedExpression(intervalType); } return formatDate(intervalType, column.getColumnGroup().getStrategy(), interval.getName(), pattern, expression); } // Label interval ColumnSettings columnSettings = displayerSettings.getColumnSettings(column); String expression = columnSettings.getValueExpression(); if (StringUtils.isBlank(expression)) return interval.getName(); return getEvaluator().evalExpression(interval.getName(), expression); }
public Interval cloneInstance() { Interval clone = new Interval(name); clone.index = index; clone.type = type; clone.minValue = minValue; clone.maxValue = maxValue; return clone; }
public void indexValue(Object value, int row) { Interval interval = locateInterval(value); if (interval == null) { // TODO: create a composite interval when the maxIntervals are reached. String name = (value == null ? null : value.toString()); int index = this.size(); this.add(interval = new Interval(name, index)); } interval.getRows().add(row); }
public void setSelectedIntervalList(List<Interval> intervalList) { if (intervalList == null) { selectedIntervalList.clear(); } else { selectedIntervalList = intervalList; // Make sure the interval types match String intervalsType = null; for (Interval interval : intervalList) { if (intervalsType == null) { intervalsType = interval.getType(); } else if (!interval.getType().equals(intervalsType)) { throw new RuntimeException("Different interval types. Expected " + intervalsType + " Found " + interval.getType()); } } // Force the group interval type to match the intervals declared. This is required in order to ensure // the intervals selection are always applied over a properly grouped data independently of the filters present. if (columnGroup != null && columnGroup.getIntervalSize() == null) { columnGroup.setIntervalSize(intervalsType); } } }
Comparable max = null; for (Interval interval : intervalList) { names.add(interval.getName()); Comparable intervalMin = (Comparable) interval.getMinValue(); Comparable intervalMax = (Comparable) interval.getMaxValue();
public IntervalDateRange(int index, DateIntervalType intervalType, Date minDate, Date maxDate) { super(calculateName(intervalType, minDate)); super.setMinValue(minDate); super.setMaxValue(maxDate); super.setIndex(index); super.setType(intervalType != null ? intervalType.toString() : null); }
@Override public Interval getInterval(String columnId, int row) { if (lastLookedUpDataSet == null) { return null; } DataColumn column = lastLookedUpDataSet.getColumnById(columnId); if (column == null) { return null; } // Get the target value List values = column.getValues(); Object value = row < values.size() ? values.get(row) : null; if (value == null) { return null; } Interval result = new Interval(value.toString(), row); result.setType(column.getIntervalType()); result.setMinValue(column.getMinValue()); result.setMaxValue(column.getMaxValue()); return result; }
@Test public void appendBetweenIntervalSelectionTest() { String filterValue = "testValue"; Long minValue = Long.valueOf(0); Long maxValue = Long.valueOf(2); DataSetGroup dataSetGroup = new DataSetGroup(); dataSetGroup.setColumnGroup(new ColumnGroup(COLUMN_TEST, COLUMN_TEST, GroupStrategy.DYNAMIC)); List<Interval> intervalList = new ArrayList<Interval>(); Interval interval = new Interval(filterValue); interval.setMinValue(minValue); interval.setMaxValue(maxValue); intervalList.add(interval); dataSetGroup.setSelectedIntervalList(intervalList); List<QueryParam> filterParams = new ArrayList<>(); kieServerDataSetProvider.appendIntervalSelection(dataSetGroup, filterParams); assertEquals(1, filterParams.size()); assertEquals(COLUMN_TEST, filterParams.get(0).getColumn()); assertEquals("BETWEEN", filterParams.get(0).getOperator()); assertEquals(Double.valueOf(minValue), filterParams.get(0).getValue().get(0)); assertEquals(Double.valueOf(maxValue), filterParams.get(0).getValue().get(1)); }
/** * Get the current filter selected interval indexes for the given data set column. * * @param columnId The column identifier. * @return A list of interval indexes */ public List<Integer> filterIndexes(String columnId) { List<Integer> result = new ArrayList<>(); List<Interval> selected = columnSelectionMap.get(columnId); if (selected == null) { return result; } for (Interval interval : selected) { result.add(interval.getIndex()); } return result; }
public IntervalListMonth(ColumnGroup columnGroup) { super(columnGroup); intervalMap = new HashMap<Integer, Interval>(); Month firstMonth = columnGroup.getFirstMonthOfYear(); int monthIndex = firstMonth.getIndex(); Month[] months = Month.getAll(); for (int i = 0; i < months.length; i++) { Month month = months[monthIndex-1]; Interval interval = new Interval(Integer.toString(month.getIndex()), i); interval.setType(columnGroup.getIntervalSize()); this.add(interval); intervalMap.put(monthIndex-1, interval); monthIndex = Month.nextIndex(monthIndex); } }