List of usage examples for org.apache.commons.collections4 CollectionUtils isNotEmpty
public static boolean isNotEmpty(final Collection<?> coll)
From source file:org.efaps.ui.wicket.components.form.FormPanel.java
/** * @param _wicketId wicket id of this component * @param _page page this component is in * @param _model model of this component * @param _formelementmodel model of the form element * @param _form fom container/*from w w w.j a va 2 s . co m*/ * @throws EFapsException on error */ public FormPanel(final String _wicketId, final Page _page, final IModel<UIForm> _model, final FormElement _formelementmodel, final FormContainer _form) throws EFapsException { super(_wicketId, _model); final UIForm uiForm = _model.getObject(); if (!uiForm.isInitialized()) { uiForm.execute(); } final RepeatingView rowRepeater = new RepeatingView("rowRepeater"); this.add(rowRepeater); for (final Iterator<FormRow> uiRowIter = _formelementmodel.getRowModels(); uiRowIter.hasNext();) { final FormRow formRow = uiRowIter.next(); if (CollectionUtils.isNotEmpty(formRow.getValues())) { final RowPanel row = new RowPanel(rowRepeater.newChildId(), Model.of(formRow), uiForm, _form); rowRepeater.add(row); } } final RepeatingView hiddenRepeater = new RepeatingView("hiddenRepeater"); this.add(hiddenRepeater); for (final IHidden cell : uiForm.getHidden()) { if (!cell.isAdded()) { hiddenRepeater.add(cell.getComponent(hiddenRepeater.newChildId())); cell.setAdded(true); } } boolean menuUpdate = true; final List<EmbeddedLink> links = EFapsSession.get().getEmbededLinks(); if (!links.isEmpty()) { if (((AbstractContentPage) _page).getCalledByPageReference() != null) { final Page callPage = ((AbstractContentPage) _page).getCalledByPageReference().getPage(); if (callPage instanceof MainPage) { menuUpdate = false; } } else { menuUpdate = !(_page instanceof FormPage); } } for (final EmbeddedLink link : links) { if (menuUpdate) { hiddenRepeater.add(new LinkElementComponent(hiddenRepeater.newChildId(), link)); } else { hiddenRepeater.add(new LinkElementLink(hiddenRepeater.newChildId(), link)); } } EFapsSession.get().getEmbededLinks().clear(); }
From source file:org.efaps.ui.wicket.components.FormContainer.java
@Override public void process(final IFormSubmitter _submittingComponent) { // if their is a GridXComponent convert the ids to oids visitChildren(GridXComponent.class, new IVisitor<GridXComponent, Void>() { @Override// www .j a v a 2 s . c om public void component(final GridXComponent _gridX, final IVisit<Void> _visit) { try { final EFapsRequestParametersAdapter parameters = (EFapsRequestParametersAdapter) getRequest() .getRequestParameters(); final List<StringValue> selectedRows = parameters.getParameterValues("selectedRow"); if (CollectionUtils.isNotEmpty(selectedRows)) { final List<StringValue> newValues = new ArrayList<>(); for (final StringValue value : selectedRows) { final UIGrid uiGrid = (UIGrid) _gridX.getDefaultModelObject(); final Row row = uiGrid.getValues().get(value.toInt()); newValues.add(StringValue.valueOf(row.getInstance().getOid())); } parameters.setParameterValues("selectedRow", newValues); } } catch (StringValueConversionException | EFapsException e) { FormContainer.LOG.error("Catched exeption", e); } } }); // for a dropdown add the previous value as a parameter if (_submittingComponent instanceof AjaxFormSubmitter && ((AjaxFormSubmitter) _submittingComponent).getFormSubmittingComponent() != null && ((AjaxFormSubmitter) _submittingComponent) .getFormSubmittingComponent() instanceof DropDownField) { final Object object = ((DropDownField) ((AjaxFormSubmitter) _submittingComponent) .getFormSubmittingComponent()).getDefaultModelObject(); if (object instanceof DropDownOption) { final String key = ((DropDownField) ((AjaxFormSubmitter) _submittingComponent) .getFormSubmittingComponent()).getInputName(); ((EFapsRequestParametersAdapter) ((EFapsRequest) RequestCycle.get().getRequest()) .getRequestParameters()).addParameterValue(key + "_eFapsPrevious", ((DropDownOption) object).getValue()); } } super.process(_submittingComponent); // it must be ensured that the counter for sets is rested or we have big problems resetSetCounter(); }
From source file:org.efaps.ui.wicket.components.gridx.GridXComponent.java
@Override public void onComponentTagBody(final MarkupStream _markupStream, final ComponentTag _openTag) { try {//from ww w . java 2 s.c om final UIGrid uiGrid = (UIGrid) getDefaultModelObject(); final Set<DojoClass> dojoClasses = new HashSet<>(); Collections.addAll(dojoClasses, DojoClasses.array, DojoClasses.lang, DojoClasses.json, DojoClasses.aspect, DojoClasses.query, DojoClasses.domConstruct, DojoClasses.win, DojoClasses.domStyle, DojoClasses.ready, DojoClasses.on, DojoClasses.registry, DojoClasses.Memory, DojoClasses.Grid, DojoClasses.VirtualVScroller, DojoClasses.ColumnResizer, DojoClasses.HScroller, DojoClasses.SingleSort, DojoClasses.SyncCache, DojoClasses.HeaderDialog, DojoClasses.MoveColumn, DojoClasses.SelectColumn, DojoClasses.SelectCell, DojoClasses.DnDColumn, DojoClasses.HiddenColumns, DojoClasses.GridConfig, DojoClasses.GridSort, DojoClasses.Summary, DojoClasses.QuickFilter, DojoClasses.Bar, DojoClasses.Persist, DojoClasses.Filter, DojoClasses.FilterBar, DojoClasses.DropDownButton, DojoClasses.TextBox, DojoClasses.TooltipDialog, DojoClasses.ready, DojoClasses.domGeom); final StringBuilder js = new StringBuilder().append("var cp = function(_attr, _itemA, _itemB) {\n") .append("var strA = _itemA.hasOwnProperty(_attr + '_sort')") .append(" ? _itemA[_attr + '_sort'] : _itemA[_attr];\n") .append("var strB = _itemB.hasOwnProperty(_attr + '_sort') ") .append("? _itemB[_attr + '_sort'] : _itemB[_attr];\n") .append("return strA < strB ? -1 : (strA > strB ? 1 : 0);\n").append("}\n") .append("var store = new Memory({\n").append("data: ").append(GridXComponent.getDataJS(uiGrid)) .append("});\n").append("var structure = [\n"); boolean first = true; int j = 0; for (final Column header : uiGrid.getColumns()) { if (first) { first = false; } else { js.append(","); } js.append("{ id:'").append(header.getField().getId()).append("',").append(" field:'") .append(header.getFieldName()).append("',").append(" name:'").append(header.getLabel()) .append("'\n"); if (!"left".equals(header.getField().getAlign())) { js.append(", style:'text-align:right'"); } js.append(", comparator: cp\n"); if (header.getFieldConfig().getField().getReference() != null) { js.append(", decorator: function(data, rowId, visualIndex, cell){\n") .append("return '<a href=\"") .append(urlFor(ILinkListener.INTERFACE, new PageParameters())).append("&rowId=") .append("' + rowId + '").append("&colId=").append(j).append("\">' + data + '</a>';\n") .append("}\n"); } if (FilterBase.DATABASE.equals(header.getFilter().getBase())) { js.append(", dialog: 'fttd_").append(header.getField().getId()) .append("', headerClass:'eFapsFiltered'\n"); } else if (FilterType.PICKLIST.equals(header.getFilter().getType())) { js.append(", dataType: 'enum'\n"); final List<String> picklist = uiGrid.getFilterPickList(header); if (CollectionUtils.isNotEmpty(picklist)) { js.append(", enumOptions: ['").append(StringUtils.join(picklist, "','")).append("']"); } } else { // js.append(", filterable: false\n"); } js.append("}"); j++; } js.append("];\n").append("").append(getMenu(dojoClasses)).append("var grid = Grid({") .append("id: 'grid',").append("cacheClass: Cache,").append("store: store,") .append("structure: structure,\n").append("barTop: [\n"); if (dojoClasses.contains(DojoClasses.MenuBar)) { js.append("{plugin: pMenuBar, style: 'text-align: left;'}, \n"); } js.append("{pluginClass: QuickFilter, style: 'text-align: center;'}, \n") .append("{pluginClass: GridConfig, style: 'text-align: right;'} \n").append("],\n") .append("barBottom: [\n").append("Summary\n").append("],\n").append("modules: [\n") .append("VirtualVScroller,\n").append("ColumnResizer,\n").append("SingleSort,\n") .append("MoveColumn,\n").append("SelectColumn,\n").append("SelectCell,\n") .append("DnDColumn,\n").append("HeaderDialog,\n").append("Bar,\n").append("Filter,\n") .append("FilterBar,\n").append("HScroller,\n").append("HiddenColumns,\n").append("Persist\n"); if (uiGrid.isShowCheckBoxes()) { Collections.addAll(dojoClasses, DojoClasses.IndirectSelect, DojoClasses.RowHeader, DojoClasses.SelectRow); js.append(", IndirectSelect,\n").append("SelectRow,\n").append("RowHeader,\n"); } js.append("],\n").append("persistGet: function(_key) {"); if (Context.getThreadContext().containsUserAttribute(uiGrid.getCacheKey(UIGrid.CacheKey.GRIDX))) { js.append("return ").append( Context.getThreadContext().getUserAttribute(uiGrid.getCacheKey(UIGrid.CacheKey.GRIDX))); } js.append("},\n").append("persistPut: function(_key, _value, _options) {\n").append("var value;") .append("if(_value && lang.isObject(_value)){\n").append("value = json.toJson(_value);\n") .append("}else{\n").append("value = {expires: -1};\n").append("}\n") .append(getBehaviors(PersistAjaxBehavior.class).get(0) .getCallbackFunctionBody(CallbackParameter.explicit("value"))) .append("},\n").append("modelExtensions: [\n").append("GridSort\n").append("]\n").append("});") .append("grid.placeAt('").append(getMarkupId(true)).append("');\n").append("grid.startup();\n") .append("ready(function(){").append("var bar = query('.eFapsFrameTitle') [0];\n") .append("var pos = domGeom.position(bar);\n").append("var vs = win.getBox();\n") .append("var hh = vs.h - pos.h -pos.y;\n").append("registry.byId('grid').resize({h:hh});") .append("});").append("on(window, 'resize', function() {\n") .append("var bar = query('.eFapsFrameTitle') [0];\n") .append("var pos = domGeom.position(bar);\n").append("var vs = win.getBox();\n") .append("var hh = vs.h - pos.h -pos.y;\n").append("registry.byId('grid').resize({h:hh});") .append("});\n"); if (uiGrid.isShowCheckBoxes()) { js.append("aspect.after(grid.select.row, 'onSelectionChange', function (_defferd) {\n") .append("query(\"input[name='selectedRow']\").forEach(domConstruct.destroy);\n") .append("array.forEach(registry.byId('grid').select.row.getSelected(), function (_item) {\n") .append("domConstruct.create('input', {\n").append("type: 'hidden',\n") .append("name:'selectedRow',\n").append("value: _item\n").append("},\n").append("'") .append(findParent(Form.class).getMarkupId(true)).append("');\n").append("});\n") .append("});\n").append("grid.prevSelected = [];\n").append("var ftb = function () {\n") .append("registry.byId('grid').prevSelected = registry.byId('grid').select.row.getSelected();\n") .append("};\n").append("var fta = function () {\n") .append("array.forEach(registry.byId('grid').prevSelected, function (_item) {\n") .append("registry.byId('grid').select.row.selectById(_item);\n").append("});\n") .append("};\n").append("aspect.before(grid.filter, 'setFilter', ftb);\n") .append("aspect.before(grid.filter, 'clearFilter', ftb);\n") .append("aspect.after(grid.filter, 'setFilter', fta);\n") .append("aspect.after(grid.filter, 'clearFilter', fta);\n"); } final StringBuilder html = new StringBuilder().append("<script type=\"text/javascript\">") .append(DojoWrapper.require(js, dojoClasses.toArray(new DojoClass[dojoClasses.size()]))) .append("\n</script>"); replaceComponentTagBody(_markupStream, _openTag, html); } catch (final EFapsException e) { GridXComponent.LOG.error("Catched error", e); } }
From source file:org.efaps.ui.wicket.models.field.validators.FormNumberValidator.java
/** * Instantiates a new number validator./*w w w .ja v a2 s.c o m*/ * * @param _uiField the ui field */ public FormNumberValidator(final AbstractUIField _uiField) { super(new IFormValidator() { /** The Constant serialVersionUID. */ private static final long serialVersionUID = 1L; @Override public FormComponent<?>[] getDependentFormComponents() { return null; } @Override public void validate(final Form<?> _form) { final List<StringValue> list = RequestCycle.get().getRequest().getRequestParameters() .getParameterValues(_uiField.getFieldConfiguration().getName()); boolean hasValue = false; if (CollectionUtils.isNotEmpty(list)) { for (final StringValue value : list) { if (!value.isEmpty()) { final String message = new NumberUI() .validateValue(UIValue.get(null, null, value.toString())); if (message != null) { _form.error(_uiField.getFieldConfiguration().getLabel() + ": " + message); } hasValue = true; } } } if (!hasValue && _uiField.getFieldConfiguration().getField().isRequired()) { _form.error(DBProperties.getFormatedDBProperty( FormNumberValidator.class.getName() + ".FieldRequired", (Object) _uiField.getFieldConfiguration().getLabel())); } } }); }
From source file:org.ethereum.config.DefaultConfig.java
@Bean public PeerExplorer peerExplorer() { RskSystemProperties rskConfig = RskSystemProperties.RSKCONFIG; ECKey key = rskConfig.getMyKey(); Node localNode = new Node(key.getNodeId(), rskConfig.bindIp(), rskConfig.listenPort()); NodeDistanceTable distanceTable = new NodeDistanceTable(KademliaOptions.BINS, KademliaOptions.BUCKET_SIZE, localNode);/* www.ja v a 2 s . c om*/ long msgTimeOut = rskConfig.peerDiscoveryMessageTimeOut(); long refreshPeriod = rskConfig.peerDiscoveryRefreshPeriod(); List<String> initialBootNodes = rskConfig.peerDiscoveryIPList(); List<Node> activePeers = rskConfig.peerActive(); if (CollectionUtils.isNotEmpty(activePeers)) { for (Node n : activePeers) { InetSocketAddress address = n.getAddress(); initialBootNodes.add(address.getHostName() + ":" + address.getPort()); } } return new PeerExplorer(initialBootNodes, localNode, distanceTable, key, msgTimeOut, refreshPeriod); }
From source file:org.ethereum.net.NodeManager.java
public synchronized List<NodeHandler> getNodes(Set<String> nodesInUse) { List<NodeHandler> handlers = new ArrayList<>(); handlers.addAll(initialNodes);// ww w.ja v a 2s .c o m List<Node> foundNodes = this.peerExplorer.getNodes(); if (this.discoveryEnabled && CollectionUtils.isNotEmpty(foundNodes)) { logger.debug("{} Nodes retrieved from the PE.", CollectionUtils.size(foundNodes)); foundNodes.stream().filter(n -> !nodeHandlerMap.containsKey(n.getHexId())) .forEach(this::createNodeHandler); } for (NodeHandler handler : this.nodeHandlerMap.values()) { if (!nodesInUse.contains(handler.getNode().getHexId())) { handlers.add(handler); } } return handlers; }
From source file:org.finra.herd.dao.helper.ElasticsearchHelper.java
/** * Adds facet field aggregations//from w w w .j a v a2 s . co m * * @param facetFieldsList facet field list * @param searchRequestBuilder search request builder * * @return the specified search request builder with the aggregations applied to it */ public SearchRequestBuilder addFacetFieldAggregations(Set<String> facetFieldsList, SearchRequestBuilder searchRequestBuilder) { if (CollectionUtils.isNotEmpty(facetFieldsList)) { if (facetFieldsList.contains(TAG_FACET)) { searchRequestBuilder.addAggregation(AggregationBuilders.nested(TAG_FACET_AGGS, NESTED_BDEFTAGS_PATH) .subAggregation(AggregationBuilders.terms(TAGTYPE_CODE_AGGREGATION) .field(BDEF_TAGTYPE_CODE_FIELD) .subAggregation(AggregationBuilders.terms(TAGTYPE_NAME_AGGREGATION) .field(BDEF_TAGTYPE_NAME_FIELD) .subAggregation(AggregationBuilders.terms(TAG_CODE_AGGREGATION) .field(BDEF_TAG_CODE_FIELD) .subAggregation(AggregationBuilders.terms(TAG_NAME_AGGREGATION) .field(BDEF_TAG_NAME_FIELD)))))); searchRequestBuilder.addAggregation(AggregationBuilders.terms(TAG_TYPE_FACET_AGGS) .field(TAGTYPE_CODE_FIELD_TAG_INDEX) .subAggregation(AggregationBuilders.terms(TAGTYPE_NAME_AGGREGATION) .field(TAGTYPE_NAME_FIELD_TAG_INDEX) .subAggregation(AggregationBuilders.terms(TAG_CODE_AGGREGATION) .field(TAG_CODE_FIELD_TAG_INDEX).subAggregation(AggregationBuilders .terms(TAG_NAME_AGGREGATION).field(TAG_NAME_FIELD_TAG_INDEX))))); } if (facetFieldsList.contains(RESULT_TYPE_FACET)) { searchRequestBuilder .addAggregation(AggregationBuilders.terms(RESULT_TYPE_AGGS).field(RESULT_TYPE_FIELD)); } } return searchRequestBuilder; }
From source file:org.finra.herd.dao.impl.AttributeValueListDaoImpl.java
@Override public List<AttributeValueListKey> getAttributeValueLists(Collection<String> namespaces) { // Create the criteria builder and the criteria. CriteriaBuilder builder = entityManager.getCriteriaBuilder(); CriteriaQuery<AttributeValueListEntity> criteria = builder.createQuery(AttributeValueListEntity.class); // The criteria root is the attribute value list entity. Root<AttributeValueListEntity> attributeValueListEntityRoot = criteria.from(AttributeValueListEntity.class); // Join to the other tables we can filter on. Join<AttributeValueListEntity, NamespaceEntity> namespaceEntityJoin = attributeValueListEntityRoot .join(AttributeValueListEntity_.namespace); // Create the standard restrictions (i.e. the standard where clauses). List<Predicate> predicates = new ArrayList<>(); if (CollectionUtils.isNotEmpty(namespaces)) { predicates.add(namespaceEntityJoin.get(NamespaceEntity_.code).in(namespaces)); }// ww w . j a v a 2 s.c o m // Order the results by namespace and job name. List<Order> orderBy = new ArrayList<>(); orderBy.add(builder.asc(namespaceEntityJoin.get(NamespaceEntity_.code))); orderBy.add(builder.asc(attributeValueListEntityRoot.get(AttributeValueListEntity_.name))); // Add all clauses to the query. criteria.select(attributeValueListEntityRoot) .where(builder.and(predicates.toArray(new Predicate[predicates.size()]))).orderBy(orderBy); // Execute the query and build a list of keys. List<AttributeValueListKey> attributeValueListKeys = new ArrayList<>(); for (AttributeValueListEntity attributeValueListEntity : entityManager.createQuery(criteria) .getResultList()) { attributeValueListKeys.add(new AttributeValueListKey(attributeValueListEntity.getNamespace().getCode(), attributeValueListEntity.getName())); } return attributeValueListKeys; }
From source file:org.finra.herd.dao.impl.BusinessObjectDefinitionIndexSearchDaoImpl.java
@Override public ElasticsearchResponseDto searchBusinessObjectDefinitionsByTags(String indexName, String documentType, List<Map<SearchFilterType, List<TagEntity>>> nestedTagEntityMaps, Set<String> facetFieldsList) { ElasticsearchResponseDto elasticsearchResponseDto = new ElasticsearchResponseDto(); List<List<TagEntity>> nestedInclusionTagEntityLists = new ArrayList<>(); List<List<TagEntity>> nestedExclusionTagEntityLists = new ArrayList<>(); for (Map<SearchFilterType, List<TagEntity>> tagEntityMap : nestedTagEntityMaps) { if (tagEntityMap.containsKey(SearchFilterType.INCLUSION_SEARCH_FILTER)) { nestedInclusionTagEntityLists.add(tagEntityMap.get(SearchFilterType.INCLUSION_SEARCH_FILTER)); } else if (tagEntityMap.containsKey(SearchFilterType.EXCLUSION_SEARCH_FILTER)) { nestedExclusionTagEntityLists.add(tagEntityMap.get(SearchFilterType.EXCLUSION_SEARCH_FILTER)); }/*from www.java 2 s . c o m*/ } LOGGER.info( "Searching Elasticsearch business object definition documents from index, indexName={} and documentType={}, by tagEntityList={}", indexName, documentType, tagEntityListToString(flattenTagEntitiesList(nestedInclusionTagEntityLists))); LOGGER.info("Excluding the following tagEntityList={}", indexName, documentType, tagEntityListToString(flattenTagEntitiesList(nestedExclusionTagEntityLists))); BoolQueryBuilder compoundSearchFiltersQueryBuilder = new BoolQueryBuilder(); // If there are only exclusion tag entities then, get everything else, but the exclusion tags. if (CollectionUtils.isEmpty(flattenTagEntitiesList(nestedInclusionTagEntityLists))) { WildcardQueryBuilder wildcardQueryBuilder = QueryBuilders.wildcardQuery(NAME_FIELD, "*"); compoundSearchFiltersQueryBuilder.must(wildcardQueryBuilder); } // Inclusion for (List<TagEntity> tagEntities : nestedInclusionTagEntityLists) { BoolQueryBuilder searchFilterQueryBuilder = new BoolQueryBuilder(); for (TagEntity tagEntity : tagEntities) { // Add constant-score term queries for tagType-code and tag-code from the tag-key. ConstantScoreQueryBuilder searchKeyQueryBuilder = QueryBuilders .constantScoreQuery(QueryBuilders.boolQuery() .must(QueryBuilders.termQuery(TAGTYPE_CODE_FIELD, tagEntity.getTagType().getCode())) .must(QueryBuilders.termQuery(TAG_CODE_FIELD, tagEntity.getTagCode()))); // Individual tag-keys are OR-ed searchFilterQueryBuilder.should(searchKeyQueryBuilder); } // Individual search-filters are AND-ed compoundSearchFiltersQueryBuilder.must(searchFilterQueryBuilder); } // Exclusion for (List<TagEntity> tagEntities : nestedExclusionTagEntityLists) { for (TagEntity tagEntity : tagEntities) { // Add constant-score term queries for tagType-code and tag-code from the tag-key. QueryBuilder searchKeyQueryBuilder = QueryBuilders.boolQuery() .must(QueryBuilders.termQuery(TAGTYPE_CODE_FIELD, tagEntity.getTagType().getCode())) .must(QueryBuilders.termQuery(TAG_CODE_FIELD, tagEntity.getTagCode())); // Exclusion: individual tag-keys are added as a must not query compoundSearchFiltersQueryBuilder.mustNot(searchKeyQueryBuilder); } } SearchSourceBuilder searchSourceBuilder = new SearchSourceBuilder(); // Fetch only the required fields searchSourceBuilder.fetchSource(new String[] { DATA_PROVIDER_NAME_SOURCE, DESCRIPTION_SOURCE, DISPLAY_NAME_SOURCE, NAME_SOURCE, NAMESPACE_CODE_SOURCE }, null); searchSourceBuilder.query(compoundSearchFiltersQueryBuilder); // Create a search request and set the scroll time and scroll size SearchRequestBuilder searchRequestBuilder = new SearchRequestBuilder(new ElasticsearchClientImpl(), SearchAction.INSTANCE); searchRequestBuilder.setIndices(indexName); // Construct scroll query searchRequestBuilder.setTypes(documentType).setScroll(new TimeValue(ELASTIC_SEARCH_SCROLL_KEEP_ALIVE_TIME)) .setSize(ELASTIC_SEARCH_SCROLL_PAGE_SIZE).setSource(searchSourceBuilder) // Add sorting criteria. // First, sort in ascending order on business object definition name // then sort in ascending order on namespace code .addSort(SortBuilders.fieldSort(BUSINESS_OBJECT_DEFINITION_SORT_FIELD).order(SortOrder.ASC)) .addSort(SortBuilders.fieldSort(NAMESPACE_CODE_SORT_FIELD).order(SortOrder.ASC)); //Add aggregation builder if facet fields are present if (CollectionUtils.isNotEmpty(facetFieldsList)) { addFacetFieldAggregations(facetFieldsList, elasticsearchResponseDto, searchRequestBuilder, indexName); } // Log the actual search query LOGGER.info("bdefIndexSearchQuery={}", searchRequestBuilder.toString()); elasticsearchResponseDto.setBusinessObjectDefinitionIndexSearchResponseDtos( scrollSearchResultsIntoBusinessObjectDefinitionDto(searchRequestBuilder, indexName)); return elasticsearchResponseDto; }
From source file:org.finra.herd.dao.impl.BusinessObjectFormatDaoImpl.java
@Override public Long getBusinessObjectFormatCountByPartitionKeys(String namespace, String businessObjectDefinitionName, String businessObjectFormatUsage, String businessObjectFormatFileType, Integer businessObjectFormatVersion, List<String> partitionKeys) { // Create the criteria builder and the criteria. CriteriaBuilder builder = entityManager.getCriteriaBuilder(); CriteriaQuery<Long> criteria = builder.createQuery(Long.class); // The criteria root is the business object format. Root<BusinessObjectFormatEntity> businessObjectFormatEntityRoot = criteria .from(BusinessObjectFormatEntity.class); // Create path. Expression<Long> businessObjectFormatRecordCount = builder.count(businessObjectFormatEntityRoot); // Namespace is a required parameter, so fetch the relative entity to optimize the main query. NamespaceEntity namespaceEntity = namespaceDao.getNamespaceByCd(namespace); // If specified namespace does not exist, then return a zero record count. if (namespaceEntity == null) { return 0L; }/*from w ww . j a v a2 s .co m*/ // If file type is specified, fetch the relative entity to optimize the main query. FileTypeEntity fileTypeEntity = null; if (StringUtils.isNotBlank(businessObjectFormatFileType)) { fileTypeEntity = fileTypeDao.getFileTypeByCode(businessObjectFormatFileType); // If specified file type does not exist, then return a zero record count. if (fileTypeEntity == null) { return 0L; } } // Join to the other tables we can filter on. Join<BusinessObjectFormatEntity, BusinessObjectDefinitionEntity> businessObjectDefinitionEntity = businessObjectFormatEntityRoot .join(BusinessObjectFormatEntity_.businessObjectDefinition); // Create main query restrictions based on the specified parameters. List<Predicate> predicates = new ArrayList<>(); // Create restriction on namespace code and business object definition name. predicates.add(builder.equal(businessObjectDefinitionEntity.get(BusinessObjectDefinitionEntity_.namespace), namespaceEntity)); predicates.add(builder.equal( builder.upper(businessObjectDefinitionEntity.get(BusinessObjectDefinitionEntity_.name)), businessObjectDefinitionName.toUpperCase())); // If specified, create restriction on business object format usage. if (!StringUtils.isEmpty(businessObjectFormatUsage)) { predicates.add(builder.equal( builder.upper(businessObjectFormatEntityRoot.get(BusinessObjectFormatEntity_.usage)), businessObjectFormatUsage.toUpperCase())); } // If specified, create restriction on business object format file type. if (fileTypeEntity != null) { predicates .add(builder.equal(businessObjectFormatEntityRoot.get(BusinessObjectFormatEntity_.fileTypeCode), fileTypeEntity.getCode())); } // If specified, create restriction on business object format version. if (businessObjectFormatVersion != null) { predicates.add(builder.equal( businessObjectFormatEntityRoot.get(BusinessObjectFormatEntity_.businessObjectFormatVersion), businessObjectFormatVersion)); } // If specified, create restriction on partition keys. if (CollectionUtils.isNotEmpty(partitionKeys)) { for (String partitionKey : partitionKeys) { // Add restriction on partition key (partition column). // Partition key must identify a partition column that is at partition level that could be explicitly registered. // Partition level uses one-based numbering. Join<BusinessObjectFormatEntity, SchemaColumnEntity> schemaColumnEntityJoin = businessObjectFormatEntityRoot .join(BusinessObjectFormatEntity_.schemaColumns); predicates.add(builder.equal(builder.upper(schemaColumnEntityJoin.get(SchemaColumnEntity_.name)), partitionKey.toUpperCase())); predicates.add(builder.isNotNull(schemaColumnEntityJoin.get(SchemaColumnEntity_.partitionLevel))); predicates.add(builder.lessThan(schemaColumnEntityJoin.get(SchemaColumnEntity_.partitionLevel), BusinessObjectDataEntity.MAX_SUBPARTITIONS + 2)); } } // Add all clauses for the query. criteria.select(businessObjectFormatRecordCount) .where(builder.and(predicates.toArray(new Predicate[predicates.size()]))).distinct(true); // Execute the query and return the result. return entityManager.createQuery(criteria).getSingleResult(); }