/** * Returns true if no key/value was inserted into the top level document. * * @return true if empty */ public boolean isEmpty() { return ((BasicDBObject) _stack.getFirst()).size() == 0; }
@Override public Memory unconvert(Environment env, TraceInfo trace, BasicDBObject arg) throws Throwable { if (arg == null) return Memory.NULL; ArrayMemory result = ArrayMemory.createHashed(arg.size()); for (Entry<String, Object> entry : arg.entrySet()) { if (entry.getValue() instanceof BasicDBObject) { result.put(entry.getKey(), unconvert(env, trace, (BasicDBObject) entry.getValue())); } else { result.put(entry.getKey(), Memory.wrap(env, entry.getValue())); } } return null; }
@Override public List<WidgetPosition> getPositions() { final BasicDBObject positions = (BasicDBObject) fields.get(DashboardImpl.EMBEDDED_POSITIONS); if (positions == null) { return Collections.emptyList(); } final List<WidgetPosition> result = new ArrayList<>(positions.size()); for ( String positionId : positions.keySet() ) { final BasicDBObject position = (BasicDBObject) positions.get(positionId); final int width = parseInt(position.get("width").toString()); final int height = parseInt(position.get("height").toString()); final int col = parseInt(position.get("col").toString()); final int row = parseInt(position.get("row").toString()); final WidgetPosition widgetPosition = WidgetPosition.builder() .id(positionId) .width(width) .height(height) .col(col) .row(row) .build(); result.add(widgetPosition); } return result; }
private Object negate(String key, BasicDBObject value) { if (value.size() == 1) { return asDBObject(key, asDBObject("$not", value)); } else { BasicDBList list2 = new BasicDBList(); for (Map.Entry<String, Object> entry2 : value.entrySet()) { list2.add(asDBObject(key, asDBObject("$not", asDBObject(entry2.getKey(), entry2.getValue())))); } return asDBObject("$or", list2); } }
@Test public void testIdFieldNameMapping() { final Rectangle r = new Rectangle(1, 12); final BasicDBObject dbObj = (BasicDBObject) getMorphia().toDBObject(r); assertFalse(dbObj.containsField("id")); assertTrue(dbObj.containsField("_id")); assertEquals(4, dbObj.size()); //_id, h, w, className }
private void addLookupAndMatchToPipeline(BasicDBList lookup, BasicDBObject mongoQuery, List<DBObject> pipeline) { BasicDBObject matchBeforeLookup = new BasicDBObject(); BasicDBObject matchAfterLookup = new BasicDBObject(); for (String key : mongoQuery.keySet()) { if (key.contains(".")) { matchAfterLookup.append(key, mongoQuery.get(key)); } else { matchBeforeLookup.append(key, mongoQuery.get(key)); } } if (matchBeforeLookup.size() > 0) { pipeline.add(new BasicDBObject("$match", matchBeforeLookup)); } for (Object lookupItem : lookup) { pipeline.add((DBObject) lookupItem); } if (matchAfterLookup.size() > 0) { pipeline.add(new BasicDBObject("$match", matchAfterLookup)); } }
if (actual.size() > 0)
/** * Returns true if no key/value was inserted into the top level document. * * @return true if empty */ public boolean isEmpty() { return ((BasicDBObject) _stack.getFirst()).size() == 0; }
/** * Get the aggregation object. * * @param metadata * @return */ private BasicDBObject createAggregation(EntityMetadata metadata) { if (kunderaQuery.getSelectStatement() != null) { Metamodel metaModel = kunderaMetadata.getApplicationMetadata().getMetamodel(metadata.getPersistenceUnit()); EntityType entityType = metaModel.entity(metadata.getEntityClazz()); AbstractManagedType managedType = (AbstractManagedType) metaModel.entity(metadata.getEntityClazz()); boolean hasLob = managedType.hasLobAttribute(); BasicDBObject aggregation = new BasicDBObject(); SelectClause selectClause = (SelectClause) kunderaQuery.getSelectStatement().getSelectClause(); Expression expression = selectClause.getSelectExpression(); buildAggregation(aggregation, expression, metadata, entityType, hasLob); if (aggregation.size() == 0) { return null; } if (!aggregation.containsField("_id")) { aggregation.put("_id", null); } return aggregation; } return null; }
private boolean isIdIndex(DBObject index) { BasicDBObject keys = (BasicDBObject) index.get("key"); return (keys != null && keys.size() == 1 && keys.containsField("_id")); }
protected boolean indexFieldsMatch(Index index, DBObject existingIndex) { BasicDBObject keys = (BasicDBObject) existingIndex.get("key"); if (keys != null) { List<SortKey> fields = index.getFields(); if (keys.size() == fields.size()) { Iterator<SortKey> sortKeyItr = fields.iterator(); for (Map.Entry<String, Object> dbKeyEntry : keys.entrySet()) { SortKey sortKey = sortKeyItr.next(); if (!compareSortKeys(sortKey, dbKeyEntry.getKey(), dbKeyEntry.getValue())) { return false; } } return true; } } return false; }
protected boolean indexFieldsMatch(Index index, DBObject existingIndex) { BasicDBObject keys = (BasicDBObject) existingIndex.get("key"); if (keys != null) { List<IndexSortKey> fields = index.getFields(); if (keys.size() == fields.size()) { Iterator<IndexSortKey> sortKeyItr = fields.iterator(); for (Map.Entry<String, Object> dbKeyEntry : keys.entrySet()) { IndexSortKey sortKey = sortKeyItr.next(); if (!compareSortKeys(sortKey, dbKeyEntry.getKey(), dbKeyEntry.getValue())) { return false; } } return true; } } return false; }
@Override public Collection<String> getFieldNames(){ Collection<String> fielNames = new ArrayList<String>(bsonObject.size() * 2); for(String dbName : bsonObject.keySet()){ MetaField metaField = getMetaClass().getFieldByDbName(dbName); if (metaField != null) { String fieldName = metaField.getName(); fielNames.add(fieldName); } } return fielNames; }
@Override public Collection<String> getFieldNames(){ Collection<String> fielNames = new HashSet<String>(bsonObject.size() * 2); for(String dbName : bsonObject.keySet()){ MetaField metaField = getMetaClass().getFieldByFlattenValueDbName(dbName); if (metaField != null) { String fieldName = metaField.getName(); fielNames.add(fieldName); } } return fielNames; }
private Object negate(String key, BasicDBObject value) { if (value.size() == 1) { return asDBObject(key, asDBObject("$not", value)); } else { BasicDBList list2 = new BasicDBList(); for (Map.Entry<String, Object> entry2 : value.entrySet()) { list2.add(asDBObject(key, asDBObject("$not", asDBObject(entry2.getKey(), entry2.getValue())))); } return asDBObject("$or", list2); } }
@Override public Collection<String> getFieldNames(){ Collection<String> fielNames = new ArrayList<String>(bsonObject.size() * 2); for(String dbName : bsonObject.keySet()){ MetaField metaField = getMetaClass().getFieldByDbName(dbName); if (metaField != null) { String fieldName = metaField.getName(); fielNames.add(fieldName); } } return fielNames; }
@Test public void test10NoProjection() { MetaClass metadata = raptorMetaService.getMetaClass("ServiceInstance"); SearchGroup group = new SearchGroup(); group.addGroupField(createGroupField(metadata, "healthStatus")); group.addGroupField(createGroupField(metadata, "manifestDiff")); AggregationField max_ports = createAggregationField(metadata, AggFuncEnum.MAX, "port"); group.addAggregationField(max_ports); SearchProjection projection = new SearchProjection(); ISearchQuery query = new SearchQuery(metadata, null, projection, group, null, strategy); SearchOption option = new SearchOption(); SearchResult result = searchService.search(query, option, raptorContext); Assert.assertEquals(2, result.getResultSize()); BsonEntity entity = (BsonEntity) result.getResultSet().get(0); Assert.assertEquals(3, entity.getNode().size()); }
@Test public void test10NoProjection() { MetaClass metadata = raptorMetaService.getMetaClass("ServiceInstance"); SearchGroup group = new SearchGroup(); group.addGroupField(createGroupField(metadata, "healthStatus")); group.addGroupField(createGroupField(metadata, "manifestDiff")); AggregationField max_ports = createAggregationField(metadata, AggFuncEnum.MAX, "port"); group.addAggregationField(max_ports); SearchProjection projection = new SearchProjection(); ISearchQuery query = new SearchQuery(metadata, null, projection, group, null, strategy); SearchOption option = new SearchOption(); SearchResult result = searchService.search(query, option, raptorContext); Assert.assertEquals(2, result.getResultSize()); NewBsonEntity entity = (NewBsonEntity) result.getResultSet().get(0); Assert.assertEquals(3, entity.getNode().size()); }
@Test public void test10NoProjection() { MetaClass metadata = raptorMetaService.getMetaClass("ServiceInstance"); SearchGroup group = new SearchGroup(); group.addGroupField(createGroupField(metadata, "healthStatus")); group.addGroupField(createGroupField(metadata, "manifestDiff")); AggregationField max_ports = createAggregationField(metadata, AggFuncEnum.MAX, "port"); group.addAggregationField(max_ports); SearchProjection projection = new SearchProjection(); ISearchQuery query = new SearchQuery(metadata, null, projection, group, null, strategy); SearchOption option = new SearchOption(); SearchResult result = searchService.search(query, option, raptorContext); Assert.assertEquals(2, result.getResultSize()); BsonEntity entity = (BsonEntity) result.getResultSet().get(0); Assert.assertEquals(3, entity.getNode().size()); }
@Test public void test13Sum() { MetaClass metadata = raptorMetaService.getMetaClass("ServiceInstance"); SearchGroup group = new SearchGroup(); group.addGroupField(createGroupField(metadata, "healthStatus")); group.addGroupField(createGroupField(metadata, "manifestDiff")); AggregationField sumPorts = createAggregationField(metadata, AggFuncEnum.SUM, "_pversion"); group.addAggregationField(sumPorts); SearchProjection project = new SearchProjection(); project.addField(ProjectionField.STAR); ISearchQuery query = new SearchQuery(metadata, null, project, group, null, strategy); SearchOption option = new SearchOption(); SearchResult result = searchService.search(query, option, raptorContext); Assert.assertEquals(2, result.getResultSize()); BsonEntity entity = (BsonEntity) result.getResultSet().get(0); Assert.assertEquals(3, entity.getNode().size()); int sumPort = entity.getNode().getInt(sumPorts.getFieldName()); System.out.println(sumPort); Assert.assertTrue(sumPort == -5); }