/** * Build a {@link ValueGroupDatasourceImpl} with the specified implementation class. */ @SuppressWarnings("unchecked") public <T> T buildValuesGroupDatasource(Class<T> datasourceClass) { setDsClass(datasourceClass); return (T) buildValuesGroupDatasource(); }
private ValueGroupDatasourceImpl loadValueGroupDatasource(Element element) { String id = getDatasourceId(element); builder.reset().setMetaClass(metadata.getClassNN(KeyValueEntity.class)).setId(id); ValueGroupDatasourceImpl datasource = builder .setDsClass(getDatasourceClass(element)) .buildValuesGroupDatasource(); String maxResults = element.attributeValue("maxResults"); if (!StringUtils.isEmpty(maxResults)) datasource.setMaxResults(Integer.parseInt(maxResults)); datasource.setSuspended(true); loadQuery(element, datasource); loadProperties(element, datasource); datasource.setStoreName(element.attributeValue("store")); return datasource; }
protected GroupDatasource createDataSource(String dataSetName, List<KeyValueEntity> keyValueEntities, Map<String, Set<Pair<String, Class>>> headerMap) { DsBuilder dsBuilder = DsBuilder.create(getDsContext()) .setId(dataSetName + "Ds") .setDataSupplier(getDsContext().getDataSupplier()); ValueGroupDatasourceImpl ds = dsBuilder.buildValuesGroupDatasource(); ds.setRefreshMode(CollectionDatasource.RefreshMode.NEVER); Set<Pair<String, Class>> headers = headerMap.get(dataSetName); for (Pair<String, Class> pair : headers) { Class javaClass = pair.getSecond(); if (Entity.class.isAssignableFrom(javaClass) || EnumClass.class.isAssignableFrom(javaClass) || Datatypes.get(javaClass) != null) { ds.addProperty(pair.getFirst(), pair.getSecond()); } } dsContext.register(ds); keyValueEntities.forEach(ds::includeItem); return ds; }