public DataSetLookup fromJson(String jsonString) throws JsonException { if (jsonString == null || jsonString.trim().isEmpty()) { return null; } JsonObject dataSetLookupJson = Json.parse(jsonString); return fromJson(dataSetLookupJson); }
@Test public void testDateFormat() { String d1 = "2020-11-10 23:59:59"; Date d2 = jsonMarshaller.parseDate(d1); String d3 = jsonMarshaller.formatDate(d2); assertEquals(d1, d3); d1 = "2020-01-01 00:00:00"; d2 = jsonMarshaller.parseDate(d1); d3 = jsonMarshaller.formatDate(d2); assertEquals(d1, d3); }
public DataSetDefJSONMarshaller(DataSetProviderRegistry dataSetProviderRegistry) { this(dataSetProviderRegistry, DataSetLookupJSONMarshaller.get()); }
@Test public void testDataSetLookupMarshalling() { DataSetLookup original = DataSetLookupFactory.newDataSetLookupBuilder() .dataset("mydataset") .filter(OR(notEqualsTo("department", "IT"), greaterOrEqualsTo("amount", 100d))) .filter("department", notEqualsTo("IT")) .filter("amount", between(100d, 200d)) .filter("date", greaterThan(jsonMarshaller.parseDate("2018-01-01 00:00:00"))) .filter("country", isNull()) .group("department").select("Services") .group("date", "year").dynamic(DateIntervalType.YEAR, true) .column("date") .column("amount", AggregateFunctionType.SUM, "total") .sort("date", SortOrder.ASCENDING) .buildLookup(); JsonObject _jsonObj = jsonMarshaller.toJson(original); assertNotNull(_jsonObj.toString()); DataSetLookup unmarshalled = jsonMarshaller.fromJson(_jsonObj); assertEquals(unmarshalled, original); }
public JsonObject formatDataSetGroup(DataSetGroup dataSetGroup) throws JsonException { if (dataSetGroup == null) { return null; } JsonObject dataSetGroupJson = Json.createObject(); dataSetGroupJson.put(COLUMNGROUP, formatColumnGroup(dataSetGroup.getColumnGroup())); dataSetGroupJson.put(GROUPFUNCTIONS, formatGroupFunctions(dataSetGroup.getGroupFunctions())); dataSetGroupJson.put(SELECTEDINTERVALS, formatSelectedIntervals(dataSetGroup.getSelectedIntervalList())); dataSetGroupJson.put(JOIN, dataSetGroup.isJoin() ? "true" : "false"); return dataSetGroupJson; }
public JsonObject formatColumnFilter(ColumnFilter columnFilter) throws JsonException { if ( columnFilter == null ) return null; JsonObject colFilterJson = Json.createObject(); // LogicalExprFilter o CoreFunctionFilter if ( columnFilter instanceof LogicalExprFilter ) { LogicalExprFilter lef = (LogicalExprFilter) columnFilter; colFilterJson.put(COLUMN, lef.getColumnId()); colFilterJson.put(FUNCTION_TYPE, lef.getLogicalOperator().toString()); colFilterJson.put(FUNCTION_ARGS, formatColumnFilters(lef.getLogicalTerms())); } else if (columnFilter instanceof CoreFunctionFilter) { CoreFunctionFilter cff = (CoreFunctionFilter) columnFilter; colFilterJson.put(COLUMN, cff.getColumnId()); colFilterJson.put(FUNCTION_TYPE, cff.getType().toString()); JsonArray paramsJsonArray = Json.createArray(); int paramCounter = 0; for (Object param : cff.getParameters()) { JsonValue jsonParam = formatValue(param); paramsJsonArray.set(paramCounter++, jsonParam); } colFilterJson.put(FUNCTION_ARGS, paramsJsonArray ); } else { throw new IllegalArgumentException("Unsupported column filter"); } return colFilterJson; }
@Test public void test_DASHBUILDE_83() { JsonValue jsonNull = jsonMarshaller.formatValue(null); JsonValue jsonBoolean = jsonMarshaller.formatValue(true); JsonValue jsonNumber = jsonMarshaller.formatValue(100d); JsonValue jsonDate = jsonMarshaller.formatValue(new Date()); JsonValue jsonString = jsonMarshaller.formatValue("string"); assertTrue(jsonNull instanceof JsonNull); assertTrue(jsonBoolean instanceof JsonBoolean); assertTrue(jsonNumber instanceof JsonNumber); assertTrue(jsonDate instanceof JsonString); assertTrue(jsonString instanceof JsonString); } }
public Comparable parseValue(JsonValue jsonValue) { if (jsonValue == null || jsonValue.getType().equals(JsonType.NULL)) { // Null return null; } // Boolean if (jsonValue.getType().equals(JsonType.BOOLEAN)) { return jsonValue.asBoolean(); } // Number if (jsonValue.getType().equals(JsonType.NUMBER)) { return jsonValue.asNumber(); } try { // Date return parseDate(jsonValue.asString()); } catch (Exception e1) { // String return jsonValue.asString(); } } }
public JsonValue formatValue(Object value) { // Null if (value == null) { return JsonNull.NULL_INSTANCE; } // Number else if (value instanceof Number) { return Json.create(((Number) value).doubleValue()); } // Boolean else if (value instanceof Boolean) { return Json.create(((Boolean) value).booleanValue()); } // Date else if (value instanceof Date) { return Json.create(formatDate((Date) value)); } // String (default) else { return Json.create(value.toString()); } }
public JsonObject toJsonObject( DisplayerSettings displayerSettings ) { JsonObject json = Json.createObject(); // UUID json.put(SETTINGS_UUID, displayerSettings.getUUID()); for (Map.Entry<String, String> entry : displayerSettings.getSettingsFlatMap().entrySet()) { setNodeValue(json, entry.getKey(), entry.getValue()); } // Data set DataSetLookup dataSetLookup = displayerSettings.getDataSetLookup(); DataSet dataSet = displayerSettings.getDataSet(); if (dataSet != null) { json.put(DATASET_PREFIX, dataSetJsonMarshaller.toJson(dataSet)); } else if (dataSetLookup != null) { json.put(DATASET_LOOKUP_PREFIX, dataSetLookupJsonMarshaller.toJson(dataSetLookup)); } else { throw new RuntimeException("Displayer settings dataset lookup not specified"); } // Column settings List<ColumnSettings> columnSettingsList = displayerSettings.getColumnSettingsList(); if (!columnSettingsList.isEmpty()) { json.put(COLUMNS_PREFIX, formatColumnSettings(columnSettingsList)); } return json; }
public JsonArray formatFilterOperations(List<DataSetFilter> filterOps) throws JsonException { if ( filterOps.isEmpty() ) { return null; } // There should be only one DataSetFilter return formatColumnFilters(filterOps.get( 0 ).getColumnFilterList()); }
public JsonArray formatColumnFilters(List<ColumnFilter> columnFilters) throws JsonException { JsonArray colFiltersJsonArray = Json.createArray(); int colFilterCounter = 0; // DataSetFilter ==> ColumnFilter[] for (ColumnFilter columnFilter : columnFilters) { colFiltersJsonArray.set(colFilterCounter++, formatColumnFilter(columnFilter)); } return colFiltersJsonArray; }
public JsonArray formatColumnSorts(List<ColumnSort> columnSorts) throws JsonException { if (columnSorts.isEmpty()) { return null; } JsonArray columnSortsJsonArray = Json.createArray(); int columnSortCounter = 0; for (ColumnSort columnSort : columnSorts) { columnSortsJsonArray.set(columnSortCounter++, formatColumnSort(columnSort)); } return columnSortsJsonArray; }
@Test public void testDataSetLookupMarshalling() { DataSetLookup original = DataSetFactory.newDataSetLookupBuilder() .dataset("mydataset") .filter(OR(notEqualsTo("department", "IT"), greaterOrEqualsTo("amount", 100d))) .filter("department", notEqualsTo("IT")) .filter("amount", between(100d, 200d)) .filter("date", greaterThan(jsonMarshaller.parseDate("2018-01-01 00:00:00"))) .filter("country", isNull()) .group("department").select("Services") .group("date", "year").dynamic(DateIntervalType.YEAR, true) .column("date") .column("amount", AggregateFunctionType.SUM, "total") .sort("date", SortOrder.ASCENDING) .buildLookup(); JsonObject _jsonObj = jsonMarshaller.toJson(original); assertNotNull(_jsonObj.toString()); DataSetLookup unmarshalled = jsonMarshaller.fromJson(_jsonObj); assertEquals(unmarshalled, original); }
public JsonObject formatDataSetGroup(DataSetGroup dataSetGroup) throws JsonException { if (dataSetGroup == null) { return null; } JsonObject dataSetGroupJson = Json.createObject(); dataSetGroupJson.put(COLUMNGROUP, formatColumnGroup(dataSetGroup.getColumnGroup())); dataSetGroupJson.put(GROUPFUNCTIONS, formatGroupFunctions(dataSetGroup.getGroupFunctions())); dataSetGroupJson.put(SELECTEDINTERVALS, formatSelectedIntervals(dataSetGroup.getSelectedIntervalList())); dataSetGroupJson.put(JOIN, dataSetGroup.isJoin() ? "true" : "false"); return dataSetGroupJson; }
public JsonObject formatColumnFilter(ColumnFilter columnFilter) throws JsonException { if ( columnFilter == null ) return null; JsonObject colFilterJson = Json.createObject(); // LogicalExprFilter o CoreFunctionFilter if ( columnFilter instanceof LogicalExprFilter ) { LogicalExprFilter lef = (LogicalExprFilter) columnFilter; colFilterJson.put(COLUMN, lef.getColumnId()); colFilterJson.put(FUNCTION_TYPE, lef.getLogicalOperator().toString()); colFilterJson.put(FUNCTION_ARGS, formatColumnFilters(lef.getLogicalTerms())); } else if (columnFilter instanceof CoreFunctionFilter) { CoreFunctionFilter cff = (CoreFunctionFilter) columnFilter; colFilterJson.put(COLUMN, cff.getColumnId()); colFilterJson.put(FUNCTION_TYPE, cff.getType().toString()); JsonArray paramsJsonArray = Json.createArray(); int paramCounter = 0; for (Object param : cff.getParameters()) { JsonValue jsonParam = formatValue(param); paramsJsonArray.set(paramCounter++, jsonParam); } colFilterJson.put(FUNCTION_ARGS, paramsJsonArray ); } else { throw new IllegalArgumentException("Unsupported column filter"); } return colFilterJson; }
@Test public void test_DASHBUILDE_83() { JsonValue jsonNull = jsonMarshaller.formatValue(null); JsonValue jsonBoolean = jsonMarshaller.formatValue(true); JsonValue jsonNumber = jsonMarshaller.formatValue(100d); JsonValue jsonDate = jsonMarshaller.formatValue(new Date()); JsonValue jsonString = jsonMarshaller.formatValue("string"); assertTrue(jsonNull instanceof JsonNull); assertTrue(jsonBoolean instanceof JsonBoolean); assertTrue(jsonNumber instanceof JsonNumber); assertTrue(jsonDate instanceof JsonString); assertTrue(jsonString instanceof JsonString); } }
public Comparable parseValue(JsonValue jsonValue) { if (jsonValue == null || jsonValue.getType().equals(JsonType.NULL)) { // Null return null; } // Boolean if (jsonValue.getType().equals(JsonType.BOOLEAN)) { return jsonValue.asBoolean(); } // Number if (jsonValue.getType().equals(JsonType.NUMBER)) { return jsonValue.asNumber(); } try { // Date return parseDate(jsonValue.asString()); } catch (Exception e1) { // String return jsonValue.asString(); } } }
public JsonValue formatValue(Object value) { // Null if (value == null) { return JsonNull.NULL_INSTANCE; } // Number else if (value instanceof Number) { return Json.create(((Number) value).doubleValue()); } // Boolean else if (value instanceof Boolean) { return Json.create(((Boolean) value).booleanValue()); } // Date else if (value instanceof Date) { return Json.create(formatDate((Date) value)); } // String (default) else { return Json.create(value.toString()); } }
public JsonObject toJsonObject( DisplayerSettings displayerSettings ) { JsonObject json = Json.createObject(); // UUID json.put(SETTINGS_UUID, displayerSettings.getUUID()); for (Map.Entry<String, String> entry : displayerSettings.getSettingsFlatMap().entrySet()) { setNodeValue(json, entry.getKey(), entry.getValue()); } // Data set DataSetLookup dataSetLookup = displayerSettings.getDataSetLookup(); DataSet dataSet = displayerSettings.getDataSet(); if (dataSet != null) { json.put(DATASET_PREFIX, dataSetJsonMarshaller.toJson(dataSet)); } else if (dataSetLookup != null) { json.put(DATASET_LOOKUP_PREFIX, dataSetLookupJsonMarshaller.toJson(dataSetLookup)); } else { throw new RuntimeException("Displayer settings dataset lookup not specified"); } // Column settings List<ColumnSettings> columnSettingsList = displayerSettings.getColumnSettingsList(); if (!columnSettingsList.isEmpty()) { json.put(COLUMNS_PREFIX, formatColumnSettings(columnSettingsList)); } return json; }