public List<Object> extractDBRefValue(DBRefBase ref, String refKey) { if ("$id".equals(refKey)) { return Collections.singletonList(ref.getId()); } else if ("$ref".equals(refKey)) { return Collections.<Object>singletonList(ref.getRef()); } else if ("$db".equals(refKey)) { return Collections.<Object>singletonList(ref.getDB()); } else return Collections.emptyList(); }
protected void putDBRef(String name, DBRefBase ref) { _put(OBJECT, name); final int sizePos = _buf.getPosition(); _buf.writeInt(0); _putObjectField("$ref", ref.getRef()); _putObjectField("$id", ref.getId()); _buf.write(EOO); _buf.writeInt(sizePos, _buf.getPosition() - sizePos); }