aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGoogle Java Core Libraries <java-team-github-bot@google.com>2021-04-19 13:04:11 -0700
committerGoogle Java Core Libraries <java-libraries-firehose+copybara@google.com>2021-04-19 13:04:34 -0700
commit952ebbe105a321579424af66d1c61a5af3f8570a (patch)
tree33ce3c0fa97115147886d200c8e61ddf04d147bd
parentb11f23793deeff65898d25df566b923b1b6541ea (diff)
downloadtruth-952ebbe105a321579424af66d1c61a5af3f8570a.tar.gz
Rename FieldDescriptorOrUnknown to SubScopeId
RELNOTES=n/a PiperOrigin-RevId: 369285049
-rw-r--r--extensions/proto/src/main/java/com/google/common/truth/extensions/proto/AnyUtils.java14
-rw-r--r--extensions/proto/src/main/java/com/google/common/truth/extensions/proto/DiffResult.java25
-rw-r--r--extensions/proto/src/main/java/com/google/common/truth/extensions/proto/FieldNumberTree.java29
-rw-r--r--extensions/proto/src/main/java/com/google/common/truth/extensions/proto/FieldScopeLogic.java69
-rw-r--r--extensions/proto/src/main/java/com/google/common/truth/extensions/proto/FieldScopeLogicContainer.java2
-rw-r--r--extensions/proto/src/main/java/com/google/common/truth/extensions/proto/FieldScopeLogicMap.java12
-rw-r--r--extensions/proto/src/main/java/com/google/common/truth/extensions/proto/FluentEqualityConfig.java20
-rw-r--r--extensions/proto/src/main/java/com/google/common/truth/extensions/proto/ProtoTruthMessageDifferencer.java75
-rw-r--r--extensions/proto/src/main/java/com/google/common/truth/extensions/proto/SubScopeId.java (renamed from extensions/proto/src/main/java/com/google/common/truth/extensions/proto/FieldDescriptorOrUnknown.java)12
9 files changed, 107 insertions, 151 deletions
diff --git a/extensions/proto/src/main/java/com/google/common/truth/extensions/proto/AnyUtils.java b/extensions/proto/src/main/java/com/google/common/truth/extensions/proto/AnyUtils.java
index 32037ad3..a9a7782e 100644
--- a/extensions/proto/src/main/java/com/google/common/truth/extensions/proto/AnyUtils.java
+++ b/extensions/proto/src/main/java/com/google/common/truth/extensions/proto/AnyUtils.java
@@ -35,11 +35,10 @@ class AnyUtils {
return TYPE_URL_FIELD_DESCRIPTOR;
}
- private static final FieldDescriptorOrUnknown TYPE_URL_FIELD_DESCRIPTOR_OR_UNKNOWN =
- FieldDescriptorOrUnknown.of(TYPE_URL_FIELD_DESCRIPTOR);
+ private static final SubScopeId TYPE_URL_SUB_SCOPE_ID = SubScopeId.of(TYPE_URL_FIELD_DESCRIPTOR);
- static FieldDescriptorOrUnknown typeUrlFieldDescriptorOrUnknown() {
- return TYPE_URL_FIELD_DESCRIPTOR_OR_UNKNOWN;
+ static SubScopeId typeUrlSubScopeId() {
+ return TYPE_URL_SUB_SCOPE_ID;
}
private static final FieldDescriptor VALUE_FIELD_DESCRIPTOR =
@@ -49,11 +48,10 @@ class AnyUtils {
return VALUE_FIELD_DESCRIPTOR;
}
- private static final FieldDescriptorOrUnknown VALUE_FIELD_DESCRIPTOR_OR_UNKNOWN =
- FieldDescriptorOrUnknown.of(VALUE_FIELD_DESCRIPTOR);
+ private static final SubScopeId VALUE_SUB_SCOPE_ID = SubScopeId.of(VALUE_FIELD_DESCRIPTOR);
- static FieldDescriptorOrUnknown valueFieldDescriptorOrUnknown() {
- return VALUE_FIELD_DESCRIPTOR_OR_UNKNOWN;
+ static SubScopeId valueSubScopeId() {
+ return VALUE_SUB_SCOPE_ID;
}
/** Unpack an `Any` proto using the TypeRegistry and ExtensionRegistry on `config`. */
diff --git a/extensions/proto/src/main/java/com/google/common/truth/extensions/proto/DiffResult.java b/extensions/proto/src/main/java/com/google/common/truth/extensions/proto/DiffResult.java
index b72c69d1..a0ec9373 100644
--- a/extensions/proto/src/main/java/com/google/common/truth/extensions/proto/DiffResult.java
+++ b/extensions/proto/src/main/java/com/google/common/truth/extensions/proto/DiffResult.java
@@ -56,7 +56,7 @@ abstract class DiffResult extends RecursableDiffEntity.WithoutResultCode {
@AutoValue
abstract static class SingularField extends RecursableDiffEntity.WithResultCode {
/** The type information for this field. May be absent if result code is {@code IGNORED}. */
- abstract Optional<FieldDescriptorOrUnknown> fieldDescriptorOrUnknown();
+ abstract Optional<SubScopeId> subScopeId();
/** The display name for this field. May include an array-index specifier. */
abstract String fieldName();
@@ -110,7 +110,7 @@ abstract class DiffResult extends RecursableDiffEntity.WithoutResultCode {
if (actual().get() instanceof Message) {
sb.append("\n").append(actual().get());
} else {
- sb.append(valueString(fieldDescriptorOrUnknown().get(), actual().get())).append("\n");
+ sb.append(valueString(subScopeId().get(), actual().get())).append("\n");
}
return;
case IGNORED:
@@ -123,7 +123,7 @@ abstract class DiffResult extends RecursableDiffEntity.WithoutResultCode {
printChildContents(includeMatches, fieldPrefix, sb);
} else {
sb.append(": ")
- .append(valueString(fieldDescriptorOrUnknown().get(), actualOrExpected()))
+ .append(valueString(subScopeId().get(), actualOrExpected()))
.append("\n");
}
return;
@@ -134,9 +134,9 @@ abstract class DiffResult extends RecursableDiffEntity.WithoutResultCode {
printChildContents(includeMatches, fieldPrefix, sb);
} else {
sb.append(": ")
- .append(valueString(fieldDescriptorOrUnknown().get(), expected().get()))
+ .append(valueString(subScopeId().get(), expected().get()))
.append(" -> ")
- .append(valueString(fieldDescriptorOrUnknown().get(), actual().get()))
+ .append(valueString(subScopeId().get(), actual().get()))
.append("\n");
}
return;
@@ -145,7 +145,7 @@ abstract class DiffResult extends RecursableDiffEntity.WithoutResultCode {
if (expected().get() instanceof Message) {
sb.append("\n").append(expected().get());
} else {
- sb.append(valueString(fieldDescriptorOrUnknown().get(), expected().get())).append("\n");
+ sb.append(valueString(subScopeId().get(), expected().get())).append("\n");
}
return;
default:
@@ -172,8 +172,7 @@ abstract class DiffResult extends RecursableDiffEntity.WithoutResultCode {
abstract static class Builder {
abstract Builder setResult(Result result);
- abstract Builder setFieldDescriptorOrUnknown(
- FieldDescriptorOrUnknown fieldDescriptorOrUnknown);
+ abstract Builder setSubScopeId(SubScopeId subScopeId);
abstract Builder setFieldName(String fieldName);
@@ -600,14 +599,14 @@ abstract class DiffResult extends RecursableDiffEntity.WithoutResultCode {
return rootFieldPrefix.isEmpty() ? toAdd : (rootFieldPrefix + "." + toAdd);
}
- private static String valueString(FieldDescriptorOrUnknown fieldDescriptorOrUnknown, Object o) {
- switch (fieldDescriptorOrUnknown.kind()) {
+ private static String valueString(SubScopeId subScopeId, Object o) {
+ switch (subScopeId.kind()) {
case FIELD_DESCRIPTOR:
- return valueString(fieldDescriptorOrUnknown.fieldDescriptor(), o);
+ return valueString(subScopeId.fieldDescriptor(), o);
case UNKNOWN_FIELD_DESCRIPTOR:
- return valueString(fieldDescriptorOrUnknown.unknownFieldDescriptor(), o);
+ return valueString(subScopeId.unknownFieldDescriptor(), o);
}
- throw new AssertionError(fieldDescriptorOrUnknown.kind());
+ throw new AssertionError(subScopeId.kind());
}
private static String valueString(FieldDescriptor fieldDescriptor, Object o) {
diff --git a/extensions/proto/src/main/java/com/google/common/truth/extensions/proto/FieldNumberTree.java b/extensions/proto/src/main/java/com/google/common/truth/extensions/proto/FieldNumberTree.java
index 4e9dbe53..d33e2fee 100644
--- a/extensions/proto/src/main/java/com/google/common/truth/extensions/proto/FieldNumberTree.java
+++ b/extensions/proto/src/main/java/com/google/common/truth/extensions/proto/FieldNumberTree.java
@@ -40,7 +40,7 @@ final class FieldNumberTree {
}
// Modified only during [factory] construction, never changed afterwards.
- private final Map<FieldDescriptorOrUnknown, FieldNumberTree> children = Maps.newHashMap();
+ private final Map<SubScopeId, FieldNumberTree> children = Maps.newHashMap();
/** Returns whether this {@code FieldNumberTree} has no children. */
boolean isEmpty() {
@@ -52,14 +52,14 @@ final class FieldNumberTree {
*
* <p>{@code empty()} if there is none.
*/
- FieldNumberTree child(FieldDescriptorOrUnknown fieldDescriptorOrUnknown) {
- FieldNumberTree child = children.get(fieldDescriptorOrUnknown);
+ FieldNumberTree child(SubScopeId subScopeId) {
+ FieldNumberTree child = children.get(subScopeId);
return child == null ? EMPTY : child;
}
/** Returns whether this tree has a child for this node. */
- boolean hasChild(FieldDescriptorOrUnknown fieldDescriptorOrUnknown) {
- return children.containsKey(fieldDescriptorOrUnknown);
+ boolean hasChild(SubScopeId subScopeId) {
+ return children.containsKey(subScopeId);
}
static FieldNumberTree fromMessage(Message message) {
@@ -68,9 +68,9 @@ final class FieldNumberTree {
// Known fields.
Map<FieldDescriptor, Object> knownFieldValues = message.getAllFields();
for (FieldDescriptor field : knownFieldValues.keySet()) {
- FieldDescriptorOrUnknown fieldDescriptorOrUnknown = FieldDescriptorOrUnknown.of(field);
+ SubScopeId subScopeId = SubScopeId.of(field);
FieldNumberTree childTree = new FieldNumberTree();
- tree.children.put(fieldDescriptorOrUnknown, childTree);
+ tree.children.put(subScopeId, childTree);
Object fieldValue = knownFieldValues.get(field);
if (field.getJavaType() == FieldDescriptor.JavaType.MESSAGE) {
@@ -107,10 +107,9 @@ final class FieldNumberTree {
UnknownFieldSet.Field unknownField = unknownFieldSet.asMap().get(fieldNumber);
for (UnknownFieldDescriptor unknownFieldDescriptor :
UnknownFieldDescriptor.descriptors(fieldNumber, unknownField)) {
- FieldDescriptorOrUnknown fieldDescriptorOrUnknown =
- FieldDescriptorOrUnknown.of(unknownFieldDescriptor);
+ SubScopeId subScopeId = SubScopeId.of(unknownFieldDescriptor);
FieldNumberTree childTree = new FieldNumberTree();
- tree.children.put(fieldDescriptorOrUnknown, childTree);
+ tree.children.put(subScopeId, childTree);
if (unknownFieldDescriptor.type() == UnknownFieldDescriptor.Type.GROUP) {
for (Object group : unknownFieldDescriptor.type().getValues(unknownField)) {
@@ -125,12 +124,12 @@ final class FieldNumberTree {
/** Adds the other tree onto this one. May destroy {@code other} in the process. */
private void merge(FieldNumberTree other) {
- for (FieldDescriptorOrUnknown fieldDescriptorOrUnknown : other.children.keySet()) {
- FieldNumberTree value = other.children.get(fieldDescriptorOrUnknown);
- if (!this.children.containsKey(fieldDescriptorOrUnknown)) {
- this.children.put(fieldDescriptorOrUnknown, value);
+ for (SubScopeId subScopeId : other.children.keySet()) {
+ FieldNumberTree value = other.children.get(subScopeId);
+ if (!this.children.containsKey(subScopeId)) {
+ this.children.put(subScopeId, value);
} else {
- this.children.get(fieldDescriptorOrUnknown).merge(value);
+ this.children.get(subScopeId).merge(value);
}
}
}
diff --git a/extensions/proto/src/main/java/com/google/common/truth/extensions/proto/FieldScopeLogic.java b/extensions/proto/src/main/java/com/google/common/truth/extensions/proto/FieldScopeLogic.java
index 30204ea9..31fd0563 100644
--- a/extensions/proto/src/main/java/com/google/common/truth/extensions/proto/FieldScopeLogic.java
+++ b/extensions/proto/src/main/java/com/google/common/truth/extensions/proto/FieldScopeLogic.java
@@ -49,13 +49,11 @@ abstract class FieldScopeLogic implements FieldScopeLogicContainer<FieldScopeLog
* Returns whether the given field is included in this FieldScopeLogic, along with whether it's
* included recursively or not.
*/
- abstract FieldScopeResult policyFor(
- Descriptor rootDescriptor, FieldDescriptorOrUnknown fieldDescriptorOrUnknown);
+ abstract FieldScopeResult policyFor(Descriptor rootDescriptor, SubScopeId subScopeId);
/** Returns whether the given field is included in this FieldScopeLogic. */
- final boolean contains(
- Descriptor rootDescriptor, FieldDescriptorOrUnknown fieldDescriptorOrUnknown) {
- return policyFor(rootDescriptor, fieldDescriptorOrUnknown).included();
+ final boolean contains(Descriptor rootDescriptor, SubScopeId subScopeId) {
+ return policyFor(rootDescriptor, subScopeId).included();
}
/**
@@ -65,13 +63,12 @@ abstract class FieldScopeLogic implements FieldScopeLogicContainer<FieldScopeLog
* #subScopeImpl} to implement those cases.
*/
@Override
- public final FieldScopeLogic subScope(
- Descriptor rootDescriptor, FieldDescriptorOrUnknown fieldDescriptorOrUnknown) {
- FieldScopeResult result = policyFor(rootDescriptor, fieldDescriptorOrUnknown);
+ public final FieldScopeLogic subScope(Descriptor rootDescriptor, SubScopeId subScopeId) {
+ FieldScopeResult result = policyFor(rootDescriptor, subScopeId);
if (result.recursive()) {
return result.included() ? all() : none();
} else {
- return subScopeImpl(rootDescriptor, fieldDescriptorOrUnknown);
+ return subScopeImpl(rootDescriptor, subScopeId);
}
}
@@ -82,8 +79,7 @@ abstract class FieldScopeLogic implements FieldScopeLogicContainer<FieldScopeLog
* {@code NONRECURSIVE} results must override this method.
*/
@ForOverride
- FieldScopeLogic subScopeImpl(
- Descriptor rootDescriptor, FieldDescriptorOrUnknown fieldDescriptorOrUnknown) {
+ FieldScopeLogic subScopeImpl(Descriptor rootDescriptor, SubScopeId subScopeId) {
throw new UnsupportedOperationException("subScopeImpl not implemented for " + getClass());
}
@@ -178,8 +174,7 @@ abstract class FieldScopeLogic implements FieldScopeLogicContainer<FieldScopeLog
}
@Override
- final FieldScopeResult policyFor(
- Descriptor rootDescriptor, FieldDescriptorOrUnknown fieldDescriptorOrUnknown) {
+ final FieldScopeResult policyFor(Descriptor rootDescriptor, SubScopeId subScopeId) {
return FieldScopeResult.INCLUDED_RECURSIVELY;
}
@@ -197,8 +192,7 @@ abstract class FieldScopeLogic implements FieldScopeLogicContainer<FieldScopeLog
}
@Override
- final FieldScopeResult policyFor(
- Descriptor rootDescriptor, FieldDescriptorOrUnknown fieldDescriptorOrUnknown) {
+ final FieldScopeResult policyFor(Descriptor rootDescriptor, SubScopeId subScopeId) {
return FieldScopeResult.EXCLUDED_RECURSIVELY;
}
};
@@ -226,17 +220,15 @@ abstract class FieldScopeLogic implements FieldScopeLogicContainer<FieldScopeLog
}
@Override
- final FieldScopeResult policyFor(
- Descriptor rootDescriptor, FieldDescriptorOrUnknown fieldDescriptorOrUnknown) {
- return fieldNumberTree.hasChild(fieldDescriptorOrUnknown)
+ final FieldScopeResult policyFor(Descriptor rootDescriptor, SubScopeId subScopeId) {
+ return fieldNumberTree.hasChild(subScopeId)
? FieldScopeResult.INCLUDED_NONRECURSIVELY
: FieldScopeResult.EXCLUDED_RECURSIVELY;
}
@Override
- final FieldScopeLogic subScopeImpl(
- Descriptor rootDescriptor, FieldDescriptorOrUnknown fieldDescriptorOrUnknown) {
- return newPartialScopeLogic(fieldNumberTree.child(fieldDescriptorOrUnknown));
+ final FieldScopeLogic subScopeImpl(Descriptor rootDescriptor, SubScopeId subScopeId) {
+ return newPartialScopeLogic(fieldNumberTree.child(subScopeId));
}
private static PartialScopeLogic newPartialScopeLogic(FieldNumberTree fieldNumberTree) {
@@ -311,14 +303,12 @@ abstract class FieldScopeLogic implements FieldScopeLogicContainer<FieldScopeLog
abstract boolean matchesFieldDescriptor(Descriptor descriptor, FieldDescriptor fieldDescriptor);
@Override
- final FieldScopeResult policyFor(
- Descriptor rootDescriptor, FieldDescriptorOrUnknown fieldDescriptorOrUnknown) {
- if (fieldDescriptorOrUnknown.kind()
- == FieldDescriptorOrUnknown.Kind.UNKNOWN_FIELD_DESCRIPTOR) {
+ final FieldScopeResult policyFor(Descriptor rootDescriptor, SubScopeId subScopeId) {
+ if (subScopeId.kind() == SubScopeId.Kind.UNKNOWN_FIELD_DESCRIPTOR) {
return FieldScopeResult.EXCLUDED_RECURSIVELY;
}
- FieldDescriptor fieldDescriptor = fieldDescriptorOrUnknown.fieldDescriptor();
+ FieldDescriptor fieldDescriptor = subScopeId.fieldDescriptor();
if (matchesFieldDescriptor(rootDescriptor, fieldDescriptor)) {
return FieldScopeResult.of(/* included = */ true, isRecursive);
}
@@ -332,8 +322,7 @@ abstract class FieldScopeLogic implements FieldScopeLogicContainer<FieldScopeLog
}
@Override
- final FieldScopeLogic subScopeImpl(
- Descriptor rootDescriptor, FieldDescriptorOrUnknown fieldDescriptorOrUnknown) {
+ final FieldScopeLogic subScopeImpl(Descriptor rootDescriptor, SubScopeId subScopeId) {
return this;
}
@@ -443,12 +432,11 @@ abstract class FieldScopeLogic implements FieldScopeLogicContainer<FieldScopeLog
abstract T newLogicOfSameType(List<FieldScopeLogic> newElements);
@Override
- final FieldScopeLogic subScopeImpl(
- Descriptor rootDescriptor, FieldDescriptorOrUnknown fieldDescriptorOrUnknown) {
+ final FieldScopeLogic subScopeImpl(Descriptor rootDescriptor, SubScopeId subScopeId) {
ImmutableList.Builder<FieldScopeLogic> builder =
ImmutableList.builderWithExpectedSize(elements.size());
for (FieldScopeLogic elem : elements) {
- builder.add(elem.subScope(rootDescriptor, fieldDescriptorOrUnknown));
+ builder.add(elem.subScope(rootDescriptor, subScopeId));
}
return newLogicOfSameType(builder.build());
}
@@ -467,12 +455,11 @@ abstract class FieldScopeLogic implements FieldScopeLogicContainer<FieldScopeLog
}
@Override
- FieldScopeResult policyFor(
- Descriptor rootDescriptor, FieldDescriptorOrUnknown fieldDescriptorOrUnknown) {
+ FieldScopeResult policyFor(Descriptor rootDescriptor, SubScopeId subScopeId) {
// The intersection of two scopes is ignorable if either scope is itself ignorable.
return intersection(
- elements.get(0).policyFor(rootDescriptor, fieldDescriptorOrUnknown),
- elements.get(1).policyFor(rootDescriptor, fieldDescriptorOrUnknown));
+ elements.get(0).policyFor(rootDescriptor, subScopeId),
+ elements.get(1).policyFor(rootDescriptor, subScopeId));
}
private static FieldScopeResult intersection(
@@ -512,12 +499,11 @@ abstract class FieldScopeLogic implements FieldScopeLogicContainer<FieldScopeLog
}
@Override
- FieldScopeResult policyFor(
- Descriptor rootDescriptor, FieldDescriptorOrUnknown fieldDescriptorOrUnknown) {
+ FieldScopeResult policyFor(Descriptor rootDescriptor, SubScopeId subScopeId) {
// The union of two scopes is ignorable only if both scopes are themselves ignorable.
return union(
- elements.get(0).policyFor(rootDescriptor, fieldDescriptorOrUnknown),
- elements.get(1).policyFor(rootDescriptor, fieldDescriptorOrUnknown));
+ elements.get(0).policyFor(rootDescriptor, subScopeId),
+ elements.get(1).policyFor(rootDescriptor, subScopeId));
}
private static FieldScopeResult union(FieldScopeResult result1, FieldScopeResult result2) {
@@ -556,9 +542,8 @@ abstract class FieldScopeLogic implements FieldScopeLogicContainer<FieldScopeLog
}
@Override
- FieldScopeResult policyFor(
- Descriptor rootDescriptor, FieldDescriptorOrUnknown fieldDescriptorOrUnknown) {
- FieldScopeResult result = elements.get(0).policyFor(rootDescriptor, fieldDescriptorOrUnknown);
+ FieldScopeResult policyFor(Descriptor rootDescriptor, SubScopeId subScopeId) {
+ FieldScopeResult result = elements.get(0).policyFor(rootDescriptor, subScopeId);
return FieldScopeResult.of(!result.included(), result.recursive());
}
diff --git a/extensions/proto/src/main/java/com/google/common/truth/extensions/proto/FieldScopeLogicContainer.java b/extensions/proto/src/main/java/com/google/common/truth/extensions/proto/FieldScopeLogicContainer.java
index 666112ef..e3d3ea4a 100644
--- a/extensions/proto/src/main/java/com/google/common/truth/extensions/proto/FieldScopeLogicContainer.java
+++ b/extensions/proto/src/main/java/com/google/common/truth/extensions/proto/FieldScopeLogicContainer.java
@@ -27,7 +27,7 @@ import com.google.protobuf.Descriptors.Descriptor;
interface FieldScopeLogicContainer<T extends FieldScopeLogicContainer<T>> {
/** Returns the analog of {@link FieldScopeLogic#subScope} for this container. */
- T subScope(Descriptor rootDescriptor, FieldDescriptorOrUnknown fieldDescriptorOrUnknown);
+ T subScope(Descriptor rootDescriptor, SubScopeId subScopeId);
/** Validates explicitly specified fields for this container. */
void validate(Descriptor rootDescriptor, FieldDescriptorValidator fieldDescriptorValidator);
diff --git a/extensions/proto/src/main/java/com/google/common/truth/extensions/proto/FieldScopeLogicMap.java b/extensions/proto/src/main/java/com/google/common/truth/extensions/proto/FieldScopeLogicMap.java
index f8579680..4bd0948d 100644
--- a/extensions/proto/src/main/java/com/google/common/truth/extensions/proto/FieldScopeLogicMap.java
+++ b/extensions/proto/src/main/java/com/google/common/truth/extensions/proto/FieldScopeLogicMap.java
@@ -61,11 +61,10 @@ class FieldScopeLogicMap<V> implements FieldScopeLogicContainer<FieldScopeLogicM
return entries.isEmpty();
}
- public Optional<V> get(
- Descriptor rootDescriptor, FieldDescriptorOrUnknown fieldDescriptorOrUnknown) {
+ public Optional<V> get(Descriptor rootDescriptor, SubScopeId subScopeId) {
// Earlier entries override later ones, so we don't need to iterate backwards.
for (Entry<V> entry : entries) {
- if (entry.fieldScopeLogic().contains(rootDescriptor, fieldDescriptorOrUnknown)) {
+ if (entry.fieldScopeLogic().contains(rootDescriptor, subScopeId)) {
return Optional.of(entry.value());
}
}
@@ -82,15 +81,12 @@ class FieldScopeLogicMap<V> implements FieldScopeLogicContainer<FieldScopeLogicM
}
@Override
- public FieldScopeLogicMap<V> subScope(
- Descriptor rootDescriptor, FieldDescriptorOrUnknown fieldDescriptorOrUnknown) {
+ public FieldScopeLogicMap<V> subScope(Descriptor rootDescriptor, SubScopeId subScopeId) {
ImmutableList.Builder<Entry<V>> newEntries =
ImmutableList.builderWithExpectedSize(entries.size());
for (Entry<V> entry : entries) {
newEntries.add(
- Entry.of(
- entry.fieldScopeLogic().subScope(rootDescriptor, fieldDescriptorOrUnknown),
- entry.value()));
+ Entry.of(entry.fieldScopeLogic().subScope(rootDescriptor, subScopeId), entry.value()));
}
return new FieldScopeLogicMap<>(newEntries.build());
}
diff --git a/extensions/proto/src/main/java/com/google/common/truth/extensions/proto/FluentEqualityConfig.java b/extensions/proto/src/main/java/com/google/common/truth/extensions/proto/FluentEqualityConfig.java
index 4015238c..bd44f3e9 100644
--- a/extensions/proto/src/main/java/com/google/common/truth/extensions/proto/FluentEqualityConfig.java
+++ b/extensions/proto/src/main/java/com/google/common/truth/extensions/proto/FluentEqualityConfig.java
@@ -326,22 +326,16 @@ abstract class FluentEqualityConfig implements FieldScopeLogicContainer<FluentEq
}
@Override
- public final FluentEqualityConfig subScope(
- Descriptor rootDescriptor, FieldDescriptorOrUnknown fieldDescriptorOrUnknown) {
+ public final FluentEqualityConfig subScope(Descriptor rootDescriptor, SubScopeId subScopeId) {
return toBuilder()
- .setIgnoreFieldAbsenceScope(
- ignoreFieldAbsenceScope().subScope(rootDescriptor, fieldDescriptorOrUnknown))
+ .setIgnoreFieldAbsenceScope(ignoreFieldAbsenceScope().subScope(rootDescriptor, subScopeId))
.setIgnoreRepeatedFieldOrderScope(
- ignoreRepeatedFieldOrderScope().subScope(rootDescriptor, fieldDescriptorOrUnknown))
+ ignoreRepeatedFieldOrderScope().subScope(rootDescriptor, subScopeId))
.setIgnoreExtraRepeatedFieldElementsScope(
- ignoreExtraRepeatedFieldElementsScope()
- .subScope(rootDescriptor, fieldDescriptorOrUnknown))
- .setDoubleCorrespondenceMap(
- doubleCorrespondenceMap().subScope(rootDescriptor, fieldDescriptorOrUnknown))
- .setFloatCorrespondenceMap(
- floatCorrespondenceMap().subScope(rootDescriptor, fieldDescriptorOrUnknown))
- .setCompareFieldsScope(
- compareFieldsScope().subScope(rootDescriptor, fieldDescriptorOrUnknown))
+ ignoreExtraRepeatedFieldElementsScope().subScope(rootDescriptor, subScopeId))
+ .setDoubleCorrespondenceMap(doubleCorrespondenceMap().subScope(rootDescriptor, subScopeId))
+ .setFloatCorrespondenceMap(floatCorrespondenceMap().subScope(rootDescriptor, subScopeId))
+ .setCompareFieldsScope(compareFieldsScope().subScope(rootDescriptor, subScopeId))
.build();
}
diff --git a/extensions/proto/src/main/java/com/google/common/truth/extensions/proto/ProtoTruthMessageDifferencer.java b/extensions/proto/src/main/java/com/google/common/truth/extensions/proto/ProtoTruthMessageDifferencer.java
index 7d069f19..d843a61d 100644
--- a/extensions/proto/src/main/java/com/google/common/truth/extensions/proto/ProtoTruthMessageDifferencer.java
+++ b/extensions/proto/src/main/java/com/google/common/truth/extensions/proto/ProtoTruthMessageDifferencer.java
@@ -104,10 +104,9 @@ final class ProtoTruthMessageDifferencer {
// the field will be considered ignored in the final diff report if no sub-fields get compared
// (i.e., the sub-DiffResult winds up empty). This allows us support FieldScopeLogic
// disjunctions without repeating recursive work.
- FieldDescriptorOrUnknown fieldDescriptorOrUnknown =
- FieldDescriptorOrUnknown.of(fieldDescriptor);
+ SubScopeId subScopeId = SubScopeId.of(fieldDescriptor);
FieldScopeResult shouldCompare =
- config.compareFieldsScope().policyFor(rootDescriptor, fieldDescriptorOrUnknown);
+ config.compareFieldsScope().policyFor(rootDescriptor, subScopeId);
if (shouldCompare == FieldScopeResult.EXCLUDED_RECURSIVELY) {
builder.addSingularField(
fieldDescriptor.getNumber(), SingularField.ignored(name(fieldDescriptor)));
@@ -128,19 +127,15 @@ final class ProtoTruthMessageDifferencer {
expectedMap,
actualAndExpectedKeys,
fieldDescriptor,
- config.subScope(rootDescriptor, fieldDescriptorOrUnknown)));
+ config.subScope(rootDescriptor, subScopeId)));
} else {
List<?> actualList = toProtoList(actualFields.get(fieldDescriptor));
List<?> expectedList = toProtoList(expectedFields.get(fieldDescriptor));
boolean ignoreRepeatedFieldOrder =
- config
- .ignoreRepeatedFieldOrderScope()
- .contains(rootDescriptor, fieldDescriptorOrUnknown);
+ config.ignoreRepeatedFieldOrderScope().contains(rootDescriptor, subScopeId);
boolean ignoreExtraRepeatedFieldElements =
- config
- .ignoreExtraRepeatedFieldElementsScope()
- .contains(rootDescriptor, fieldDescriptorOrUnknown);
+ config.ignoreExtraRepeatedFieldElementsScope().contains(rootDescriptor, subScopeId);
if (ignoreRepeatedFieldOrder) {
builder.addRepeatedField(
fieldDescriptor.getNumber(),
@@ -150,7 +145,7 @@ final class ProtoTruthMessageDifferencer {
shouldCompare == FieldScopeResult.EXCLUDED_NONRECURSIVELY,
fieldDescriptor,
ignoreExtraRepeatedFieldElements,
- config.subScope(rootDescriptor, fieldDescriptorOrUnknown)));
+ config.subScope(rootDescriptor, subScopeId)));
} else if (ignoreExtraRepeatedFieldElements && !expectedList.isEmpty()) {
builder.addRepeatedField(
fieldDescriptor.getNumber(),
@@ -159,7 +154,7 @@ final class ProtoTruthMessageDifferencer {
expectedList,
shouldCompare == FieldScopeResult.EXCLUDED_NONRECURSIVELY,
fieldDescriptor,
- config.subScope(rootDescriptor, fieldDescriptorOrUnknown)));
+ config.subScope(rootDescriptor, subScopeId)));
} else {
builder.addAllSingularFields(
fieldDescriptor.getNumber(),
@@ -168,7 +163,7 @@ final class ProtoTruthMessageDifferencer {
expectedList,
shouldCompare == FieldScopeResult.EXCLUDED_NONRECURSIVELY,
fieldDescriptor,
- config.subScope(rootDescriptor, fieldDescriptorOrUnknown)));
+ config.subScope(rootDescriptor, subScopeId)));
}
}
} else {
@@ -181,7 +176,7 @@ final class ProtoTruthMessageDifferencer {
shouldCompare == FieldScopeResult.EXCLUDED_NONRECURSIVELY,
fieldDescriptor,
name(fieldDescriptor),
- config.subScope(rootDescriptor, fieldDescriptorOrUnknown)));
+ config.subScope(rootDescriptor, subScopeId)));
}
}
@@ -201,9 +196,7 @@ final class ProtoTruthMessageDifferencer {
// Compare the TypeUrl fields.
FieldScopeResult shouldCompareTypeUrl =
- config
- .compareFieldsScope()
- .policyFor(rootDescriptor, AnyUtils.typeUrlFieldDescriptorOrUnknown());
+ config.compareFieldsScope().policyFor(rootDescriptor, AnyUtils.typeUrlSubScopeId());
SingularField typeUrlDiffResult;
if (!shouldCompareTypeUrl.included()) {
typeUrlDiffResult = SingularField.ignored(name(AnyUtils.typeUrlFieldDescriptor()));
@@ -215,16 +208,14 @@ final class ProtoTruthMessageDifferencer {
/* defaultValue= */ "",
AnyUtils.typeUrlFieldDescriptor(),
name(AnyUtils.typeUrlFieldDescriptor()),
- config.subScope(rootDescriptor, AnyUtils.typeUrlFieldDescriptorOrUnknown()));
+ config.subScope(rootDescriptor, AnyUtils.typeUrlSubScopeId()));
}
builder.addSingularField(Any.TYPE_URL_FIELD_NUMBER, typeUrlDiffResult);
// Try to unpack the value fields using the TypeRegister and url from the type_url field. If
// that does not work then we revert to the original behaviour compare the bytes strings.
FieldScopeResult shouldCompareValue =
- config
- .compareFieldsScope()
- .policyFor(rootDescriptor, AnyUtils.valueFieldDescriptorOrUnknown());
+ config.compareFieldsScope().policyFor(rootDescriptor, AnyUtils.valueSubScopeId());
SingularField valueDiffResult;
if (shouldCompareValue == FieldScopeResult.EXCLUDED_RECURSIVELY) {
valueDiffResult = SingularField.ignored(name(AnyUtils.valueFieldDescriptor()));
@@ -243,7 +234,7 @@ final class ProtoTruthMessageDifferencer {
shouldCompareValue == FieldScopeResult.EXCLUDED_NONRECURSIVELY,
AnyUtils.valueFieldDescriptor(),
name(AnyUtils.valueFieldDescriptor()),
- config.subScope(rootDescriptor, AnyUtils.valueFieldDescriptorOrUnknown()));
+ config.subScope(rootDescriptor, AnyUtils.valueSubScopeId()));
} else {
valueDiffResult =
compareSingularValue(
@@ -253,7 +244,7 @@ final class ProtoTruthMessageDifferencer {
shouldCompareValue == FieldScopeResult.EXCLUDED_NONRECURSIVELY,
AnyUtils.valueFieldDescriptor(),
name(AnyUtils.valueFieldDescriptor()),
- config.subScope(rootDescriptor, AnyUtils.valueFieldDescriptorOrUnknown()));
+ config.subScope(rootDescriptor, AnyUtils.valueSubScopeId()));
}
}
builder.addSingularField(Any.VALUE_FIELD_NUMBER, valueDiffResult);
@@ -314,12 +305,11 @@ final class ProtoTruthMessageDifferencer {
FluentEqualityConfig mapConfig) {
FieldDescriptor keyFieldDescriptor = mapFieldDescriptor.getMessageType().findFieldByNumber(1);
FieldDescriptor valueFieldDescriptor = mapFieldDescriptor.getMessageType().findFieldByNumber(2);
- FieldDescriptorOrUnknown valueFieldDescriptorOrUnknown =
- FieldDescriptorOrUnknown.of(valueFieldDescriptor);
+ SubScopeId valueSubScopeId = SubScopeId.of(valueFieldDescriptor);
// We never ignore the key, no matter what the logic dictates.
FieldScopeResult compareValues =
- mapConfig.compareFieldsScope().policyFor(rootDescriptor, valueFieldDescriptorOrUnknown);
+ mapConfig.compareFieldsScope().policyFor(rootDescriptor, valueSubScopeId);
if (compareValues == FieldScopeResult.EXCLUDED_RECURSIVELY) {
return ImmutableList.of(SingularField.ignored(name(mapFieldDescriptor)));
}
@@ -327,10 +317,9 @@ final class ProtoTruthMessageDifferencer {
boolean ignoreExtraRepeatedFieldElements =
mapConfig
.ignoreExtraRepeatedFieldElementsScope()
- .contains(rootDescriptor, FieldDescriptorOrUnknown.of(mapFieldDescriptor));
+ .contains(rootDescriptor, SubScopeId.of(mapFieldDescriptor));
- FluentEqualityConfig valuesConfig =
- mapConfig.subScope(rootDescriptor, valueFieldDescriptorOrUnknown);
+ FluentEqualityConfig valuesConfig = mapConfig.subScope(rootDescriptor, valueSubScopeId);
ImmutableList.Builder<SingularField> builder =
ImmutableList.builderWithExpectedSize(actualAndExpectedKeys.size());
@@ -670,9 +659,7 @@ final class ProtoTruthMessageDifferencer {
// Use the default if it's set and we're ignoring field absence.
boolean ignoreFieldAbsence =
- config
- .ignoreFieldAbsenceScope()
- .contains(rootDescriptor, FieldDescriptorOrUnknown.of(fieldDescriptor));
+ config.ignoreFieldAbsenceScope().contains(rootDescriptor, SubScopeId.of(fieldDescriptor));
actual = orIfIgnoringFieldAbsence(actual, defaultValue, ignoreFieldAbsence);
expected = orIfIgnoringFieldAbsence(expected, defaultValue, ignoreFieldAbsence);
@@ -698,7 +685,7 @@ final class ProtoTruthMessageDifferencer {
// Report the full breakdown.
SingularField.Builder singularFieldBuilder =
SingularField.newBuilder()
- .setFieldDescriptorOrUnknown(FieldDescriptorOrUnknown.of(fieldDescriptor))
+ .setSubScopeId(SubScopeId.of(fieldDescriptor))
.setFieldName(fieldName)
.setResult(result.build());
if (actual != null) {
@@ -724,15 +711,14 @@ final class ProtoTruthMessageDifferencer {
// Use the default if it's set and we're ignoring field absence, or if it's a Proto3 primitive
// for which default is indistinguishable from unset.
- FieldDescriptorOrUnknown fieldDescriptorOrUnknown =
- FieldDescriptorOrUnknown.of(fieldDescriptor);
+ SubScopeId subScopeId = SubScopeId.of(fieldDescriptor);
boolean isNonRepeatedProto3 =
!fieldDescriptor.isRepeated()
&& fieldDescriptor.getContainingOneof() == null
&& fieldDescriptor.getFile().getSyntax() == Syntax.PROTO3;
boolean ignoreFieldAbsence =
isNonRepeatedProto3
- || config.ignoreFieldAbsenceScope().contains(rootDescriptor, fieldDescriptorOrUnknown);
+ || config.ignoreFieldAbsenceScope().contains(rootDescriptor, subScopeId);
actual = orIfIgnoringFieldAbsence(actual, defaultValue, ignoreFieldAbsence);
expected = orIfIgnoringFieldAbsence(expected, defaultValue, ignoreFieldAbsence);
@@ -746,14 +732,14 @@ final class ProtoTruthMessageDifferencer {
!doublesEqual(
(double) actual,
(double) expected,
- config.doubleCorrespondenceMap().get(rootDescriptor, fieldDescriptorOrUnknown)
+ config.doubleCorrespondenceMap().get(rootDescriptor, subScopeId)
));
} else if (actual instanceof Float) {
result.markModifiedIf(
!floatsEqual(
(float) actual,
(float) expected,
- config.floatCorrespondenceMap().get(rootDescriptor, fieldDescriptorOrUnknown)
+ config.floatCorrespondenceMap().get(rootDescriptor, subScopeId)
));
} else {
result.markModifiedIf(!Objects.equal(actual, expected));
@@ -762,7 +748,7 @@ final class ProtoTruthMessageDifferencer {
SingularField.Builder singularFieldBuilder =
SingularField.newBuilder()
- .setFieldDescriptorOrUnknown(FieldDescriptorOrUnknown.of(fieldDescriptor))
+ .setSubScopeId(SubScopeId.of(fieldDescriptor))
.setFieldName(fieldName)
.setResult(result.build());
if (actual != null) {
@@ -818,10 +804,9 @@ final class ProtoTruthMessageDifferencer {
UnknownFieldDescriptor unknownFieldDescriptor =
UnknownFieldDescriptor.create(fieldNumber, type);
- FieldDescriptorOrUnknown fieldDescriptorOrUnknown =
- FieldDescriptorOrUnknown.of(unknownFieldDescriptor);
+ SubScopeId subScopeId = SubScopeId.of(unknownFieldDescriptor);
FieldScopeResult compareFields =
- config.compareFieldsScope().policyFor(rootDescriptor, fieldDescriptorOrUnknown);
+ config.compareFieldsScope().policyFor(rootDescriptor, subScopeId);
if (compareFields == FieldScopeResult.EXCLUDED_RECURSIVELY) {
builder.addSingularField(
fieldNumber, SingularField.ignored(name(unknownFieldDescriptor)));
@@ -835,7 +820,7 @@ final class ProtoTruthMessageDifferencer {
expectedValues,
compareFields == FieldScopeResult.EXCLUDED_NONRECURSIVELY,
unknownFieldDescriptor,
- config.subScope(rootDescriptor, fieldDescriptorOrUnknown)));
+ config.subScope(rootDescriptor, subScopeId)));
}
}
@@ -917,7 +902,7 @@ final class ProtoTruthMessageDifferencer {
// Report the full breakdown.
SingularField.Builder singularFieldBuilder =
SingularField.newBuilder()
- .setFieldDescriptorOrUnknown(FieldDescriptorOrUnknown.of(unknownFieldDescriptor))
+ .setSubScopeId(SubScopeId.of(unknownFieldDescriptor))
.setFieldName(fieldName)
.setResult(result.build());
if (actual != null) {
@@ -945,7 +930,7 @@ final class ProtoTruthMessageDifferencer {
SingularField.Builder singularFieldBuilder =
SingularField.newBuilder()
- .setFieldDescriptorOrUnknown(FieldDescriptorOrUnknown.of(unknownFieldDescriptor))
+ .setSubScopeId(SubScopeId.of(unknownFieldDescriptor))
.setFieldName(fieldName)
.setResult(result.build());
if (actual != null) {
diff --git a/extensions/proto/src/main/java/com/google/common/truth/extensions/proto/FieldDescriptorOrUnknown.java b/extensions/proto/src/main/java/com/google/common/truth/extensions/proto/SubScopeId.java
index 5f5b1b64..4860969e 100644
--- a/extensions/proto/src/main/java/com/google/common/truth/extensions/proto/FieldDescriptorOrUnknown.java
+++ b/extensions/proto/src/main/java/com/google/common/truth/extensions/proto/SubScopeId.java
@@ -19,8 +19,8 @@ package com.google.common.truth.extensions.proto;
import com.google.auto.value.AutoOneOf;
import com.google.protobuf.Descriptors.FieldDescriptor;
-@AutoOneOf(FieldDescriptorOrUnknown.Kind.class)
-abstract class FieldDescriptorOrUnknown {
+@AutoOneOf(SubScopeId.Kind.class)
+abstract class SubScopeId {
enum Kind {
FIELD_DESCRIPTOR,
UNKNOWN_FIELD_DESCRIPTOR;
@@ -45,11 +45,11 @@ abstract class FieldDescriptorOrUnknown {
throw new AssertionError(kind());
}
- static FieldDescriptorOrUnknown of(FieldDescriptor fieldDescriptor) {
- return AutoOneOf_FieldDescriptorOrUnknown.fieldDescriptor(fieldDescriptor);
+ static SubScopeId of(FieldDescriptor fieldDescriptor) {
+ return AutoOneOf_SubScopeId.fieldDescriptor(fieldDescriptor);
}
- static FieldDescriptorOrUnknown of(UnknownFieldDescriptor unknownFieldDescriptor) {
- return AutoOneOf_FieldDescriptorOrUnknown.unknownFieldDescriptor(unknownFieldDescriptor);
+ static SubScopeId of(UnknownFieldDescriptor unknownFieldDescriptor) {
+ return AutoOneOf_SubScopeId.unknownFieldDescriptor(unknownFieldDescriptor);
}
}