@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 }
connectionsMap.getInt("current"), connectionsMap.getInt("available"), connectionsMap.containsField("totalCreated") ? connectionsMap.getLong("totalCreated") : null );
@Test public void testEmbeddedMapWithValueInterface() throws Exception { getMorphia().map(ContainsMapOfEmbeddedGoos.class).map(ContainsMapOfEmbeddedInterfaces.class); final Goo g1 = new Goo("Scott"); final ContainsMapOfEmbeddedInterfaces cmoei = new ContainsMapOfEmbeddedInterfaces(); cmoei.values.put("first", g1); getDs().save(cmoei); //check className in the map values. final BasicDBObject goo = (BasicDBObject) ((BasicDBObject) getDs().getCollection(ContainsMapOfEmbeddedInterfaces.class) .findOne() .get("values")) .get("first"); assertTrue(goo.containsField(getMorphia().getMapper().getOptions().getDiscriminatorField())); }
@Test public void testEmbeddedMap() throws Exception { getMorphia().map(ContainsMapOfEmbeddedGoos.class).map(ContainsMapOfEmbeddedInterfaces.class); final Goo g1 = new Goo("Scott"); final ContainsMapOfEmbeddedGoos cmoeg = new ContainsMapOfEmbeddedGoos(); cmoeg.values.put("first", g1); getDs().save(cmoeg); //check className in the map values. final BasicDBObject goo = (BasicDBObject) ((BasicDBObject) getDs().getCollection(ContainsMapOfEmbeddedGoos.class) .findOne() .get("values")) .get("first"); assertFalse(goo.containsField(getMorphia().getMapper().getOptions().getDiscriminatorField())); }
@Test public void testEmbeddedMapUpdateOperationsOnInterfaceValue() throws Exception { getMorphia().map(ContainsMapOfEmbeddedGoos.class).map(ContainsMapOfEmbeddedInterfaces.class); final Goo g1 = new Goo("Scott"); final Goo g2 = new Goo("Ralph"); final ContainsMapOfEmbeddedInterfaces cmoei = new ContainsMapOfEmbeddedInterfaces(); cmoei.values.put("first", g1); getDs().save(cmoei); getDs().update(cmoei, getDs().createUpdateOperations(ContainsMapOfEmbeddedInterfaces.class).set("values.second", g2)); //check className in the map values. final BasicDBObject goo = (BasicDBObject) ((BasicDBObject) getDs().getCollection(ContainsMapOfEmbeddedInterfaces.class) .findOne() .get("values")) .get("second"); assertTrue("className should be here.", goo.containsField(getMorphia().getMapper().getOptions().getDiscriminatorField())); }
@Test //@Ignore("waiting on issue 184") public void testEmbeddedMapUpdateOperations() throws Exception { getMorphia().map(ContainsMapOfEmbeddedGoos.class).map(ContainsMapOfEmbeddedInterfaces.class); final Goo g1 = new Goo("Scott"); final Goo g2 = new Goo("Ralph"); final ContainsMapOfEmbeddedGoos cmoeg = new ContainsMapOfEmbeddedGoos(); cmoeg.values.put("first", g1); getDs().save(cmoeg); getDs().update(cmoeg, getDs().createUpdateOperations(ContainsMapOfEmbeddedGoos.class).set("values.second", g2)); //check className in the map values. final BasicDBObject goo = (BasicDBObject) ((BasicDBObject) getDs().getCollection(ContainsMapOfEmbeddedGoos.class) .findOne() .get("values")).get( "second"); assertFalse("className should not be here.", goo.containsField( getMorphia().getMapper().getOptions().getDiscriminatorField())); }
for (String key : orderBy.keySet()) if (aggregation.containsField(key)) else if (aggregation.containsField("_id")) if (((BasicDBObject) aggregation.get("_id")).containsField(key)) if (((BasicDBObject) aggregation.get("_id")).containsField(key.substring(9)))
private void appendToQuery(BasicDBObject query, String property, String operator, Object value) { if (query.containsField(property)) { Object existing = query.get(property); if (!(existing instanceof BasicDBObject)) { query.put(property, new BasicDBObject("$eq", existing)); } query.put(property, ((BasicDBObject) query.get(property)).append(operator, value)); } else { query.append(property, new BasicDBObject(operator, value)); } }
private List extractAggregationValues(Iterable<DBObject> documents, BasicDBObject aggregation) { List results = new LinkedList(); if (aggregation != null) { if (aggregation.containsField("_id") && aggregation.get("_id") == null) { aggregation.removeField("_id"); } } for (DBObject document : documents) { if (document.containsField("_id") && document.get("_id") == null) { document.removeField("_id"); } extractAggregationValues(document, results, aggregation != null ? aggregation : (BasicDBObject) document); } return results; }
Assert.assertTrue(item.containsField("value")); Assert.assertTrue(value.containsField("age")); Assert.assertTrue(value.containsField("count"));
String[] attributeNames = DataUtilities.attributeNames(filter); for (String attrName : attributeNames) { if (attrName != null && !attrName.isEmpty() && !keys.containsField(attrName)) { keys.put(mapper.getPropertyPath(attrName), 1); postFilterAttrs.add(attrName); if (!keys.containsField(mapper.getGeometryPath())) { keys.put(mapper.getGeometryPath(), 1);
if (query.containsField(property)) if (query.containsField(property))
@Override public boolean isReference() throws DataException { Object value = this.basicObj.get("value"); if (!(value instanceof BasicDBObject)) { return false; } return ((BasicDBObject) value).containsField("collection") && ((BasicDBObject) value).containsField("path"); } }
/** * 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; }
@Override public AdminEventQuery toTime(Date toTime) { BasicDBObject time = query.containsField("time") ? (BasicDBObject) query.get("time") : new BasicDBObject(); time.append("$lte", toTime.getTime()); query.put("time", time); return this; }
@Override public EventQuery fromDate(Date fromDate) { BasicDBObject time = query.containsField("time") ? (BasicDBObject) query.get("time") : new BasicDBObject(); time.append("$gte", fromDate.getTime()); query.put("time", time); return this; }
/** * Access field as a boolean. * * @param fieldName fully qualified name of the field to be accessed * @return value of the field as a boolean */ public Boolean getBoolean(String fieldName) { BasicDBObject parent = getFieldParent(fieldName); String lf = getLeafName(fieldName); return parent.containsField(lf) ? parent.getBoolean(lf) : null; }
protected void writeIndexInfoToSummaryFile(String collectionName, BasicDBObject index) throws IOException { BasicDBObject i = (BasicDBObject)index.get("key"); // don't write the _id index if(!i.containsField("_id")){ writeToSummaryFile(collectionName, i.toString()); } } }
@Override public boolean hasFieldProperty(String fieldName, String propertyName) { MetaField metaField = getMetaClass().getFieldByName(fieldName); FieldProperty fp = FieldProperty.fromQueryName(propertyName); CheckConditions.checkArgument(fp != null, MessageFormat.format("field property %s not found!", propertyName)); String propertyValueDbName = metaField.getFlattenPropertyValueDbName(fp); return bsonObject.containsField(propertyValueDbName); }
@Override public boolean hasField(String fieldName){ MetaField metaField = getMetaClass().getFieldByName(fieldName); if (metaField == null) { return false; } String dbName = metaField.getDbName(); if (!metaField.isInternal()) { dbName = metaField.getFlattenValueDbName(); } return bsonObject.containsField(dbName); }