You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@isis.apache.org by ah...@apache.org on 2020/02/14 15:57:14 UTC
[isis] branch master updated: ISIS-2223: more mitigations:
introduces an ImmutableEnumSet
This is an automated email from the ASF dual-hosted git repository.
ahuber pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/isis.git
The following commit(s) were added to refs/heads/master by this push:
new 7b46c54 ISIS-2223: more mitigations: introduces an ImmutableEnumSet
7b46c54 is described below
commit 7b46c54c400319ff80537c056a7daf7e23d29416
Author: Andi Huber <ah...@apache.org>
AuthorDate: Fri Feb 14 16:57:00 2020 +0100
ISIS-2223: more mitigations: introduces an ImmutableEnumSet
---
.../examples/services/wrapper/WrapperFactory.java | 10 ++--
.../isis/applib/util/schema/CommonDtoUtils.java | 2 +-
.../core/commons/collections/ImmutableEnumSet.java | 70 ++++++++++++++++++++++
.../isis/core/commons/internal/debug/_Probe.java | 2 +-
.../environment/IsisSystemEnvironment.java | 3 +-
.../isis/core/metamodel/commons/ClassUtil.java | 2 +-
.../apache/isis/core/metamodel/consent/Allow.java | 2 +-
.../apache/isis/core/metamodel/consent/Veto.java | 2 +-
.../isis/core/metamodel/facetapi/FeatureType.java | 39 ++++++------
.../isis/core/metamodel/facets/FacetFactory.java | 4 +-
.../metamodel/facets/FacetFactoryAbstract.java | 7 +--
.../MethodPrefixBasedFacetFactoryAbstract.java | 5 +-
.../facets/OrphanedSupportingMethodValidator.java | 4 +-
...rCollectionIdentifyingFacetFactoryAbstract.java | 5 +-
.../facets/AbstractFacetFactoryJUnit4TestCase.java | 8 +--
.../metamodel/facets/AbstractFacetFactoryTest.java | 6 +-
.../apache/isis/core/metamodel/facets/Utils.java | 4 +-
.../facets/FacetsFacetAnnotationFactoryTest.java | 11 ++--
.../SupportingMethodValidatorRefinerFactory.java | 4 +-
19 files changed, 127 insertions(+), 63 deletions(-)
diff --git a/api/applib/src/main/adoc/modules/applib-svc/examples/services/wrapper/WrapperFactory.java b/api/applib/src/main/adoc/modules/applib-svc/examples/services/wrapper/WrapperFactory.java
index d30f340..687bb46 100644
--- a/api/applib/src/main/adoc/modules/applib-svc/examples/services/wrapper/WrapperFactory.java
+++ b/api/applib/src/main/adoc/modules/applib-svc/examples/services/wrapper/WrapperFactory.java
@@ -100,30 +100,30 @@ public interface WrapperFactory {
/**
* Validate all business rules and then execute. May throw exceptions in order to fail fast.
*/
- public static EnumSet<ExecutionMode> EXECUTE = EnumSet.noneOf(ExecutionMode.class);
+ public static final EnumSet<ExecutionMode> EXECUTE = EnumSet.noneOf(ExecutionMode.class);
/**
* Skip all business rules and then execute, does throw an exception if execution fails.
*/
- public static EnumSet<ExecutionMode> SKIP_RULES = EnumSet.of(SKIP_RULE_VALIDATION);
+ public static final EnumSet<ExecutionMode> SKIP_RULES = EnumSet.of(SKIP_RULE_VALIDATION);
/**
* Validate all business rules but do not execute, throw an exception if validation
* fails.
*/
- public static EnumSet<ExecutionMode> NO_EXECUTE = EnumSet.of(SKIP_EXECUTION);
+ public static final EnumSet<ExecutionMode> NO_EXECUTE = EnumSet.of(SKIP_EXECUTION);
/**
* Validate all business rules and then execute, but don't throw an exception if validation
* or execution fails.
*/
- public static EnumSet<ExecutionMode> TRY = EnumSet.of(SWALLOW_EXCEPTIONS);
+ public static final EnumSet<ExecutionMode> TRY = EnumSet.of(SWALLOW_EXCEPTIONS);
/**
* Skips all steps.
* @since 2.0
*/
- public static EnumSet<ExecutionMode> NOOP = EnumSet.of(SKIP_RULE_VALIDATION, SKIP_EXECUTION);
+ public static final EnumSet<ExecutionMode> NOOP = EnumSet.of(SKIP_RULE_VALIDATION, SKIP_EXECUTION);
}
diff --git a/api/applib/src/main/java/org/apache/isis/applib/util/schema/CommonDtoUtils.java b/api/applib/src/main/java/org/apache/isis/applib/util/schema/CommonDtoUtils.java
index 76f0189..a8deee6 100644
--- a/api/applib/src/main/java/org/apache/isis/applib/util/schema/CommonDtoUtils.java
+++ b/api/applib/src/main/java/org/apache/isis/applib/util/schema/CommonDtoUtils.java
@@ -110,7 +110,7 @@ public final class CommonDtoUtils {
entry(Clob.class, ValueType.CLOB)
);
- public static Set<Class<?>> VALUE_TYPES = valueTypeByClass.keySet();
+ public final static Set<Class<?>> VALUE_TYPES = valueTypeByClass.keySet();
public static ValueType asValueType(final Class<?> type) {
final ValueType valueType = valueTypeByClass.get(type);
diff --git a/core/commons/src/main/java/org/apache/isis/core/commons/collections/ImmutableEnumSet.java b/core/commons/src/main/java/org/apache/isis/core/commons/collections/ImmutableEnumSet.java
new file mode 100644
index 0000000..d595ee6
--- /dev/null
+++ b/core/commons/src/main/java/org/apache/isis/core/commons/collections/ImmutableEnumSet.java
@@ -0,0 +1,70 @@
+package org.apache.isis.core.commons.collections;
+
+import java.util.EnumSet;
+import java.util.Iterator;
+
+/**
+ * Immutable variant of {@link EnumSet}
+ *
+ * @since 2.0
+ */
+public final class ImmutableEnumSet<E extends Enum<E>>
+implements Iterable<E>, java.io.Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ private final EnumSet<E> delegate;
+
+ private ImmutableEnumSet(EnumSet<E> delegate) {
+ this.delegate = delegate;
+ }
+
+ public static <E extends Enum<E>> ImmutableEnumSet<E> from(EnumSet<E> delegate) {
+ return new ImmutableEnumSet<>(delegate);
+ }
+
+ public static <E extends Enum<E>> ImmutableEnumSet<E> noneOf(Class<E> enumType) {
+ return from(EnumSet.noneOf(enumType));
+ }
+
+ public static <E extends Enum<E>> ImmutableEnumSet<E> of(E e1) {
+ return from(EnumSet.of(e1));
+ }
+
+ public static <E extends Enum<E>> ImmutableEnumSet<E> of(E e1, E e2) {
+ return from(EnumSet.of(e1, e2));
+ }
+
+ public static <E extends Enum<E>> ImmutableEnumSet<E> of(E e1, E e2, E e3) {
+ return from(EnumSet.of(e1, e2, e3));
+ }
+
+ public static <E extends Enum<E>> ImmutableEnumSet<E> of(E e1, E e2, E e3, E e4) {
+ return from(EnumSet.of(e1, e2, e3, e4));
+ }
+
+ public static <E extends Enum<E>> ImmutableEnumSet<E> complementOf(ImmutableEnumSet<E> other) {
+ return from(EnumSet.complementOf(other.delegate));
+ }
+
+ public static <E extends Enum<E>> ImmutableEnumSet<E> allOf(Class<E> enumType) {
+ return from(EnumSet.allOf(enumType));
+ }
+
+ public boolean contains(E element) {
+ return delegate.contains(element);
+ }
+
+ public EnumSet<E> toEnumSet() {
+ return delegate.clone();
+ }
+
+ @Override
+ public Iterator<E> iterator() {
+ return delegate.iterator();
+ }
+
+
+
+
+}
diff --git a/core/commons/src/main/java/org/apache/isis/core/commons/internal/debug/_Probe.java b/core/commons/src/main/java/org/apache/isis/core/commons/internal/debug/_Probe.java
index df0eb69..4f8844c 100644
--- a/core/commons/src/main/java/org/apache/isis/core/commons/internal/debug/_Probe.java
+++ b/core/commons/src/main/java/org/apache/isis/core/commons/internal/debug/_Probe.java
@@ -124,7 +124,7 @@ public class _Probe {
// -- INDENTING
- public int currentIndent = 0;
+ private int currentIndent = 0;
// -- PRINTING
diff --git a/core/commons/src/main/java/org/apache/isis/core/commons/internal/environment/IsisSystemEnvironment.java b/core/commons/src/main/java/org/apache/isis/core/commons/internal/environment/IsisSystemEnvironment.java
index 001b18e..57cd6cb 100644
--- a/core/commons/src/main/java/org/apache/isis/core/commons/internal/environment/IsisSystemEnvironment.java
+++ b/core/commons/src/main/java/org/apache/isis/core/commons/internal/environment/IsisSystemEnvironment.java
@@ -112,8 +112,7 @@ public class IsisSystemEnvironment {
@EventListener(ApplicationFailedEvent.class)
public void onContextRefreshed(ApplicationFailedEvent event) {
// happens eg. when DN finds non enhanced entity classes
- log.error("Application failed to start");
- event.getException().printStackTrace();
+ log.error("Application failed to start", event.getException());
}
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/commons/ClassUtil.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/commons/ClassUtil.java
index a6a7183..a5b89d2 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/commons/ClassUtil.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/commons/ClassUtil.java
@@ -38,7 +38,7 @@ public final class ClassUtil {
static final String JAVA_CLASS_PREFIX = "java.";
- private static Map<String, Class<?>> builtInClasses = new HashMap<String, Class<?>>();
+ private final static Map<String, Class<?>> builtInClasses = new HashMap<String, Class<?>>();
static {
put(void.class);
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/consent/Allow.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/consent/Allow.java
index e48ffb0..5dfc204 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/consent/Allow.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/consent/Allow.java
@@ -28,7 +28,7 @@ public class Allow extends ConsentAbstract {
private static final long serialVersionUID = 1L;
- public static Allow DEFAULT = new Allow();
+ public static final Allow DEFAULT = new Allow();
private Allow() {
this((String) null);
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/consent/Veto.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/consent/Veto.java
index f6272c6..6f182a8 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/consent/Veto.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/consent/Veto.java
@@ -27,7 +27,7 @@ public class Veto extends ConsentAbstract {
private static final long serialVersionUID = 1L;
- public static Veto DEFAULT = new Veto("Vetoed by default");
+ public static final Veto DEFAULT = new Veto("Vetoed by default");
/**
* Called by DnD viewer; we should instead find a way to put the calling
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facetapi/FeatureType.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facetapi/FeatureType.java
index 9831836..8dbfaa2 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facetapi/FeatureType.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facetapi/FeatureType.java
@@ -21,9 +21,9 @@ package org.apache.isis.core.metamodel.facetapi;
import java.beans.Introspector;
import java.lang.reflect.Method;
-import java.util.EnumSet;
import org.apache.isis.applib.Identifier;
+import org.apache.isis.core.commons.collections.ImmutableEnumSet;
import org.apache.isis.core.metamodel.commons.StringExtensions;
import org.apache.isis.core.metamodel.facets.FacetFactory;
@@ -85,34 +85,33 @@ public enum FeatureType {
}
};
- public final static EnumSet<FeatureType> COLLECTIONS_ONLY = EnumSet.of(COLLECTION);
- public final static EnumSet<FeatureType> COLLECTIONS_AND_ACTIONS = EnumSet.of(COLLECTION, ACTION);
- public final static EnumSet<FeatureType> ACTIONS_ONLY = EnumSet.of(ACTION);
- public final static EnumSet<FeatureType> PARAMETERS_ONLY = EnumSet.of(ACTION_PARAMETER_SCALAR, ACTION_PARAMETER_COLLECTION);
- public final static EnumSet<FeatureType> PROPERTIES_ONLY = EnumSet.of(PROPERTY);
- public final static EnumSet<FeatureType> PROPERTIES_AND_ACTIONS = EnumSet.of(PROPERTY, ACTION);
- public final static EnumSet<FeatureType> OBJECTS_ONLY = EnumSet.of(OBJECT);
- public final static EnumSet<FeatureType> MEMBERS = EnumSet.of(PROPERTY, COLLECTION, ACTION);
- public final static EnumSet<FeatureType> OBJECTS_AND_PROPERTIES = EnumSet.of(OBJECT, PROPERTY);
- public final static EnumSet<FeatureType> PROPERTIES_AND_COLLECTIONS = EnumSet.of(PROPERTY, COLLECTION);
- public final static EnumSet<FeatureType> OBJECTS_AND_COLLECTIONS = EnumSet.of(OBJECT, COLLECTION);
- public final static EnumSet<FeatureType> OBJECTS_AND_ACTIONS = EnumSet.of(OBJECT, ACTION);
- public final static EnumSet<FeatureType> OBJECTS_PROPERTIES_AND_COLLECTIONS = EnumSet.of(OBJECT, PROPERTY, COLLECTION);
- public static final EnumSet<FeatureType> ACTIONS_AND_PARAMETERS =
- EnumSet.of(ACTION, ACTION_PARAMETER_SCALAR, ACTION_PARAMETER_COLLECTION);
+ public final static ImmutableEnumSet<FeatureType> COLLECTIONS_ONLY = ImmutableEnumSet.of(COLLECTION);
+ public final static ImmutableEnumSet<FeatureType> COLLECTIONS_AND_ACTIONS = ImmutableEnumSet.of(COLLECTION, ACTION);
+ public final static ImmutableEnumSet<FeatureType> ACTIONS_ONLY = ImmutableEnumSet.of(ACTION);
+ public final static ImmutableEnumSet<FeatureType> PARAMETERS_ONLY = ImmutableEnumSet.of(ACTION_PARAMETER_SCALAR, ACTION_PARAMETER_COLLECTION);
+ public final static ImmutableEnumSet<FeatureType> PROPERTIES_ONLY = ImmutableEnumSet.of(PROPERTY);
+ public final static ImmutableEnumSet<FeatureType> PROPERTIES_AND_ACTIONS = ImmutableEnumSet.of(PROPERTY, ACTION);
+ public final static ImmutableEnumSet<FeatureType> OBJECTS_ONLY = ImmutableEnumSet.of(OBJECT);
+ public final static ImmutableEnumSet<FeatureType> MEMBERS = ImmutableEnumSet.of(PROPERTY, COLLECTION, ACTION);
+ public final static ImmutableEnumSet<FeatureType> OBJECTS_AND_PROPERTIES = ImmutableEnumSet.of(OBJECT, PROPERTY);
+ public final static ImmutableEnumSet<FeatureType> PROPERTIES_AND_COLLECTIONS = ImmutableEnumSet.of(PROPERTY, COLLECTION);
+ public final static ImmutableEnumSet<FeatureType> OBJECTS_AND_COLLECTIONS = ImmutableEnumSet.of(OBJECT, COLLECTION);
+ public final static ImmutableEnumSet<FeatureType> OBJECTS_AND_ACTIONS = ImmutableEnumSet.of(OBJECT, ACTION);
+ public final static ImmutableEnumSet<FeatureType> OBJECTS_PROPERTIES_AND_COLLECTIONS = ImmutableEnumSet.of(OBJECT, PROPERTY, COLLECTION);
+ public final static ImmutableEnumSet<FeatureType> ACTIONS_AND_PARAMETERS = ImmutableEnumSet.of(ACTION, ACTION_PARAMETER_SCALAR, ACTION_PARAMETER_COLLECTION);
/**
* Use of this is discouraged; instead use multiple {@link FacetFactory}s
* for different features.
*/
- public final static EnumSet<FeatureType> EVERYTHING_BUT_PARAMETERS =
- EnumSet.complementOf(
- EnumSet.of(ACTION_PARAMETER_SCALAR, ACTION_PARAMETER_COLLECTION));
+ public final static ImmutableEnumSet<FeatureType> EVERYTHING_BUT_PARAMETERS =
+ ImmutableEnumSet.complementOf(
+ ImmutableEnumSet.of(ACTION_PARAMETER_SCALAR, ACTION_PARAMETER_COLLECTION));
/**
* Use of this is discouraged; instead use multiple {@link FacetFactory}s
* for different features.
*/
- public final static EnumSet<FeatureType> EVERYTHING = EnumSet.allOf(FeatureType.class);
+ public final static ImmutableEnumSet<FeatureType> EVERYTHING = ImmutableEnumSet.allOf(FeatureType.class);
private final String name;
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/FacetFactory.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/FacetFactory.java
index 48aafac..22acf30 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/FacetFactory.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/FacetFactory.java
@@ -22,12 +22,12 @@ package org.apache.isis.core.metamodel.facets;
import java.lang.annotation.Annotation;
import java.lang.reflect.Method;
import java.lang.reflect.Parameter;
-import java.util.EnumSet;
import java.util.Optional;
import java.util.function.Consumer;
import java.util.function.Predicate;
import java.util.function.Supplier;
+import org.apache.isis.core.commons.collections.ImmutableEnumSet;
import org.apache.isis.core.commons.internal.exceptions._Exceptions;
import org.apache.isis.core.commons.internal.reflection._Annotations;
import org.apache.isis.core.metamodel.facetapi.Facet;
@@ -137,7 +137,7 @@ public interface FacetFactory {
* the meta-model.
*
*/
- EnumSet<FeatureType> getFeatureTypes();
+ ImmutableEnumSet<FeatureType> getFeatureTypes();
// //////////////////////////////////////
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/FacetFactoryAbstract.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/FacetFactoryAbstract.java
index 0d770c7..876d64b 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/FacetFactoryAbstract.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/FacetFactoryAbstract.java
@@ -19,8 +19,7 @@
package org.apache.isis.core.metamodel.facets;
-import java.util.EnumSet;
-
+import org.apache.isis.core.commons.collections.ImmutableEnumSet;
import org.apache.isis.core.metamodel.context.MetaModelContext;
import org.apache.isis.core.metamodel.context.MetaModelContextAware;
import org.apache.isis.core.metamodel.facetapi.Facet;
@@ -37,9 +36,9 @@ implements FacetFactory, MetaModelContextAware, MetaModelContext.Delegating {
private MetaModelContext metaModelContext;
@Getter(onMethod = @__({@Override}))
- private final EnumSet<FeatureType> featureTypes;
+ private final ImmutableEnumSet<FeatureType> featureTypes;
- public FacetFactoryAbstract(EnumSet<FeatureType> featureTypes) {
+ public FacetFactoryAbstract(ImmutableEnumSet<FeatureType> featureTypes) {
this.featureTypes = featureTypes;
}
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/MethodPrefixBasedFacetFactoryAbstract.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/MethodPrefixBasedFacetFactoryAbstract.java
index 8fab89e..cd6cd0e 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/MethodPrefixBasedFacetFactoryAbstract.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/MethodPrefixBasedFacetFactoryAbstract.java
@@ -18,9 +18,8 @@
*/
package org.apache.isis.core.metamodel.facets;
-import java.util.EnumSet;
-
import org.apache.isis.core.commons.collections.Can;
+import org.apache.isis.core.commons.collections.ImmutableEnumSet;
import org.apache.isis.core.metamodel.facetapi.FeatureType;
import org.apache.isis.core.metamodel.progmodel.ProgrammingModel;
import org.apache.isis.core.metamodel.spec.ObjectSpecification;
@@ -47,7 +46,7 @@ implements MethodPrefixBasedFacetFactory {
}
public MethodPrefixBasedFacetFactoryAbstract(
- @NonNull final EnumSet<FeatureType> featureTypes,
+ @NonNull final ImmutableEnumSet<FeatureType> featureTypes,
@NonNull final OrphanValidation orphanValidation,
@NonNull final Can<String> prefixes) {
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/OrphanedSupportingMethodValidator.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/OrphanedSupportingMethodValidator.java
index a6fde45..4e301e3 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/OrphanedSupportingMethodValidator.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/OrphanedSupportingMethodValidator.java
@@ -19,11 +19,11 @@
package org.apache.isis.core.metamodel.facets;
import java.lang.reflect.Method;
-import java.util.EnumSet;
import java.util.HashSet;
import java.util.List;
import java.util.stream.Collectors;
+import org.apache.isis.core.commons.collections.ImmutableEnumSet;
import org.apache.isis.core.commons.internal.collections._Lists;
import org.apache.isis.core.commons.internal.collections._Sets;
import org.apache.isis.core.metamodel.facetapi.FacetHolder;
@@ -45,7 +45,7 @@ extends FacetFactoryAbstract
implements MetaModelRefiner {
public OrphanedSupportingMethodValidator() {
- super(EnumSet.noneOf(FeatureType.class)); // does not contribute any facets
+ super(ImmutableEnumSet.noneOf(FeatureType.class)); // does not contribute any facets
}
@Override
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/PropertyOrCollectionIdentifyingFacetFactoryAbstract.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/PropertyOrCollectionIdentifyingFacetFactoryAbstract.java
index 8b80a27..e59da48 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/PropertyOrCollectionIdentifyingFacetFactoryAbstract.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/PropertyOrCollectionIdentifyingFacetFactoryAbstract.java
@@ -19,9 +19,8 @@
package org.apache.isis.core.metamodel.facets;
-import java.util.EnumSet;
-
import org.apache.isis.core.commons.collections.Can;
+import org.apache.isis.core.commons.collections.ImmutableEnumSet;
import org.apache.isis.core.commons.internal.collections._Collections;
import org.apache.isis.core.metamodel.facetapi.FeatureType;
@@ -30,7 +29,7 @@ extends MethodPrefixBasedFacetFactoryAbstract
implements PropertyOrCollectionIdentifyingFacetFactory {
public PropertyOrCollectionIdentifyingFacetFactoryAbstract(
- final EnumSet<FeatureType> featureTypes,
+ final ImmutableEnumSet<FeatureType> featureTypes,
final Can<String> prefixes) {
super(featureTypes, OrphanValidation.DONT_VALIDATE, prefixes);
diff --git a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/AbstractFacetFactoryJUnit4TestCase.java b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/AbstractFacetFactoryJUnit4TestCase.java
index e284c7f..553334c 100644
--- a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/AbstractFacetFactoryJUnit4TestCase.java
+++ b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/AbstractFacetFactoryJUnit4TestCase.java
@@ -20,7 +20,6 @@
package org.apache.isis.core.metamodel.facets;
import java.lang.reflect.Method;
-import java.util.EnumSet;
import java.util.Optional;
import org.jmock.Expectations;
@@ -33,6 +32,9 @@ import org.apache.isis.applib.Identifier;
import org.apache.isis.applib.services.i18n.TranslationService;
import org.apache.isis.applib.services.inject.ServiceInjector;
import org.apache.isis.applib.services.registry.ServiceRegistry;
+import org.apache.isis.core.commons.collections.ImmutableEnumSet;
+import org.apache.isis.core.internaltestsupport.jmocking.JUnitRuleMockery2;
+import org.apache.isis.core.internaltestsupport.jmocking.JUnitRuleMockery2.Mode;
import org.apache.isis.core.metamodel.MetaModelContext_forTesting;
import org.apache.isis.core.metamodel.adapter.ObjectAdapterProvider;
import org.apache.isis.core.metamodel.context.MetaModelContext;
@@ -49,8 +51,6 @@ import org.apache.isis.core.metamodel.spec.feature.OneToOneActionParameter;
import org.apache.isis.core.metamodel.spec.feature.OneToOneAssociation;
import org.apache.isis.core.metamodel.specloader.SpecificationLoader;
import org.apache.isis.core.security.authentication.AuthenticationSessionProvider;
-import org.apache.isis.core.internaltestsupport.jmocking.JUnitRuleMockery2;
-import org.apache.isis.core.internaltestsupport.jmocking.JUnitRuleMockery2.Mode;
public abstract class AbstractFacetFactoryJUnit4TestCase {
@@ -139,7 +139,7 @@ public abstract class AbstractFacetFactoryJUnit4TestCase {
return Utils.contains(types, type);
}
- protected static boolean contains(final EnumSet<FeatureType> featureTypes, final FeatureType featureType) {
+ protected static boolean contains(final ImmutableEnumSet<FeatureType> featureTypes, final FeatureType featureType) {
return Utils.contains(featureTypes, featureType);
}
diff --git a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/AbstractFacetFactoryTest.java b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/AbstractFacetFactoryTest.java
index 8a47449..17049bf 100644
--- a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/AbstractFacetFactoryTest.java
+++ b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/AbstractFacetFactoryTest.java
@@ -20,13 +20,14 @@
package org.apache.isis.core.metamodel.facets;
import java.lang.reflect.Method;
-import java.util.EnumSet;
import org.jmock.Expectations;
import org.junit.Rule;
import org.apache.isis.applib.Identifier;
import org.apache.isis.applib.services.i18n.TranslationService;
+import org.apache.isis.core.commons.collections.ImmutableEnumSet;
+import org.apache.isis.core.internaltestsupport.jmocking.JUnitRuleMockery2;
import org.apache.isis.core.metamodel.MetaModelContext_forTesting;
import org.apache.isis.core.metamodel.adapter.ObjectAdapterProvider;
import org.apache.isis.core.metamodel.context.MetaModelContextAware;
@@ -38,7 +39,6 @@ import org.apache.isis.core.metamodel.spec.ObjectSpecification;
import org.apache.isis.core.metamodel.specloader.SpecificationLoader;
import org.apache.isis.core.security.authentication.AuthenticationSession;
import org.apache.isis.core.security.authentication.AuthenticationSessionProvider;
-import org.apache.isis.core.internaltestsupport.jmocking.JUnitRuleMockery2;
import junit.framework.TestCase;
@@ -149,7 +149,7 @@ public abstract class AbstractFacetFactoryTest extends TestCase {
return Utils.contains(types, type);
}
- protected static boolean contains(final EnumSet<FeatureType> featureTypes, final FeatureType featureType) {
+ protected static boolean contains(final ImmutableEnumSet<FeatureType> featureTypes, final FeatureType featureType) {
return Utils.contains(featureTypes, featureType);
}
diff --git a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/Utils.java b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/Utils.java
index 42c1a64..870b4da 100644
--- a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/Utils.java
+++ b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/Utils.java
@@ -20,8 +20,8 @@
package org.apache.isis.core.metamodel.facets;
import java.lang.reflect.Method;
-import java.util.EnumSet;
+import org.apache.isis.core.commons.collections.ImmutableEnumSet;
import org.apache.isis.core.commons.internal._Constants;
import org.apache.isis.core.metamodel.facetapi.FeatureType;
@@ -40,7 +40,7 @@ class Utils {
return false;
}
- protected static boolean contains(EnumSet<FeatureType> featureTypes, final FeatureType featureType) {
+ protected static boolean contains(ImmutableEnumSet<FeatureType> featureTypes, final FeatureType featureType) {
if(featureTypes==null || featureType==null) {
return false;
}
diff --git a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/object/facets/FacetsFacetAnnotationFactoryTest.java b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/object/facets/FacetsFacetAnnotationFactoryTest.java
index d6e9f00..07a2cf1 100644
--- a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/object/facets/FacetsFacetAnnotationFactoryTest.java
+++ b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/object/facets/FacetsFacetAnnotationFactoryTest.java
@@ -19,9 +19,8 @@
package org.apache.isis.core.metamodel.facets.object.facets;
-import java.util.EnumSet;
-
import org.apache.isis.applib.annotation.Facets;
+import org.apache.isis.core.commons.collections.ImmutableEnumSet;
import org.apache.isis.core.metamodel.facetapi.Facet;
import org.apache.isis.core.metamodel.facetapi.FeatureType;
import org.apache.isis.core.metamodel.facets.AbstractFacetFactoryTest;
@@ -49,8 +48,8 @@ public class FacetsFacetAnnotationFactoryTest extends AbstractFacetFactoryTest {
public static class CustomerFacetFactory implements FacetFactory {
@Override
- public EnumSet<FeatureType> getFeatureTypes() {
- return null;
+ public ImmutableEnumSet<FeatureType> getFeatureTypes() {
+ return ImmutableEnumSet.noneOf(FeatureType.class);
}
@Override
@@ -68,8 +67,8 @@ public class FacetsFacetAnnotationFactoryTest extends AbstractFacetFactoryTest {
public static class CustomerFacetFactory2 implements FacetFactory {
@Override
- public EnumSet<FeatureType> getFeatureTypes() {
- return null;
+ public ImmutableEnumSet<FeatureType> getFeatureTypes() {
+ return ImmutableEnumSet.noneOf(FeatureType.class);
}
@Override
diff --git a/incubator/core/model/src/main/java/org/apache/isis/incubator/model/metamodel/facets/SupportingMethodValidatorRefinerFactory.java b/incubator/core/model/src/main/java/org/apache/isis/incubator/model/metamodel/facets/SupportingMethodValidatorRefinerFactory.java
index 44bd7cd..a7d6056 100644
--- a/incubator/core/model/src/main/java/org/apache/isis/incubator/model/metamodel/facets/SupportingMethodValidatorRefinerFactory.java
+++ b/incubator/core/model/src/main/java/org/apache/isis/incubator/model/metamodel/facets/SupportingMethodValidatorRefinerFactory.java
@@ -19,12 +19,12 @@
package org.apache.isis.incubator.model.metamodel.facets;
import java.lang.reflect.Method;
-import java.util.EnumSet;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
import java.util.stream.Collectors;
+import org.apache.isis.core.commons.collections.ImmutableEnumSet;
import org.apache.isis.core.commons.internal.collections._Lists;
import org.apache.isis.core.commons.internal.collections._Sets;
import org.apache.isis.core.metamodel.commons.MethodUtil;
@@ -47,7 +47,7 @@ extends FacetFactoryAbstract
implements MetaModelRefiner {
public SupportingMethodValidatorRefinerFactory() {
- super(EnumSet.noneOf(FeatureType.class)); // does not contribute any facets
+ super(ImmutableEnumSet.noneOf(FeatureType.class)); // does not contribute any facets
}
@Override