@Override public void gotCodeWScope(final String name, final String code, final Object scope) { _put(name, new CodeWScope(code, (BSONObject) scope)); }
private CodeWScope readCodeWScope(final BsonReader reader, final DecoderContext decoderContext, final List<String> path) { return new CodeWScope(reader.readJavaScriptWithScope(), readDocument(reader, decoderContext, path)); }
} else if (b.containsField("$code")) { if (b.containsField("$scope")) { o = new CodeWScope((String) b.get("$code"), (DBObject) b.get("$scope")); } else { o = new Code((String) b.get("$code"));
@Test public void testWhereWithInvalidStringQuery() { getDs().save(new PhotoWithKeywords()); final CodeWScope hasKeyword = new CodeWScope("keywords != null", new BasicDBObject()); try { // must fail assertNotNull(getDs().find(PhotoWithKeywords.class).where(hasKeyword.getCode()) .find(new FindOptions().limit(1)) .next()); fail("Invalid javascript magically isn't invalid anymore?"); } catch (MongoInternalException e) { // fine } catch (MongoException e) { // fine } }
@Test public void testWhereCodeWScopeQuery() { getDs().save(new PhotoWithKeywords(new Keyword("california"), new Keyword("nevada"), new Keyword("arizona"))); // CodeWScope hasKeyword = new CodeWScope("for (kw in this.keywords) { if(kw.keyword == kwd) return true; } return false; // ", new BasicDBObject("kwd","california")); final CodeWScope hasKeyword = new CodeWScope("this.keywords != null", new BasicDBObject()); assertNotNull(getDs().find(PhotoWithKeywords.class).where(hasKeyword) .find(new FindOptions().limit(1)) .next()); }
return new Symbol(reader.readSymbol()); case JAVASCRIPT_WITH_SCOPE: return new CodeWScope(reader.readJavaScriptWithScope(), (BSONObject) readJavaScriptWithScopeDocument(reader)); case INT32: return reader.readInt32();
public void gotCodeWScope(String name, String code, Object scope) { _put(name, new CodeWScope(code, (BSONObject) scope)); }
private CodeWScope readCodeWScope(final BsonReader reader, final DecoderContext decoderContext, final List<String> path) { return new CodeWScope(reader.readJavaScriptWithScope(), readDocument(reader, decoderContext, path)); }
public void __setstate__(final HashMap<String, Object> state) { // CHECKSTYLE:ON Object scope = state.get("_Code__scope"); if (!(scope instanceof Map)) { throw new PickleException( "Expected a Map for key \"_Code__scope\", not a " + scope.getClass().getName()); } Map scopeMap = (Map) scope; if (!scopeMap.isEmpty()) { this.value = new CodeWScope(this.code, new BasicBSONObject(scopeMap)); } else { this.value = new Code(this.code); } }
} else if (b.containsField("$code")) { if (b.containsField("$scope")) { o = new CodeWScope((String) b.get("$code"), (DBObject) b.get("$scope")); } else { o = new Code((String) b.get("$code"));
o = new CodeWScope((String)b.get("$code"), (DBObject)b.get("$scope")); } else { o = new Code((String)b.get("$code"));
/** * Test if {@link JavaScript} objects can be deserialized * @throws Exception if something goes wrong */ @Test public void parseCode() throws Exception { BSONObject scope = new BasicBSONObject(); scope.put("Int32", 5); BSONObject o = new BasicBSONObject(); o.put("Code1", new CodeWScope("alert('test');", scope)); o.put("Code2", new Code("alert('Hello');")); Map<?, ?> data = parseBsonObject(o); assertEquals(2, data.size()); JavaScript c1 = (JavaScript)data.get("Code1"); JavaScript c2 = (JavaScript)data.get("Code2"); assertEquals("alert('test');", c1.getCode()); assertEquals("alert('Hello');", c2.getCode()); Map<String, Object> c1scope = c1.getScope(); assertEquals(5, c1scope.get("Int32")); }
/** * Tests if {@code JavaScript} objects can be deserialized * @throws Exception if something goes wrong */ @Test public void javascript() throws Exception { Code code = new Code("code"); TC.J obj = generateAndParse(code, TC.J.class); assertEquals(code.getCode(), obj.obj.getCode()); CodeWScope codews = new CodeWScope("code", new BasicBSONObject("key", "value")); obj = generateAndParse(codews, TC.J.class); assertEquals(code.getCode(), obj.obj.getCode()); assertEquals(codews.getScope().toMap(), obj.obj.getScope()); }
} else if (value instanceof CodeWithScope) { CodeWithScope code = (CodeWithScope)value; value = new org.bson.types.CodeWScope(code.getCode(), createMongoData(code.getScope())); } else if (value instanceof Code) { Code code = (Code)value;