diff --git a/bosk-bson/src/main/java/works/bosk/bson/BsonFormatter.java b/bosk-bson/src/main/java/works/bosk/bson/BsonFormatter.java index 9b36c529..33c45cc2 100644 --- a/bosk-bson/src/main/java/works/bosk/bson/BsonFormatter.java +++ b/bosk-bson/src/main/java/works/bosk/bson/BsonFormatter.java @@ -291,6 +291,15 @@ public enum DocumentFields { /** * The location of this document's state within the conceptual giant document. * A pipe-separated list of BSON field names. + * + *

+ * We put the whole path in _id so that it will be present in change stream documents. + */ + _id, + + /** + * The {@link Path#urlEncoded() url encoded} {@link Path path} of the location of + * this document's state within the bosk tree. */ path, diff --git a/bosk-bson/src/main/java/works/bosk/bson/BsonSurgeon.java b/bosk-bson/src/main/java/works/bosk/bson/BsonSurgeon.java index eb9a5b71..6ab596b2 100644 --- a/bosk-bson/src/main/java/works/bosk/bson/BsonSurgeon.java +++ b/bosk-bson/src/main/java/works/bosk/bson/BsonSurgeon.java @@ -68,10 +68,7 @@ public GraftPoint boundTo(Identifier id) { } } - /** - * We put the whole path in _id so that it will be present in change stream documents - */ - private static final String BSON_PATH_FIELD = "_id"; + private static final String BSON_PATH_FIELD = DocumentFields._id.name(); private static final String STATE_FIELD = DocumentFields.state.name(); @@ -197,7 +194,8 @@ private static BsonDocument lookup(BsonDocument entireDoc, List segments * *

* partsList is a list of "instructions" for assembling a larger document. - * Each part contains a {@link DocumentFields#path path} field containing a {@link BsonFormatter#docBsonPath BSON path} + * Each part contains a {@link DocumentFields#_id _id} field containing + * a {@link BsonFormatter#docBsonPath BSON path} * that indicates where that part fits into the larger document; * and a {@link DocumentFields#state state} field with the contents of the part. *