Skip to content

Commit 5046704

Browse files
committed
Fix equals/hashcode
1 parent a02d039 commit 5046704

File tree

1 file changed

+35
-2
lines changed

1 file changed

+35
-2
lines changed

impl/maven-impl/src/main/java/org/apache/maven/internal/impl/model/DefaultProfileActivationContext.java

Lines changed: 35 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,9 @@
3232
import java.util.List;
3333
import java.util.Map;
3434
import java.util.Objects;
35+
import java.util.Set;
3536
import java.util.concurrent.atomic.AtomicBoolean;
37+
import java.util.stream.Collectors;
3638

3739
import org.apache.maven.api.model.Model;
3840
import org.apache.maven.api.services.Interpolator;
@@ -58,7 +60,7 @@ enum ModelInfo {
5860
RootDirectory
5961
}
6062

61-
class Record {
63+
static class Record {
6264
private final Map<String, Boolean> usedActiveProfiles = new HashMap<>();
6365
private final Map<String, Boolean> usedInactiveProfiles = new HashMap<>();
6466
private final Map<String, String> usedSystemProperties = new HashMap<>();
@@ -67,6 +69,36 @@ class Record {
6769
private final Map<ModelInfo, String> usedModelInfos = new HashMap<>();
6870
private final Map<ExistRequest, Boolean> usedExists = new HashMap<>();
6971

72+
@Override
73+
public boolean equals(Object o) {
74+
if (o instanceof Record record) {
75+
return Objects.equals(values(usedActiveProfiles), values(record.usedActiveProfiles))
76+
&& Objects.equals(values(usedInactiveProfiles), values(record.usedInactiveProfiles))
77+
&& Objects.equals(usedSystemProperties, record.usedSystemProperties)
78+
&& Objects.equals(usedUserProperties, record.usedUserProperties)
79+
&& Objects.equals(usedModelProperties, record.usedModelProperties)
80+
&& Objects.equals(usedModelInfos, record.usedModelInfos)
81+
&& Objects.equals(usedExists, record.usedExists);
82+
}
83+
return false;
84+
}
85+
86+
private static Set<String> values(Map<String, Boolean> map) {
87+
return map.entrySet().stream().filter(e -> e.getValue()).map(e -> e.getKey()).collect(Collectors.toSet());
88+
}
89+
90+
@Override
91+
public int hashCode() {
92+
return Objects.hash(
93+
usedActiveProfiles,
94+
usedInactiveProfiles,
95+
usedSystemProperties,
96+
usedUserProperties,
97+
usedModelProperties,
98+
usedModelInfos,
99+
usedExists);
100+
}
101+
70102
boolean matches(DefaultProfileActivationContext context) {
71103
for (Map.Entry<String, Boolean> e : usedActiveProfiles.entrySet()) {
72104
if (!Objects.equals(e.getValue(), context.activeProfileIds.contains(e.getKey()))) {
@@ -107,7 +139,8 @@ boolean matches(DefaultProfileActivationContext context) {
107139
}
108140
for (Map.Entry<ExistRequest, Boolean> e : usedExists.entrySet()) {
109141
if (!Objects.equals(
110-
e.getValue(), doExists(e.getKey().path(), e.getKey().enableGlob()))) {
142+
e.getValue(),
143+
context.doExists(e.getKey().path(), e.getKey().enableGlob()))) {
111144
return false;
112145
}
113146
}

0 commit comments

Comments
 (0)