@Override public Object createObject(final byte[] bytes, final int offset) { LazyDBObject document = new LazyDBObject(bytes, offset, this); Iterator<String> iterator = document.keySet().iterator(); if (iterator.hasNext() && iterator.next().equals("$ref") && iterator.hasNext() && iterator.next().equals("$id")) { return new DBRef((String) document.get("$db"), (String) document.get("$ref"), document.get("$id")); } return document; }
@Override public int writeObject(final OutputBuffer outputBuffer, final BSONObject document) { if (!(document instanceof LazyDBObject)) { throw new IllegalArgumentException("LazyDBEncoder can only encode BSONObject instances of type LazyDBObject"); } LazyDBObject lazyDBObject = (LazyDBObject) document; try { return lazyDBObject.pipe(outputBuffer); } catch (IOException e) { throw new MongoException("Exception serializing a LazyDBObject", e); } } }
@Override public Object createObject(final byte[] bytes, final int offset) { LazyDBObject document = new LazyDBObject(bytes, offset, this); Iterator<String> iterator = document.keySet().iterator(); if (iterator.hasNext() && iterator.next().equals("$ref") && iterator.hasNext() && iterator.next().equals("$id")) { return new DBRef((String) document.get("$db"), (String) document.get("$ref"), document.get("$id")); } return document; }
@Override public int writeObject(final OutputBuffer outputBuffer, final BSONObject document) { if (!(document instanceof LazyDBObject)) { throw new IllegalArgumentException("LazyDBEncoder can only encode BSONObject instances of type LazyDBObject"); } LazyDBObject lazyDBObject = (LazyDBObject) document; try { return lazyDBObject.pipe(outputBuffer); } catch (IOException e) { throw new MongoException("Exception serializing a LazyDBObject", e); } } }