@Override public void processAttribute(IEntity currentEntity, MetaField metaField) { String fieldName = metaField.getName(); InternalFieldEnum fieldEnum = InternalFieldFactory.getInternalFieldEnum(fieldName); if (fieldEnum != null) { processInternalAttribute(fieldEnum, (NewBsonEntity)currentEntity, parentField, (NewBsonEntity)parentEntity); } else { processUserAttribute((NewBsonEntity)currentEntity, metaField); } }
private void init(){ Map<String, MetaField> internals = InternalFieldFactory.getInternalMetaFields(); for (MetaField f : internals.values()) { fieldNameIndex.put(f.getName(), f); dbNameIndex.put(f.getDbName(), f); flattenValueDbNameIndex.put(f.getFlattenValueDbName(), f); } }
@Override protected boolean isExecutable(ExecuteContext context) { if (inIdsCriteria == null) { List<ActionResult> results = this.searchAction.getActionResults(); List<Object> ids = new LinkedList<Object>(); for (ActionResult result : results) { SearchResult searchResult = result.searchResult; for (IEntity entity : searchResult.getResultSet()) { ids.add(entity.getId()); } } if (!ids.isEmpty()) { ISearchField searchField = new SelectionField(InternalFieldFactory.getInternalMetaField(InternalFieldEnum.ID), getQueryStrategy()); inIdsCriteria = new FieldSearchCriteria(searchField, FieldOperatorEnum.IN, ids); } else { // set empty criteria to skip aggregation actions inIdsCriteria = EmptySearchCriteria.EMPTY_CRITERIA; } // restored the search projection parseNode.setProjection(aggProjection); } return inIdsCriteria != null; }
@Test(expected = IllegalMetaClassException.class) public void testSetInternalClassFields() { MetaClass mClass = new MetaClass(); List<MetaField> fields = new ArrayList<MetaField>(); MetaField idField = InternalFieldFactory.getInternalMetaField(InternalFieldEnum.ID); fields.add(idField); mClass.setClassFields(fields); }
@Override public void processAttribute(IEntity currentEntity, MetaField metaField) { String fieldName = metaField.getName(); InternalFieldEnum fieldEnum = InternalFieldFactory.getInternalFieldEnum(fieldName); if (fieldEnum != null) { processInternalAttribute(fieldEnum, (BsonEntity)currentEntity, parentField, (BsonEntity)parentEntity); } else { processUserAttribute((BsonEntity)currentEntity, metaField); } }
protected SearchQuery rewriteQuery(SearchQuery query) { if (oneTableAggregation) { SearchCriteria statusCriteria = new FieldSearchCriteria( InternalFieldFactory.getInternalMetaField(InternalFieldEnum.STATUS), getQueryStrategy(), FieldOperatorEnum.EQ, StatusEnum.ACTIVE.toString()); query.appendSearchCriteria(statusCriteria); } else if (inIdsCriteria != null) { query.appendSearchCriteria(inIdsCriteria); } return query; }
@Override public void processAttribute(IEntity currentEntity, MetaField metaField) { String fieldName = metaField.getName(); InternalFieldEnum fieldEnum = InternalFieldFactory.getInternalFieldEnum(fieldName); if (fieldEnum != null) { processInternalAttribute(fieldEnum, (BsonEntity)currentEntity, parentField, (BsonEntity)parentEntity); } else { processUserAttribute((BsonEntity)currentEntity, metaField); } }
protected SearchQuery rewriteQuery(SearchQuery query) { // append join criteria query.appendSearchCriteria(parentJoinCriteria); query.appendSearchCriteria(childJoinCriteria); // append internal status criteria SearchCriteria statusCriteria = new FieldSearchCriteria( InternalFieldFactory.getInternalMetaField(InternalFieldEnum.STATUS), getQueryStrategy(), FieldOperatorEnum.EQ, StatusEnum.ACTIVE.toString()); query.appendSearchCriteria(statusCriteria); // append pagination criteria SearchCriteria criteria = parseNode.getCursor().getCursorCriteria(searchOption, parseNode, queryContext); query.appendSearchCriteria(criteria); return query; }
public void addField(MetaField metaField) { if (InternalFieldFactory.getInternalFieldEnum(metaField.getName()) != null) { throw new IllegalMetaClassException("MetaField name can not use reserved name");
private void rewriteQuery() { // append internal status criteria SearchCriteria statusCriteria = new FieldSearchCriteria( InternalFieldFactory.getInternalMetaField(InternalFieldEnum.STATUS), getQueryStrategy(), FieldOperatorEnum.EQ, StatusEnum.ACTIVE.toString()); rootEmbedQuery.appendSearchCriteria(statusCriteria); // append parent criteria rootEmbedQuery.appendSearchCriteria(parentJoinCriteria); // append cursor criteria SearchCursor rootCursor = rootSearchAction.getParseNode().getCursor(); SearchOption option = rootSearchAction.getSearchOption(); SearchCriteria criteria = rootCursor.getCursorCriteria(option, rootSearchAction.getParseNode(), queryContext); rootEmbedQuery.appendSearchCriteria(criteria); }