Skip to content

Commit 4f8e610

Browse files
committed
Simplifications.
1 parent dfc4a7c commit 4f8e610

File tree

10 files changed

+42
-44
lines changed

10 files changed

+42
-44
lines changed

substratevm/src/com.oracle.svm.agent/src/com/oracle/svm/agent/NativeImageAgent.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -64,7 +64,7 @@
6464
import com.oracle.svm.agent.tracing.TraceFileWriter;
6565
import com.oracle.svm.agent.tracing.core.Tracer;
6666
import com.oracle.svm.agent.tracing.core.TracingResultWriter;
67-
import com.oracle.svm.configure.config.ConditionalConfigurationFilter;
67+
import com.oracle.svm.configure.config.ConditionalConfigurationPredicate;
6868
import com.oracle.svm.configure.config.ConfigurationFileCollection;
6969
import com.oracle.svm.configure.filters.FilterConfigurationParser;
7070
import com.oracle.svm.configure.filters.RuleNode;
@@ -289,7 +289,7 @@ protected int onLoadCallback(JNIJavaVM vm, JvmtiEnv jvmti, JvmtiEventCallbacks c
289289
tracer = writer;
290290
tracingResultWriter = writer;
291291
} else if (!predefinedConfigurationPackages.isEmpty()) {
292-
ConditionalConfigurationFilter filter = new ConditionalConfigurationFilter(classNamePatterns);
292+
ConditionalConfigurationPredicate filter = new ConditionalConfigurationPredicate(classNamePatterns);
293293
ConditionalConfigurationWriter writer = new ConditionalConfigurationWriter(advisor, recordKeeper, predefinedConfigurationPackages, filter);
294294
tracer = writer;
295295
tracingResultWriter = writer;

substratevm/src/com.oracle.svm.agent/src/com/oracle/svm/agent/predicatedconfig/ConditionalConfigurationWriter.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@
4141
import com.oracle.svm.agent.configwithorigins.ConfigurationWithOriginsResultWriterBase;
4242
import com.oracle.svm.agent.configwithorigins.MethodInfo;
4343
import com.oracle.svm.agent.configwithorigins.MethodInfoRecordKeeper;
44-
import com.oracle.svm.configure.config.ConditionalConfigurationFilter;
44+
import com.oracle.svm.configure.config.ConditionalConfigurationPredicate;
4545
import com.oracle.svm.configure.config.ConfigurationSet;
4646
import com.oracle.svm.configure.config.PredefinedClassesConfiguration;
4747
import com.oracle.svm.configure.config.ProxyConfiguration;
@@ -61,9 +61,9 @@
6161
public class ConditionalConfigurationWriter extends ConfigurationWithOriginsResultWriterBase {
6262
private final Set<String> applicationPackagePrefixes;
6363
private ConfigurationSet configurationContainer = new ConfigurationSet();
64-
private final ConditionalConfigurationFilter filter;
64+
private final ConditionalConfigurationPredicate filter;
6565

66-
public ConditionalConfigurationWriter(AccessAdvisor advisor, MethodInfoRecordKeeper methodInfoRecordKeeper, Set<String> applicationPackagePrefixes, ConditionalConfigurationFilter filter) {
66+
public ConditionalConfigurationWriter(AccessAdvisor advisor, MethodInfoRecordKeeper methodInfoRecordKeeper, Set<String> applicationPackagePrefixes, ConditionalConfigurationPredicate filter) {
6767
super(advisor, methodInfoRecordKeeper);
6868
this.applicationPackagePrefixes = applicationPackagePrefixes;
6969
this.filter = filter;

substratevm/src/com.oracle.svm.configure/src/com/oracle/svm/configure/ConfigurationBase.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@
2828

2929
import com.oracle.svm.configure.json.JsonPrintable;
3030

31-
public abstract class ConfigurationBase<T extends ConfigurationBase<T, U>, U> implements JsonPrintable {
31+
public abstract class ConfigurationBase<T extends ConfigurationBase<T, P>, P> implements JsonPrintable {
3232

3333
public abstract boolean isEmpty();
3434

@@ -40,7 +40,7 @@ public abstract class ConfigurationBase<T extends ConfigurationBase<T, U>, U> im
4040

4141
protected abstract void intersect(T other);
4242

43-
protected abstract void filter(U predicate);
43+
protected abstract void removeIf(P predicate);
4444

4545
protected T copyAnd(Consumer<T> consumer) {
4646
T copy = copy();
@@ -60,7 +60,7 @@ public T copyAndIntersect(T other) {
6060
return copyAnd(copy -> copy.intersect(other));
6161
}
6262

63-
public T copyAndFilter(U predicate) {
64-
return copyAnd(copy -> copy.filter(predicate));
63+
public T copyAndFilter(P predicate) {
64+
return copyAnd(copy -> copy.removeIf(predicate));
6565
}
6666
}
Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,13 +6,12 @@
66

77
import com.oracle.svm.core.configure.ConditionalElement;
88

9-
public class ConditionalConfigurationFilter
10-
implements TypeConfiguration.TypeConfigurationFilterPredicate, ProxyConfiguration.ProxyConfigurationFilterPredicate, ResourceConfiguration.ResourceConfigurationFilterPredicate,
11-
SerializationConfiguration.SerializationConfigurationFilter, PredefinedClassesConfiguration.PredefinedClassFilterPredicate {
9+
public class ConditionalConfigurationPredicate implements TypeConfiguration.Predicate, ProxyConfiguration.Predicate,
10+
ResourceConfiguration.Predicate, SerializationConfiguration.Predicate, PredefinedClassesConfiguration.Predicate {
1211

1312
private final Set<Pattern> classNamePatterns;
1413

15-
public ConditionalConfigurationFilter(Set<Pattern> classNamePatterns) {
14+
public ConditionalConfigurationPredicate(Set<Pattern> classNamePatterns) {
1615
this.classNamePatterns = classNamePatterns;
1716
}
1817

substratevm/src/com.oracle.svm.configure/src/com/oracle/svm/configure/config/ConfigurationSet.java

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,6 @@
2525
package com.oracle.svm.configure.config;
2626

2727
import java.nio.file.Path;
28-
import java.util.function.BiFunction;
2928

3029
import com.oracle.svm.configure.ConfigurationBase;
3130
import com.oracle.svm.configure.trace.TraceProcessor;
@@ -34,6 +33,11 @@
3433

3534
public class ConfigurationSet {
3635

36+
@FunctionalInterface
37+
private interface Mutator {
38+
<T extends ConfigurationBase<T, ?>> T apply(T first, T other);
39+
}
40+
3741
private final TypeConfiguration reflectionConfiguration;
3842
private final TypeConfiguration jniConfiguration;
3943
private final ResourceConfiguration resourceConfiguration;
@@ -67,33 +71,29 @@ public ConfigurationSet() {
6771
new PredefinedClassesConfiguration(new Path[0], hash -> false));
6872
}
6973

70-
@SuppressWarnings("rawtypes")
71-
private ConfigurationSet mutate(ConfigurationSet other, BiFunction<ConfigurationBase, ConfigurationBase, ConfigurationBase> mutator) {
72-
TypeConfiguration reflectionConfiguration = (TypeConfiguration) mutator.apply(this.reflectionConfiguration, other.reflectionConfiguration);
73-
TypeConfiguration jniConfiguration = (TypeConfiguration) mutator.apply(this.jniConfiguration, other.jniConfiguration);
74-
ResourceConfiguration resourceConfiguration = (ResourceConfiguration) mutator.apply(this.resourceConfiguration, other.resourceConfiguration);
75-
ProxyConfiguration proxyConfiguration = (ProxyConfiguration) mutator.apply(this.proxyConfiguration, other.proxyConfiguration);
76-
SerializationConfiguration serializationConfiguration = (SerializationConfiguration) mutator.apply(this.serializationConfiguration, other.serializationConfiguration);
77-
PredefinedClassesConfiguration predefinedClassesConfiguration = (PredefinedClassesConfiguration) mutator.apply(this.predefinedClassesConfiguration, other.predefinedClassesConfiguration);
74+
private ConfigurationSet mutate(ConfigurationSet other, Mutator mutator) {
75+
TypeConfiguration reflectionConfiguration = mutator.apply(this.reflectionConfiguration, other.reflectionConfiguration);
76+
TypeConfiguration jniConfiguration = mutator.apply(this.jniConfiguration, other.jniConfiguration);
77+
ResourceConfiguration resourceConfiguration = mutator.apply(this.resourceConfiguration, other.resourceConfiguration);
78+
ProxyConfiguration proxyConfiguration = mutator.apply(this.proxyConfiguration, other.proxyConfiguration);
79+
SerializationConfiguration serializationConfiguration = mutator.apply(this.serializationConfiguration, other.serializationConfiguration);
80+
PredefinedClassesConfiguration predefinedClassesConfiguration = mutator.apply(this.predefinedClassesConfiguration, other.predefinedClassesConfiguration);
7881
return new ConfigurationSet(reflectionConfiguration, jniConfiguration, resourceConfiguration, proxyConfiguration, serializationConfiguration, predefinedClassesConfiguration);
7982
}
8083

81-
@SuppressWarnings("unchecked")
8284
public ConfigurationSet merge(ConfigurationSet other) {
8385
return mutate(other, ConfigurationBase::copyAndMerge);
8486
}
8587

86-
@SuppressWarnings("unchecked")
8788
public ConfigurationSet subtract(ConfigurationSet other) {
8889
return mutate(other, ConfigurationBase::copyAndSubtract);
8990
}
9091

91-
@SuppressWarnings("unchecked")
9292
public ConfigurationSet intersectWith(ConfigurationSet other) {
9393
return mutate(other, ConfigurationBase::copyAndIntersect);
9494
}
9595

96-
public ConfigurationSet filter(ConditionalConfigurationFilter filter) {
96+
public ConfigurationSet filter(ConditionalConfigurationPredicate filter) {
9797
TypeConfiguration reflectionConfiguration = this.reflectionConfiguration.copyAndFilter(filter);
9898
TypeConfiguration jniConfiguration = this.jniConfiguration.copyAndFilter(filter);
9999
ResourceConfiguration resourceConfiguration = this.resourceConfiguration.copyAndFilter(filter);

substratevm/src/com.oracle.svm.configure/src/com/oracle/svm/configure/config/PredefinedClassesConfiguration.java

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,6 @@
3131
import java.nio.file.StandardCopyOption;
3232
import java.util.concurrent.ConcurrentHashMap;
3333
import java.util.concurrent.ConcurrentMap;
34-
import java.util.function.Predicate;
3534

3635
import org.graalvm.nativeimage.impl.ConfigurationCondition;
3736

@@ -40,12 +39,12 @@
4039
import com.oracle.svm.core.configure.ConfigurationFile;
4140
import com.oracle.svm.core.hub.PredefinedClassesSupport;
4241

43-
public final class PredefinedClassesConfiguration extends ConfigurationBase<PredefinedClassesConfiguration, PredefinedClassesConfiguration.PredefinedClassFilterPredicate> {
42+
public final class PredefinedClassesConfiguration extends ConfigurationBase<PredefinedClassesConfiguration, PredefinedClassesConfiguration.Predicate> {
4443
private final Path[] classDestinationDirs;
4544
private final ConcurrentMap<String, ConfigurationPredefinedClass> classes = new ConcurrentHashMap<>();
46-
private final Predicate<String> shouldExcludeClassWithHash;
45+
private final java.util.function.Predicate<String> shouldExcludeClassWithHash;
4746

48-
public PredefinedClassesConfiguration(Path[] classDestinationDirs, Predicate<String> shouldExcludeClassWithHash) {
47+
public PredefinedClassesConfiguration(Path[] classDestinationDirs, java.util.function.Predicate<String> shouldExcludeClassWithHash) {
4948
this.classDestinationDirs = classDestinationDirs;
5049
this.shouldExcludeClassWithHash = shouldExcludeClassWithHash;
5150
}
@@ -77,7 +76,7 @@ protected void intersect(PredefinedClassesConfiguration other) {
7776
}
7877

7978
@Override
80-
protected void filter(PredefinedClassFilterPredicate predicate) {
79+
protected void removeIf(Predicate predicate) {
8180
classes.values().removeIf(predicate::testPredefinedClass);
8281
}
8382

@@ -182,7 +181,7 @@ public boolean containsClassWithHash(String hash) {
182181
return classes.containsKey(hash);
183182
}
184183

185-
public interface PredefinedClassFilterPredicate {
184+
public interface Predicate {
186185

187186
boolean testPredefinedClass(ConfigurationPredefinedClass clazz);
188187

substratevm/src/com.oracle.svm.configure/src/com/oracle/svm/configure/config/ProxyConfiguration.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@
3737
import com.oracle.svm.configure.json.JsonWriter;
3838
import com.oracle.svm.core.configure.ConditionalElement;
3939

40-
public final class ProxyConfiguration extends ConfigurationBase<ProxyConfiguration, ProxyConfiguration.ProxyConfigurationFilterPredicate> {
40+
public final class ProxyConfiguration extends ConfigurationBase<ProxyConfiguration, ProxyConfiguration.Predicate> {
4141
private final Set<ConditionalElement<List<String>>> interfaceLists = ConcurrentHashMap.newKeySet();
4242

4343
public ProxyConfiguration() {
@@ -67,7 +67,7 @@ protected void intersect(ProxyConfiguration other) {
6767
}
6868

6969
@Override
70-
protected void filter(ProxyConfigurationFilterPredicate predicate) {
70+
protected void removeIf(Predicate predicate) {
7171
interfaceLists.removeIf(predicate::testProxyInterfaceList);
7272
}
7373

@@ -136,7 +136,7 @@ private static <T extends Comparable<T>> int compareList(List<T> l1, List<T> l2)
136136
return l1.size() - l2.size();
137137
}
138138

139-
public interface ProxyConfigurationFilterPredicate {
139+
public interface Predicate {
140140

141141
boolean testProxyInterfaceList(ConditionalElement<List<String>> conditionalElement);
142142

substratevm/src/com.oracle.svm.configure/src/com/oracle/svm/configure/config/ResourceConfiguration.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@
4343
import com.oracle.svm.core.configure.ConditionalElement;
4444
import com.oracle.svm.core.configure.ResourcesRegistry;
4545

46-
public final class ResourceConfiguration extends ConfigurationBase<ResourceConfiguration, ResourceConfiguration.ResourceConfigurationFilterPredicate> {
46+
public final class ResourceConfiguration extends ConfigurationBase<ResourceConfiguration, ResourceConfiguration.Predicate> {
4747

4848
private static final String PROPERTY_BUNDLE = "java.util.PropertyResourceBundle";
4949

@@ -141,7 +141,7 @@ protected void intersect(ResourceConfiguration other) {
141141
}
142142

143143
@Override
144-
protected void filter(ResourceConfigurationFilterPredicate predicate) {
144+
protected void removeIf(Predicate predicate) {
145145
addedResources.entrySet().removeIf(entry -> predicate.testIncludedResource(entry.getKey(), entry.getValue()));
146146
bundles.entrySet().removeIf(entry -> predicate.testIncludedBundle(entry.getKey(), entry.getValue()));
147147
}
@@ -266,7 +266,7 @@ private static void conditionalElementJson(ConditionalElement<String> p, JsonWri
266266
w.unindent().newline().append('}');
267267
}
268268

269-
public interface ResourceConfigurationFilterPredicate {
269+
public interface Predicate {
270270
boolean testIncludedResource(ConditionalElement<String> condition, Pattern pattern);
271271

272272
boolean testIncludedBundle(ConditionalElement<String> condition, BundleConfiguration bundleConfiguration);

substratevm/src/com.oracle.svm.configure/src/com/oracle/svm/configure/config/SerializationConfiguration.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@
3838
import com.oracle.svm.configure.ConfigurationBase;
3939
import com.oracle.svm.configure.json.JsonWriter;
4040

41-
public final class SerializationConfiguration extends ConfigurationBase<SerializationConfiguration, SerializationConfiguration.SerializationConfigurationFilter>
41+
public final class SerializationConfiguration extends ConfigurationBase<SerializationConfiguration, SerializationConfiguration.Predicate>
4242
implements RuntimeSerializationSupport {
4343

4444
private final Set<SerializationConfigurationType> serializations = ConcurrentHashMap.newKeySet();
@@ -71,7 +71,7 @@ protected void intersect(SerializationConfiguration other) {
7171
}
7272

7373
@Override
74-
protected void filter(SerializationConfigurationFilter predicate) {
74+
protected void removeIf(Predicate predicate) {
7575
serializations.removeIf(predicate::testSerializationType);
7676
}
7777

@@ -133,7 +133,7 @@ private static SerializationConfigurationType createConfigurationType(Configurat
133133
return new SerializationConfigurationType(condition, convertedClassName, convertedCustomTargetConstructorClassName);
134134
}
135135

136-
public interface SerializationConfigurationFilter {
136+
public interface Predicate {
137137

138138
boolean testSerializationType(SerializationConfigurationType type);
139139

substratevm/src/com.oracle.svm.configure/src/com/oracle/svm/configure/config/TypeConfiguration.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@
3939
import com.oracle.svm.core.configure.ConditionalElement;
4040
import com.oracle.svm.core.util.VMError;
4141

42-
public final class TypeConfiguration extends ConfigurationBase<TypeConfiguration, TypeConfiguration.TypeConfigurationFilterPredicate> {
42+
public final class TypeConfiguration extends ConfigurationBase<TypeConfiguration, TypeConfiguration.Predicate> {
4343

4444
private final ConcurrentMap<ConditionalElement<String>, ConfigurationType> types = new ConcurrentHashMap<>();
4545

@@ -86,7 +86,7 @@ protected void intersect(TypeConfiguration other) {
8686
}
8787

8888
@Override
89-
protected void filter(TypeConfigurationFilterPredicate predicate) {
89+
protected void removeIf(Predicate predicate) {
9090
types.entrySet().removeIf(entry -> predicate.testIncludedType(entry.getKey(), entry.getValue()));
9191
}
9292

@@ -159,7 +159,7 @@ public int hashCode() {
159159
return Objects.hash(types);
160160
}
161161

162-
public interface TypeConfigurationFilterPredicate {
162+
public interface Predicate {
163163

164164
boolean testIncludedType(ConditionalElement<String> conditionalElement, ConfigurationType type);
165165

0 commit comments

Comments
 (0)