@Override public Number[][] getSparklinesXAndYNumbers(Object value) { IntervalMap intervalMap = (IntervalMap) value; ArrayList<Number> xValues = new ArrayList<>(); ArrayList<Number> yValues = new ArrayList<>(); if (intervalMap == null) { return new Number[2][0]; } Interval[] intervals = intervalMap.toKeysArray(); Object[] values = intervalMap.toValuesArray(); Number n; for (int i = 0; i < intervals.length; i++) { n = (Number) values[i]; if (n != null) { xValues.add(intervals[i].getLow()); yValues.add(n); } } return new Number[][]{xValues.toArray(new Number[0]), yValues.toArray(new Number[0])}; } }
@Override public String toString(TimeFormat timeFormat, DateTimeZone timeZone) { if (size == 0) { return FormattingAndParsingUtils.EMPTY_VALUE; } T[] values = toValuesArray(); StringBuilder sb = new StringBuilder(); sb.append('<'); for (int i = 0; i < size; i++) { sb.append('['); sb.append(AttributeUtils.printTimestampInFormat(array[i * 2], timeFormat, timeZone)); sb.append(", "); sb.append(AttributeUtils.printTimestampInFormat(array[i * 2 + 1], timeFormat, timeZone)); sb.append(", "); String stringValue = values[i].toString(); if (FormattingAndParsingUtils.containsDynamicSpecialCharacters(stringValue) || stringValue.trim().isEmpty()) { sb.append('"'); sb.append(stringValue.replace("\\", "\\\\").replace("\"", "\\\"")); sb.append('"'); } else { sb.append(stringValue); } sb.append(']'); if (i < size - 1) { sb.append("; "); } } sb.append('>'); return sb.toString(); }
@Override public String toString(TimeFormat timeFormat, DateTimeZone timeZone) { if (size == 0) { return FormattingAndParsingUtils.EMPTY_VALUE; } T[] values = toValuesArray(); StringBuilder sb = new StringBuilder(); sb.append('<'); for (int i = 0; i < size; i++) { sb.append('['); sb.append(AttributeUtils.printTimestampInFormat(array[i * 2], timeFormat, timeZone)); sb.append(", "); sb.append(AttributeUtils.printTimestampInFormat(array[i * 2 + 1], timeFormat, timeZone)); sb.append(", "); String stringValue = values[i].toString(); if (FormattingAndParsingUtils.containsDynamicSpecialCharacters(stringValue) || stringValue.trim().isEmpty()) { sb.append('"'); sb.append(stringValue.replace("\\", "\\\\").replace("\"", "\\\"")); sb.append('"'); } else { sb.append(stringValue); } sb.append(']'); if (i < size - 1) { sb.append("; "); } } sb.append('>'); return sb.toString(); }
/** * Used for obtaining a list of the numbers of row of a dynamic number column. * * @param row Row * @param column Column with dynamic type * @return list of numbers */ private List<Number> getDynamicNumberColumnNumbers(Element row, Column column) { Class type = column.getTypeClass(); if (!(AttributeUtils.isNumberType(type) && AttributeUtils.isDynamicType(type))) { throw new IllegalArgumentException("Column must be a dynamic number column"); } if (TimestampMap.class.isAssignableFrom(type)) {//Timestamp type: TimestampMap timestampMap = (TimestampMap) row.getAttribute(column); if (timestampMap == null) { return new ArrayList<>(); } Number[] dynamicNumbers = (Number[]) timestampMap.toValuesArray(); return Arrays.asList(dynamicNumbers); } else if (IntervalMap.class.isAssignableFrom(type)) {//Interval type: IntervalMap intervalMap = (IntervalMap) row.getAttribute(column); if (intervalMap == null) { return new ArrayList<>(); } Number[] dynamicNumbers = (Number[]) intervalMap.toValuesArray(); return Arrays.asList(dynamicNumbers); } else { throw new IllegalArgumentException("Unsupported dynamic type class " + type.getCanonicalName()); } }
private void serializeIntervalMap(final DataOutput out, final IntervalMap intervalMap) throws IOException { serialize(out, intervalMap.getIntervals()); Class mapClass = intervalMap.getClass(); if (mapClass.equals(IntervalBooleanMap.class)) { serialize(out, ((IntervalBooleanMap) intervalMap).toBooleanArray()); } else if (mapClass.equals(IntervalByteMap.class)) { serialize(out, ((IntervalByteMap) intervalMap).toByteArray()); } else if (mapClass.equals(IntervalCharMap.class)) { serialize(out, ((IntervalCharMap) intervalMap).toCharacterArray()); } else if (mapClass.equals(IntervalDoubleMap.class)) { serialize(out, ((IntervalDoubleMap) intervalMap).toDoubleArray()); } else if (mapClass.equals(IntervalFloatMap.class)) { serialize(out, ((IntervalFloatMap) intervalMap).toFloatArray()); } else if (mapClass.equals(IntervalIntegerMap.class)) { serialize(out, ((IntervalIntegerMap) intervalMap).toIntegerArray()); } else if (mapClass.equals(IntervalLongMap.class)) { serialize(out, ((IntervalLongMap) intervalMap).toLongArray()); } else if (mapClass.equals(IntervalShortMap.class)) { serialize(out, ((IntervalShortMap) intervalMap).toShortArray()); } else if (mapClass.equals(IntervalStringMap.class)) { serialize(out, intervalMap.toValuesArray()); } else { throw new RuntimeException("Unrecognized interval map class"); } }
private void serializeIntervalMap(final DataOutput out, final IntervalMap intervalMap) throws IOException { serialize(out, intervalMap.getIntervals()); Class mapClass = intervalMap.getClass(); if (mapClass.equals(IntervalBooleanMap.class)) { serialize(out, ((IntervalBooleanMap) intervalMap).toBooleanArray()); } else if (mapClass.equals(IntervalByteMap.class)) { serialize(out, ((IntervalByteMap) intervalMap).toByteArray()); } else if (mapClass.equals(IntervalCharMap.class)) { serialize(out, ((IntervalCharMap) intervalMap).toCharacterArray()); } else if (mapClass.equals(IntervalDoubleMap.class)) { serialize(out, ((IntervalDoubleMap) intervalMap).toDoubleArray()); } else if (mapClass.equals(IntervalFloatMap.class)) { serialize(out, ((IntervalFloatMap) intervalMap).toFloatArray()); } else if (mapClass.equals(IntervalIntegerMap.class)) { serialize(out, ((IntervalIntegerMap) intervalMap).toIntegerArray()); } else if (mapClass.equals(IntervalLongMap.class)) { serialize(out, ((IntervalLongMap) intervalMap).toLongArray()); } else if (mapClass.equals(IntervalShortMap.class)) { serialize(out, ((IntervalShortMap) intervalMap).toShortArray()); } else if (mapClass.equals(IntervalStringMap.class)) { serialize(out, intervalMap.toValuesArray()); } else { throw new RuntimeException("Unrecognized interval map class"); } }