@Override public boolean update(JsonDoc doc, FieldTreeNode contextMd, Path contextPath) { boolean ret = false; for (Updater x : updaters) { if (x.update(doc, contextMd, contextPath)) { ret = true; } } return ret; } }
@Override public void getUpdateFields(Set<Path> fields) { for (Updater x : updaters) { x.getUpdateFields(fields); } }
/** * Creates an updater object based on the given update expression */ public static Updater getInstance(JsonNodeFactory factory, EntityMetadata md, UpdateExpression expr) { return getInstance(factory, md.getFieldTreeRoot(), expr); }
public UpdateExpressionListEvaluator(JsonNodeFactory factory, FieldTreeNode context, UpdateExpressionList expr) { List<PartialUpdateExpression> list = expr.getList(); updaters = new ArrayList<>(list.size()); for (PartialUpdateExpression x : list) { updaters.add(Updater.getInstance(factory, context, x)); } }
/** * Creates an updater object based on the given update expression */ public static Updater getInstance(JsonNodeFactory factory, EntityMetadata md, UpdateExpression expr) { return getInstance(factory, md.getFieldTreeRoot(), expr); }
@Override public boolean update(JsonDoc doc, FieldTreeNode contextMd, Path contextPath) { boolean ret = false; for (Updater x : updaters) { if (x.update(doc, contextMd, contextPath)) { ret = true; } } return ret; } }
@Override public void getUpdateFields(Set<Path> fields) { this.updateInfo.updater.getUpdateFields(fields); }
/** * Creates an updater object based on the given update expression */ public static Updater getInstance(JsonNodeFactory factory, EntityMetadata md, UpdateExpression expr) { return getInstance(factory, md.getFieldTreeRoot(), expr); }
@Override public boolean update(JsonDoc doc, FieldTreeNode contextMd, Path contextPath) { boolean ret = false; for (Updater x : updaters) { if (x.update(doc, contextMd, contextPath)) { ret = true; } } return ret; } }
@Override public void getUpdateFields(Set<Path> fields) { for (Updater x : updaters) { x.getUpdateFields(fields); } }
public UpdateExpressionListEvaluator(JsonNodeFactory factory, FieldTreeNode context, UpdateExpressionList expr) { List<PartialUpdateExpression> list = expr.getList(); updaters = new ArrayList<>(list.size()); for (PartialUpdateExpression x : list) { updaters.add(Updater.getInstance(factory, context, x)); } }
private boolean updateDoc(EntityMetadata md, JsonDoc doc, Measure measure) { if (updater.update(doc, md.getFieldTreeRoot(), Path.EMPTY)) { // Remove any nulls from the document JsonDoc.filterNulls(doc.getRoot()); measure.begin("updateArraySizes"); PredefinedFields.updateArraySizes(md, nodeFactory, doc); measure.end("updateArraySizes"); return true; } else { return false; } }
@Override public void getUpdateFields(Set<Path> fields) { for (Updater x : updaters) { x.getUpdateFields(fields); } }
public UpdateExpressionListEvaluator(JsonNodeFactory factory, FieldTreeNode context, UpdateExpressionList expr) { List<PartialUpdateExpression> list = expr.getList(); updaters = new ArrayList<>(list.size()); for (PartialUpdateExpression x : list) { updaters.add(Updater.getInstance(factory, context, x)); } }
LOGGER.debug("query matches {}", elementPath); LOGGER.debug("Calling updater {}", updater); if (updater.update(doc, elementMd, elementPath)) { LOGGER.debug("Updater {} returns {}", updater, true); ret = true;
@Override public void getUpdateFields(Set<Path> fields) { this.updateInfo.updater.getUpdateFields(fields); }
public ForEachExpressionEvaluator(JsonNodeFactory factory, FieldTreeNode context, ForEachExpression expr) { this.factory = factory; // Resolve the field, make sure it is an array field = expr.getField(); FieldTreeNode md = context.resolve(field); if (md instanceof ArrayField) { fieldMd = (ArrayField) md; } else { throw new EvaluationError(CrudConstants.ERR_FIELD_NOT_ARRAY + field); } if (field.nAnys() > 0) { throw new EvaluationError(CrudConstants.ERR_PATTERN_NOT_EXPECTED + field); } // Get a query evaluator QueryExpression query = expr.getQuery(); if (query instanceof AllMatchExpression) { queryEvaluator = new AllEvaluator(); } else { queryEvaluator = QueryEvaluator.getInstance(query, fieldMd.getElement()); } // Get an updater to execute on each matching element UpdateExpression upd = expr.getUpdate(); if (upd instanceof RemoveElementExpression) { updater = new RemoveEvaluator(fieldMd.getElement().getFullPath()); } else { updater = Updater.getInstance(factory, fieldMd.getElement(), upd); } }
LOGGER.debug("query matches {}", elementPath); LOGGER.debug("Calling updater {}", updateInfo.updater); if (updateInfo.updater.update(doc, elementMd, elementPath)) { LOGGER.debug("Updater {} returns {}", updateInfo.updater, true); ret = true;
@Override public void getUpdateFields(Set<Path> fields) { updater.getUpdateFields(fields); }
updater = new RemoveEvaluator(fieldMd.getElement().getFullPath()); } else { updater = Updater.getInstance(factory, fieldMd.getElement(), upd);