/** * Returns a projection based on an array or object node */ public static Projection project(ContainerNode node) { return new Projection(node); }
public static Projection project(List<? extends Projection> projection) { if (projection.size() == 1) { return projection.get(0); } else { Projection x = new Projection(true); for (Projection p : projection) { x.addToArray(p.toJson()); } return x; } }
/** * <pre> * [ projection ... ] * </pre> */ public static Projection project(Projection... projection) { if (projection.length == 1) { return projection[0]; } else { Projection x = new Projection(true); for (Projection p : projection) { x.addToArray(p.toJson()); } return x; } }
/** * <pre> * { field: <pattern>, include: <include>, recursive: <recursive> } * </pre> */ public static Projection field(String pattern, boolean include, boolean recursive) { Projection p = new Projection(false); p.add("field", pattern).add("include", include).add("recursive", recursive); return p; }
/** * <pre> * { field: <pattern>, include: <include>, range: [from,to], projection: <projection>, sort: <sort> } * </pre> */ public static Projection array(String pattern, Integer from, Integer to, boolean include, Projection projection, Sort sort) { Projection p = new Projection(false); ArrayNode a = JsonNodeFactory.instance.arrayNode(); a.add(JsonNodeFactory.instance.numberNode(from)); if (to != null) { a.add(JsonNodeFactory.instance.numberNode(to)); } else { a.add(JsonNodeFactory.instance.nullNode()); } p.add("field", pattern).add("include", include).add("range", a); if (projection != null) { p.add("projection", projection.toJson()); } if (sort != null) { p.add("sort", sort.toJson()); } return p; }
/** * <pre> * { field: <pattern>, include: <include>, match: <query>, projection: <projection>, sort: <sort> } * </pre> */ public static Projection array(String pattern, Query match, boolean include, Projection projection, Sort sort) { Projection p = new Projection(false); p.add("field", pattern).add("include", include).add("match", match.toJson()); if (projection != null) { p.add("projection", projection.toJson()); } if (sort != null) { p.add("sort", sort.toJson()); } return p; }