/** * Converts a FieldMask to its canonical form. In the canonical form of a * FieldMask, all field paths are sorted alphabetically and redundant field * paths are moved. */ public static FieldMask normalize(FieldMask mask) { return new FieldMaskTree(mask).toFieldMask(); }
@Override public String toString() { return FieldMaskUtil.toString(toFieldMask()); }
/** * Creates a union of two or more FieldMasks. */ public static FieldMask union( FieldMask firstMask, FieldMask secondMask, FieldMask... otherMasks) { FieldMaskTree maskTree = new FieldMaskTree(firstMask).mergeFromFieldMask(secondMask); for (FieldMask mask : otherMasks) { maskTree.mergeFromFieldMask(mask); } return maskTree.toFieldMask(); }
/** * Calculates the intersection of two FieldMasks. */ public static FieldMask intersection(FieldMask mask1, FieldMask mask2) { FieldMaskTree tree = new FieldMaskTree(mask1); FieldMaskTree result = new FieldMaskTree(); for (String path : mask2.getPathsList()) { tree.intersectFieldPath(path, result); } return result.toFieldMask(); }