DataType prevType = null; for (FieldPathEntry entry : this) { FieldPathEntry.Type type = entry.getType(); switch (type) { case STRUCT_FIELD:
public static boolean isComplete(FieldPathUpdate update) { if (!(update instanceof AssignFieldPathUpdate)) { return false; } // Only consider field path updates that touch a top-level field as 'complete', // as these may be converted to regular field value updates. return ((update.getFieldPath().size() == 1) && update.getFieldPath().get(0).getType() == FieldPathEntry.Type.STRUCT_FIELD); }
if (idx < updatePath.size()) { FieldPathEntry pathEntry = updatePath.get(idx); FieldPathEntry.Type type = pathEntry.getType(); if (type == FieldPathEntry.Type.STRUCT_FIELD) { if (!(value instanceof StructuredFieldValue)) {
@Override FieldPathIteratorHandler.ModificationStatus iterateNested(FieldPath fieldPath, int pos, FieldPathIteratorHandler handler) { if (pos < fieldPath.size()) { switch (fieldPath.get(pos).getType()) { case ARRAY_INDEX: final int elemIndex = fieldPath.get(pos).getLookupIndex();
switch (fieldPath.get(pos).getType()) { case MAP_KEY:
FieldPathIteratorHandler handler) { if (pos < fieldPath.size()) { if (fieldPath.get(pos).getType() == FieldPathEntry.Type.STRUCT_FIELD) { FieldValue fieldVal = getFieldValue(fieldPath.get(pos).getFieldRef()); if (fieldVal != null) {