@Override public DataSetDef clone() { BeanDataSetDef def = new BeanDataSetDef(); clone(def); def.setGeneratorClass(getGeneratorClass()); def.setParamaterMap(getParamaterMap()); return def; }
@Test public void testBean() throws Exception { final BeanDataSetDef dataSetDef = new BeanDataSetDef(); dataSetDef.setName("bean data set name"); dataSetDef.setUUID("bean-test-uuid"); dataSetDef.setProvider(DataSetProviderType.BEAN); dataSetDef.setCacheEnabled(false); dataSetDef.setCacheMaxRows(100); dataSetDef.setPublic(true); dataSetDef.setPushEnabled(false); dataSetDef.setPushMaxSize(10); dataSetDef.setRefreshAlways(false); dataSetDef.setRefreshTime("1second"); dataSetDef.setGeneratorClass("org.dashbuilder.DataSetGenerator"); dataSetDef.setProperty("ignore", "this"); final Map<String, String> parameterMap = new LinkedHashMap<String, String>(); parameterMap.put("p1", "v1"); parameterMap.put("p2", "v2"); dataSetDef.setParamaterMap(parameterMap); String json = jsonMarshaller.toJsonString(dataSetDef); String beanJSONContent = getFileAsString(BEAN_DEF_PATH); assertDataSetDef(json, beanJSONContent); }
@Override public void toJson(BeanDataSetDef dataSetDef, JsonObject json) { // Generator class. json.put(GENERATOR_CLASS, dataSetDef.getGeneratorClass()); // Generator parameters. Map<String, String> parameters = dataSetDef.getParamaterMap(); if (parameters != null && !parameters.isEmpty()) { final JsonArray array = Json.createArray(); int idx = 0; for (Map.Entry<String, String> param : parameters.entrySet()) { final JsonObject paramObject = toJsonParameter(param.getKey(), param.getValue()); array.set(idx++, paramObject); } json.put(GENERATOR_PARAMS, array); } }
@Override public void fromJson(BeanDataSetDef def, JsonObject json) { String generator = json.getString(GENERATOR_CLASS); if (!isBlank(generator)) { def.setGeneratorClass(generator); } if (json.has(GENERATOR_PARAMS)) { JsonArray array = json.getArray(GENERATOR_PARAMS); for (int i=0; i<array.length(); i++) { JsonObject param = array.getObject(i); String paramId = param.getString(PARAM); String value = param.getString(VALUE); if (!isBlank(paramId)) { def.getParamaterMap().put(paramId, value); } } } }
@Override public BeanDataSetDef createDataSetDef() { return new BeanDataSetDef(); }
@Test public void testBeanHashCode() throws Exception { assertEquals(beanDef1.hashCode(), beanDef2.hashCode()); beanDef1.getParamaterMap().put("p1", "v2"); assertNotEquals(beanDef1.hashCode(), beanDef2.hashCode()); }
public DataSetGenerator lookupGenerator(DataSetDef def) { BeanDataSetDef beanDef = (BeanDataSetDef) def; String beanName = beanDef.getGeneratorClass(); DataSetGenerator generator = generatorMap.get(beanName); if (generator != null ) { return generator; } else { throw new IllegalArgumentException("Data set generator class not found: " + beanName); } }
public BeanDataSetDefBuilderImpl generatorParam(String paramName, String paramValue) { ((BeanDataSetDef) def).getParamaterMap().put(paramName, paramValue); return this; } }
public BeanDataSetDefBuilderImpl generatorClass(String className) { ((BeanDataSetDef) def).setGeneratorClass(className); return this; }
@Test public void testBean() throws Exception { final BeanDataSetDef dataSetDef = new BeanDataSetDef(); dataSetDef.setName("bean data set name"); dataSetDef.setUUID("bean-test-uuid"); dataSetDef.setProvider(DataSetProviderType.BEAN); dataSetDef.setCacheEnabled(false); dataSetDef.setCacheMaxRows(100); dataSetDef.setPublic(true); dataSetDef.setPushEnabled(false); dataSetDef.setPushMaxSize(10); dataSetDef.setRefreshAlways(false); dataSetDef.setRefreshTime("1second"); dataSetDef.setGeneratorClass("org.dashbuilder.DataSetGenerator"); dataSetDef.setProperty("ignore", "this"); final Map<String, String> parameterMap = new LinkedHashMap<String, String>(); parameterMap.put("p1", "v1"); parameterMap.put("p2", "v2"); dataSetDef.setParamaterMap(parameterMap); String json = jsonMarshaller.toJsonString(dataSetDef); String beanJSONContent = getFileAsString(BEAN_DEF_PATH); assertDataSetDef(json, beanJSONContent); }
@Override public void toJson(BeanDataSetDef dataSetDef, JsonObject json) { // Generator class. json.put(GENERATOR_CLASS, dataSetDef.getGeneratorClass()); // Generator parameters. Map<String, String> parameters = dataSetDef.getParamaterMap(); if (parameters != null && !parameters.isEmpty()) { final JsonArray array = Json.createArray(); int idx = 0; for (Map.Entry<String, String> param : parameters.entrySet()) { final JsonObject paramObject = toJsonParameter(param.getKey(), param.getValue()); array.set(idx++, paramObject); } json.put(GENERATOR_PARAMS, array); } }
@Override public void fromJson(BeanDataSetDef def, JsonObject json) { String generator = json.getString(GENERATOR_CLASS); if (!isBlank(generator)) { def.setGeneratorClass(generator); } if (json.has(GENERATOR_PARAMS)) { JsonArray array = json.getArray(GENERATOR_PARAMS); for (int i=0; i<array.length(); i++) { JsonObject param = array.getObject(i); String paramId = param.getString(PARAM); String value = param.getString(VALUE); if (!isBlank(paramId)) { def.getParamaterMap().put(paramId, value); } } } }
@Override public BeanDataSetDef createDataSetDef() { return new BeanDataSetDef(); }
public DataSetGenerator lookupGenerator(DataSetDef def) { BeanDataSetDef beanDef = (BeanDataSetDef) def; String beanName = beanDef.getGeneratorClass(); try { return (DataSetGenerator) Class.forName(beanName).newInstance(); } catch (Exception e) { throw new IllegalArgumentException("Data set generator can not be instantiated: " + beanName, e); } }
public BeanDataSetDefBuilderImpl generatorParam(String paramName, String paramValue) { ((BeanDataSetDef) def).getParamaterMap().put(paramName, paramValue); return this; } }
public BeanDataSetDefBuilderImpl generatorClass(String className) { ((BeanDataSetDef) def).setGeneratorClass(className); return this; }
@Test public void testFilters() throws Exception { final BeanDataSetDef dataSetDef = new BeanDataSetDef(); dataSetDef.setName("filter data set name"); dataSetDef.setUUID("filter-test-uuid"); dataSetDef.setProvider(DataSetProviderType.BEAN); dataSetDef.setCacheEnabled(false); dataSetDef.setCacheMaxRows(100); dataSetDef.setPublic(true); dataSetDef.setPushEnabled(false); dataSetDef.setPushMaxSize(10); dataSetDef.setRefreshAlways(false); dataSetDef.setRefreshTime("1second"); dataSetDef.setGeneratorClass("org.dashbuilder.dataprovider.SalesPerYearDataSetGenerator"); final Map<String, String> parameterMap = new LinkedHashMap<String, String>(); parameterMap.put("multiplier", "1"); dataSetDef.setParamaterMap(parameterMap); final DataSetFilter filter = new DataSetFilter(); final List<Comparable> params1 = new ArrayList<Comparable>(); columnFilter = new CoreFunctionFilter("amount", CoreFunctionType.BETWEEN, params2); filter.addFilterColumn(columnFilter); dataSetDef.setDataSetFilter(filter);
@Override public DataSetDef clone() { BeanDataSetDef def = new BeanDataSetDef(); clone(def); def.setGeneratorClass(getGeneratorClass()); def.setParamaterMap(getParamaterMap()); return def; }
protected DataSetDef createDataSetDef() { return new BeanDataSetDef(); }
public DataSetGenerator lookupGenerator(DataSetDef def) { BeanDataSetDef beanDef = (BeanDataSetDef) def; String beanName = beanDef.getGeneratorClass(); DataSetGenerator generator = generatorMap.get(beanName); if (generator != null ) { return generator; } else { throw new IllegalArgumentException("Data set generator class not found: " + beanName); } }