You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@isis.apache.org by da...@apache.org on 2016/05/24 06:58:50 UTC
[2/3] isis git commit: ISIS-1410: instantiate FacetFactory's directly
rather than reflectively; replace 3 RemoveXxx facet factories with just one;
replace/simplify CollectionTypeRegistry (to CollectionUtils);
minor reformattings.
ISIS-1410: instantiate FacetFactory's directly rather than reflectively; replace 3 RemoveXxx facet factories with just one; replace/simplify CollectionTypeRegistry (to CollectionUtils); minor reformattings.
Project: http://git-wip-us.apache.org/repos/asf/isis/repo
Commit: http://git-wip-us.apache.org/repos/asf/isis/commit/ec38b4b0
Tree: http://git-wip-us.apache.org/repos/asf/isis/tree/ec38b4b0
Diff: http://git-wip-us.apache.org/repos/asf/isis/diff/ec38b4b0
Branch: refs/heads/master
Commit: ec38b4b05ee77bbc9db0fa40345c902c54b00fb9
Parents: 54f5f27
Author: Dan Haywood <da...@haywood-associates.co.uk>
Authored: Tue May 24 07:16:30 2016 +0100
Committer: Dan Haywood <da...@haywood-associates.co.uk>
Committed: Tue May 24 07:16:30 2016 +0100
----------------------------------------------------------------------
.../isis/core/commons/lang/MethodUtil.java | 41 +-
.../isis/core/metamodel/facets/Annotations.java | 12 +-
...llectionIdentifyingFacetFactoryAbstract.java | 9 +-
.../action/ActionAnnotationFacetFactory.java | 6 +-
...llectionAccessorFacetViaAccessorFactory.java | 15 +-
.../CollectionAnnotationFacetFactory.java | 6 +-
.../CollectionFacetFactory.java | 8 +-
.../ParentedFacetSinceCollectionFactory.java | 4 +-
.../callbacks/RemoveCallbackFacetFactory.java | 5 +-
.../RemoveAnnotatedMethodsFacetFactory.java | 88 ++++
...PreDestroyAnnotationMethodsFacetFactory.java | 64 ---
...icOrIgnoreAnnotationMethodsFacetFactory.java | 63 ---
.../RemoveSubscriberMethodsFacetFactory.java | 70 ---
.../core/metamodel/services/ServiceUtil.java | 12 +-
.../metamodel/specloader/CollectionUtils.java | 45 ++
.../CollectionTypeRegistry.java | 85 ----
.../specimpl/FacetedMethodsBuilder.java | 13 +-
.../specimpl/ObjectMemberAbstract.java | 11 +-
.../specimpl/OneToManyAssociationDefault.java | 19 +-
.../dflt/ProgrammingModelFacetsJava5.java | 471 ++++++++++---------
.../testspec/ObjectSpecificationStub.java | 3 +-
...rsistenceSessionFactoryMetamodelRefiner.java | 24 +-
.../system/ObjectMemberAbstractTest.java | 3 +-
.../system/OneToManyAssociationDefaultTest.java | 3 +-
24 files changed, 474 insertions(+), 606 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/isis/blob/ec38b4b0/core/metamodel/src/main/java/org/apache/isis/core/commons/lang/MethodUtil.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/commons/lang/MethodUtil.java b/core/metamodel/src/main/java/org/apache/isis/core/commons/lang/MethodUtil.java
index f526c64..539b39a 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/commons/lang/MethodUtil.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/commons/lang/MethodUtil.java
@@ -73,7 +73,7 @@ public class MethodUtil {
* </ul>
* If the returnType is specified as null then the return type is ignored.
*/
- public static int findMethodIndex(final List<Method> methods, final MethodScope methodScope, final String name, final Class<?> returnType, final Class<?>[] paramTypes) {
+ private static int findMethodIndex(final List<Method> methods, final MethodScope methodScope, final String name, final Class<?> returnType, final Class<?>[] paramTypes) {
int idx = -1;
method: for (int i = 0; i < methods.size(); i++) {
if (methods.get(i) == null) {
@@ -153,17 +153,22 @@ public class MethodUtil {
* ignored
* @return Method
*/
- public static List<Method> removeMethods(final List<Method> methods, final MethodScope forClass, final String prefix, final Class<?> returnType, final boolean canBeVoid, final int paramCount) {
+ public static List<Method> removeMethods(
+ final List<Method> methods,
+ final MethodScope forClass,
+ final String prefix,
+ final Class<?> returnType,
+ final boolean canBeVoid,
+ final int paramCount) {
final List<Method> validMethods = new ArrayList<Method>();
for (int i = 0; i < methods.size(); i++) {
- if (methods.get(i) == null) {
+ final Method method = methods.get(i);
+ if (method == null) {
continue;
}
-
- final Method method = methods.get(i);
-
+
if (!inScope(method, forClass)) {
continue;
}
@@ -182,28 +187,6 @@ public class MethodUtil {
return validMethods;
}
- /**
- * From the supplied method array, finds but <i>does not remove</i> methods
- * that have the required prefix, and adds to the supplied candidates
- * vector.
- */
- public static void findPrefixedInstanceMethods(final Method[] methods, final String prefix, final List<Method> candidates) {
- for (final Method method : methods) {
- if (method == null) {
- continue;
- }
-
- if (MethodExtensions.isStatic(method)) {
- continue;
- }
-
- final boolean goodPrefix = method.getName().startsWith(prefix);
- final boolean goodCount = method.getParameterTypes().length == 0;
-
- if (goodPrefix && goodCount) {
- candidates.add(method);
- }
- }
- }
+
}
http://git-wip-us.apache.org/repos/asf/isis/blob/ec38b4b0/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/Annotations.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/Annotations.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/Annotations.java
index 23dac17..aa17a4c 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/Annotations.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/Annotations.java
@@ -348,9 +348,7 @@ public final class Annotations {
try {
final Method ifaceMethod = iface.getMethod(method.getName(), method.getParameterTypes());
return isAnnotationPresent(ifaceMethod, annotationClass);
- } catch (final SecurityException e) {
- // fall through
- } catch (final NoSuchMethodException e) {
+ } catch (final SecurityException | NoSuchMethodException e) {
// fall through
}
}
@@ -389,9 +387,7 @@ public final class Annotations {
try {
final Method parentClassMethod = superclass.getMethod(method.getName(), method.getParameterTypes());
return getParameterAnnotations(parentClassMethod);
- } catch (final SecurityException e) {
- // fall through
- } catch (final NoSuchMethodException e) {
+ } catch (final SecurityException | NoSuchMethodException e) {
// fall through
}
}
@@ -402,9 +398,7 @@ public final class Annotations {
try {
final Method ifaceMethod = iface.getMethod(method.getName(), method.getParameterTypes());
return getParameterAnnotations(ifaceMethod);
- } catch (final SecurityException e) {
- // fall through
- } catch (final NoSuchMethodException e) {
+ } catch (final SecurityException | NoSuchMethodException e) {
// fall through
}
}
http://git-wip-us.apache.org/repos/asf/isis/blob/ec38b4b0/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/PropertyOrCollectionIdentifyingFacetFactoryAbstract.java
----------------------------------------------------------------------
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 089f5dc..ae8b794 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
@@ -24,7 +24,7 @@ import java.util.List;
import org.apache.isis.core.metamodel.facetapi.FeatureType;
import org.apache.isis.core.metamodel.services.ServicesInjector;
import org.apache.isis.core.metamodel.services.persistsession.PersistenceSessionServiceInternal;
-import org.apache.isis.core.metamodel.specloader.collectiontyperegistry.CollectionTypeRegistry;
+import org.apache.isis.core.metamodel.specloader.CollectionUtils;
public abstract class PropertyOrCollectionIdentifyingFacetFactoryAbstract
extends MethodPrefixBasedFacetFactoryAbstract
@@ -38,15 +38,10 @@ public abstract class PropertyOrCollectionIdentifyingFacetFactoryAbstract
// //////////////////////////////////////
- private final CollectionTypeRegistry collectionTypeRegistry = new CollectionTypeRegistry();
-
protected boolean isCollectionOrArray(final Class<?> cls) {
- return getCollectionTypeRepository().isCollectionType(cls) || getCollectionTypeRepository().isArrayType(cls);
+ return CollectionUtils.isCollectionType(cls) || CollectionUtils.isArrayType(cls);
}
- protected CollectionTypeRegistry getCollectionTypeRepository() {
- return collectionTypeRegistry;
- }
// //////////////////////////////////////
http://git-wip-us.apache.org/repos/asf/isis/blob/ec38b4b0/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/action/ActionAnnotationFacetFactory.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/action/ActionAnnotationFacetFactory.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/action/ActionAnnotationFacetFactory.java
index 85f9130..f21de76 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/action/ActionAnnotationFacetFactory.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/action/ActionAnnotationFacetFactory.java
@@ -90,7 +90,7 @@ import org.apache.isis.core.metamodel.services.ServicesInjector;
import org.apache.isis.core.metamodel.services.persistsession.PersistenceSessionServiceInternal;
import org.apache.isis.core.metamodel.services.transtate.TransactionStateProviderInternal;
import org.apache.isis.core.metamodel.spec.ObjectSpecification;
-import org.apache.isis.core.metamodel.specloader.collectiontyperegistry.CollectionTypeRegistry;
+import org.apache.isis.core.metamodel.specloader.CollectionUtils;
import org.apache.isis.core.metamodel.specloader.validator.MetaModelValidatorComposite;
import org.apache.isis.core.metamodel.specloader.validator.MetaModelValidatorForDeprecatedAnnotation;
import org.apache.isis.core.metamodel.util.EventUtil;
@@ -113,8 +113,6 @@ public class ActionAnnotationFacetFactory extends FacetFactoryAbstract
- private final CollectionTypeRegistry collectionTypeRegistry = new CollectionTypeRegistry();
-
public ActionAnnotationFacetFactory() {
super(FeatureType.ACTIONS_ONLY);
}
@@ -428,7 +426,7 @@ public class ActionAnnotationFacetFactory extends FacetFactoryAbstract
final FacetedMethod holder = processMethodContext.getFacetHolder();
final Class<?> methodReturnType = method.getReturnType();
- if (!collectionTypeRegistry.isCollectionType(methodReturnType) && !collectionTypeRegistry.isArrayType(methodReturnType)) {
+ if (!CollectionUtils.isCollectionType(methodReturnType) && !CollectionUtils.isArrayType(methodReturnType)) {
return;
}
http://git-wip-us.apache.org/repos/asf/isis/blob/ec38b4b0/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/collections/accessor/CollectionAccessorFacetViaAccessorFactory.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/collections/accessor/CollectionAccessorFacetViaAccessorFactory.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/collections/accessor/CollectionAccessorFacetViaAccessorFactory.java
index 182045e..2b63b52 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/collections/accessor/CollectionAccessorFacetViaAccessorFactory.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/collections/accessor/CollectionAccessorFacetViaAccessorFactory.java
@@ -20,6 +20,7 @@
package org.apache.isis.core.metamodel.facets.collections.accessor;
import java.lang.reflect.Method;
+import java.util.Collection;
import java.util.List;
import org.apache.isis.core.metamodel.facetapi.FacetHolder;
@@ -88,12 +89,14 @@ public class CollectionAccessorFacetViaAccessorFactory
}
@Override
- public void findAndRemoveCollectionAccessors(final MethodRemover methodRemover, final List<Method> methodListToAppendTo) {
- final Class<?>[] collectionClasses = getCollectionTypeRepository().getCollectionType();
- for (final Class<?> returnType : collectionClasses) {
- final List<Method> list = methodRemover.removeMethods(MethodScope.OBJECT, MethodPrefixConstants.GET_PREFIX, returnType, false, 0);
- methodListToAppendTo.addAll(list);
- }
+ public void findAndRemoveCollectionAccessors(
+ final MethodRemover methodRemover,
+ final List<Method> methodListToAppendTo) {
+
+ final List<Method> list =
+ methodRemover.removeMethods(MethodScope.OBJECT, MethodPrefixConstants.GET_PREFIX,
+ Collection.class, false, 0);
+ methodListToAppendTo.addAll(list);
}
@Override
http://git-wip-us.apache.org/repos/asf/isis/blob/ec38b4b0/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/collections/collection/CollectionAnnotationFacetFactory.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/collections/collection/CollectionAnnotationFacetFactory.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/collections/collection/CollectionAnnotationFacetFactory.java
index da91149..55e1fc1 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/collections/collection/CollectionAnnotationFacetFactory.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/collections/collection/CollectionAnnotationFacetFactory.java
@@ -73,7 +73,7 @@ import org.apache.isis.core.metamodel.facets.members.disabled.DisabledFacet;
import org.apache.isis.core.metamodel.facets.propcoll.accessor.PropertyOrCollectionAccessorFacet;
import org.apache.isis.core.metamodel.facets.propcoll.notpersisted.NotPersistedFacet;
import org.apache.isis.core.metamodel.services.ServicesInjector;
-import org.apache.isis.core.metamodel.specloader.collectiontyperegistry.CollectionTypeRegistry;
+import org.apache.isis.core.metamodel.specloader.CollectionUtils;
import org.apache.isis.core.metamodel.specloader.validator.MetaModelValidatorComposite;
import org.apache.isis.core.metamodel.specloader.validator.MetaModelValidatorForDeprecatedAnnotation;
import org.apache.isis.core.metamodel.util.EventUtil;
@@ -88,8 +88,6 @@ public class CollectionAnnotationFacetFactory extends FacetFactoryAbstract imple
private final MetaModelValidatorForDeprecatedAnnotation notPersistedValidator = new MetaModelValidatorForDeprecatedAnnotation(NotPersisted.class);
private final MetaModelValidatorForDeprecatedAnnotation typeOfValidator = new MetaModelValidatorForDeprecatedAnnotation(TypeOf.class);
- private final CollectionTypeRegistry collectionTypeRegistry = new CollectionTypeRegistry();
-
public CollectionAnnotationFacetFactory() {
super(FeatureType.COLLECTIONS_AND_ACTIONS);
@@ -299,7 +297,7 @@ public class CollectionAnnotationFacetFactory extends FacetFactoryAbstract imple
final Method method = processMethodContext.getMethod();
final Class<?> methodReturnType = method.getReturnType();
- if (!collectionTypeRegistry.isCollectionType(methodReturnType) && !collectionTypeRegistry.isArrayType(methodReturnType)) {
+ if (!CollectionUtils.isCollectionType(methodReturnType) && !CollectionUtils.isArrayType(methodReturnType)) {
return;
}
http://git-wip-us.apache.org/repos/asf/isis/blob/ec38b4b0/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/collections/javautilcollection/CollectionFacetFactory.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/collections/javautilcollection/CollectionFacetFactory.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/collections/javautilcollection/CollectionFacetFactory.java
index d3b073a..39e7619 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/collections/javautilcollection/CollectionFacetFactory.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/collections/javautilcollection/CollectionFacetFactory.java
@@ -29,12 +29,10 @@ import org.apache.isis.core.metamodel.facets.actcoll.typeof.TypeOfFacetInferredF
import org.apache.isis.core.metamodel.facets.collections.modify.CollectionFacet;
import org.apache.isis.core.metamodel.services.ServicesInjector;
import org.apache.isis.core.metamodel.services.persistsession.PersistenceSessionServiceInternal;
-import org.apache.isis.core.metamodel.specloader.collectiontyperegistry.CollectionTypeRegistry;
+import org.apache.isis.core.metamodel.specloader.CollectionUtils;
public class CollectionFacetFactory extends FacetFactoryAbstract {
- private final CollectionTypeRegistry collectionTypeRegistry = new CollectionTypeRegistry();
-
public CollectionFacetFactory() {
super(FeatureType.OBJECTS_ONLY);
}
@@ -42,9 +40,9 @@ public class CollectionFacetFactory extends FacetFactoryAbstract {
@Override
public void process(final ProcessClassContext processClassContaxt) {
- if (collectionTypeRegistry.isCollectionType(processClassContaxt.getCls())) {
+ if (CollectionUtils.isCollectionType(processClassContaxt.getCls())) {
processCollectionType(processClassContaxt);
- } else if (collectionTypeRegistry.isArrayType(processClassContaxt.getCls())) {
+ } else if (CollectionUtils.isArrayType(processClassContaxt.getCls())) {
processAsArrayType(processClassContaxt);
}
http://git-wip-us.apache.org/repos/asf/isis/blob/ec38b4b0/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/collections/parented/ParentedFacetSinceCollectionFactory.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/collections/parented/ParentedFacetSinceCollectionFactory.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/collections/parented/ParentedFacetSinceCollectionFactory.java
index 8ff1aa9..9c7c22a 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/collections/parented/ParentedFacetSinceCollectionFactory.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/collections/parented/ParentedFacetSinceCollectionFactory.java
@@ -25,11 +25,11 @@ import org.apache.isis.core.metamodel.facets.FacetFactoryAbstract;
import org.apache.isis.core.metamodel.facets.collections.modify.CollectionFacet;
import org.apache.isis.core.metamodel.facets.object.parented.ParentedCollectionFacet;
import org.apache.isis.core.metamodel.progmodel.ProgrammingModel;
-import org.apache.isis.core.metamodel.specloader.collectiontyperegistry.CollectionTypeRegistry;
+import org.apache.isis.core.metamodel.specloader.CollectionUtils;
import org.apache.isis.core.metamodel.facets.collections.javautilcollection.CollectionFacetFactory;
/**
- * All {@link CollectionTypeRegistry collection types} are intrinsically
+ * All {@link CollectionUtils collection types} are intrinsically
* {@link ParentedCollectionFacet parented}.
*
* <p>
http://git-wip-us.apache.org/repos/asf/isis/blob/ec38b4b0/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/callbacks/RemoveCallbackFacetFactory.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/callbacks/RemoveCallbackFacetFactory.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/callbacks/RemoveCallbackFacetFactory.java
index f084f90..3b5d72e 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/callbacks/RemoveCallbackFacetFactory.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/callbacks/RemoveCallbackFacetFactory.java
@@ -48,8 +48,9 @@ public class RemoveCallbackFacetFactory extends MethodPrefixBasedFacetFactoryAbs
final List<Facet> facets = new ArrayList<Facet>();
final List<Method> methods = new ArrayList<Method>();
- Method method = null;
- method = MethodFinderUtils.findMethod(cls, MethodScope.OBJECT, MethodPrefixConstants.REMOVING_PREFIX, void.class, NO_PARAMETERS_TYPES);
+ Method method = MethodFinderUtils
+ .findMethod(cls, MethodScope.OBJECT, MethodPrefixConstants.REMOVING_PREFIX, void.class,
+ NO_PARAMETERS_TYPES);
if (method != null) {
methods.add(method);
final RemovingCallbackFacet facet = facetHolder.getFacet(RemovingCallbackFacet.class);
http://git-wip-us.apache.org/repos/asf/isis/blob/ec38b4b0/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/ignore/annotation/RemoveAnnotatedMethodsFacetFactory.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/ignore/annotation/RemoveAnnotatedMethodsFacetFactory.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/ignore/annotation/RemoveAnnotatedMethodsFacetFactory.java
new file mode 100644
index 0000000..209a55c
--- /dev/null
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/ignore/annotation/RemoveAnnotatedMethodsFacetFactory.java
@@ -0,0 +1,88 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package org.apache.isis.core.metamodel.facets.object.ignore.annotation;
+
+import java.lang.annotation.Annotation;
+import java.lang.reflect.Method;
+
+import javax.annotation.PostConstruct;
+import javax.annotation.PreDestroy;
+
+import com.google.common.eventbus.Subscribe;
+
+import org.apache.isis.applib.annotation.Ignore;
+import org.apache.isis.applib.annotation.Programmatic;
+import org.apache.isis.core.commons.lang.ClassUtil;
+import org.apache.isis.core.metamodel.facetapi.FeatureType;
+import org.apache.isis.core.metamodel.facetapi.MethodRemover;
+import org.apache.isis.core.metamodel.facets.Annotations;
+import org.apache.isis.core.metamodel.facets.FacetFactoryAbstract;
+
+public class RemoveAnnotatedMethodsFacetFactory extends FacetFactoryAbstract {
+
+ private Class<? extends Annotation> eventHandlerClass;
+
+ public RemoveAnnotatedMethodsFacetFactory() {
+ super(FeatureType.OBJECTS_ONLY);
+
+ try {
+ // doing this reflectively so that don't bring in a dependency on axon.
+ Class cls = (Class) ClassUtil.forName("org.axonframework.eventhandling.annotation.EventHandler");
+ eventHandlerClass = cls;
+
+ } catch(Exception ignore) {
+ // ignore
+ eventHandlerClass = null;
+ }
+ }
+
+ @Override
+ public void process(final ProcessClassContext processClassContext) {
+ removeIgnoredMethods(processClassContext.getCls(), processClassContext);
+ }
+
+ @SuppressWarnings("deprecation")
+ private void removeIgnoredMethods(final Class<?> cls, final MethodRemover methodRemover) {
+ if (cls == null) {
+ return;
+ }
+
+ final Method[] methods = cls.getMethods();
+ for (final Method method : methods) {
+ removeAnnotatedMethods(methodRemover, method, PreDestroy.class);
+ removeAnnotatedMethods(methodRemover, method, PostConstruct.class);
+ removeAnnotatedMethods(methodRemover, method, Ignore.class);
+ removeAnnotatedMethods(methodRemover, method, Programmatic.class);
+ removeAnnotatedMethods(methodRemover, method, Subscribe.class);
+ if(eventHandlerClass != null) {
+ removeAnnotatedMethods(methodRemover, method, eventHandlerClass);
+ }
+ }
+ }
+
+ private static <T extends Annotation> void removeAnnotatedMethods(final MethodRemover methodRemover, final Method method, Class<T> annotationClass) {
+ if (!Annotations.isAnnotationPresent(method, annotationClass)) {
+ return;
+ }
+ methodRemover.removeMethod(method);
+ }
+
+
+}
http://git-wip-us.apache.org/repos/asf/isis/blob/ec38b4b0/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/ignore/annotation/RemovePostConstructOrPreDestroyAnnotationMethodsFacetFactory.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/ignore/annotation/RemovePostConstructOrPreDestroyAnnotationMethodsFacetFactory.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/ignore/annotation/RemovePostConstructOrPreDestroyAnnotationMethodsFacetFactory.java
deleted file mode 100644
index e739ed6..0000000
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/ignore/annotation/RemovePostConstructOrPreDestroyAnnotationMethodsFacetFactory.java
+++ /dev/null
@@ -1,64 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.isis.core.metamodel.facets.object.ignore.annotation;
-
-import java.lang.annotation.Annotation;
-import java.lang.reflect.Method;
-
-import javax.annotation.PostConstruct;
-import javax.annotation.PreDestroy;
-
-import org.apache.isis.core.metamodel.facetapi.FeatureType;
-import org.apache.isis.core.metamodel.facetapi.MethodRemover;
-import org.apache.isis.core.metamodel.facets.Annotations;
-import org.apache.isis.core.metamodel.facets.FacetFactoryAbstract;
-
-public class RemovePostConstructOrPreDestroyAnnotationMethodsFacetFactory extends FacetFactoryAbstract {
-
- public RemovePostConstructOrPreDestroyAnnotationMethodsFacetFactory() {
- super(FeatureType.OBJECTS_ONLY);
- }
-
- @Override
- public void process(final ProcessClassContext processClassContext) {
- removeIgnoredMethods(processClassContext.getCls(), processClassContext);
- }
-
- @SuppressWarnings("deprecation")
- private void removeIgnoredMethods(final Class<?> cls, final MethodRemover methodRemover) {
- if (cls == null) {
- return;
- }
-
- final Method[] methods = cls.getMethods();
- for (final Method method : methods) {
- removeAnnotatedMethods(methodRemover, method, PreDestroy.class);
- removeAnnotatedMethods(methodRemover, method, PostConstruct.class);
- }
- }
-
- private static <T extends Annotation> void removeAnnotatedMethods(final MethodRemover methodRemover, final Method method, Class<T> annotationClass) {
- if (!Annotations.isAnnotationPresent(method, annotationClass)) {
- return;
- }
- methodRemover.removeMethod(method);
- }
-
-}
http://git-wip-us.apache.org/repos/asf/isis/blob/ec38b4b0/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/ignore/annotation/RemoveProgrammaticOrIgnoreAnnotationMethodsFacetFactory.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/ignore/annotation/RemoveProgrammaticOrIgnoreAnnotationMethodsFacetFactory.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/ignore/annotation/RemoveProgrammaticOrIgnoreAnnotationMethodsFacetFactory.java
deleted file mode 100644
index 5dc7d32..0000000
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/ignore/annotation/RemoveProgrammaticOrIgnoreAnnotationMethodsFacetFactory.java
+++ /dev/null
@@ -1,63 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.isis.core.metamodel.facets.object.ignore.annotation;
-
-import java.lang.annotation.Annotation;
-import java.lang.reflect.Method;
-
-import org.apache.isis.applib.annotation.Ignore;
-import org.apache.isis.applib.annotation.Programmatic;
-import org.apache.isis.core.metamodel.facetapi.FeatureType;
-import org.apache.isis.core.metamodel.facetapi.MethodRemover;
-import org.apache.isis.core.metamodel.facets.Annotations;
-import org.apache.isis.core.metamodel.facets.FacetFactoryAbstract;
-
-public class RemoveProgrammaticOrIgnoreAnnotationMethodsFacetFactory extends FacetFactoryAbstract {
-
- public RemoveProgrammaticOrIgnoreAnnotationMethodsFacetFactory() {
- super(FeatureType.OBJECTS_ONLY);
- }
-
- @Override
- public void process(final ProcessClassContext processClassContext) {
- removeIgnoredMethods(processClassContext.getCls(), processClassContext);
- }
-
- @SuppressWarnings("deprecation")
- private void removeIgnoredMethods(final Class<?> cls, final MethodRemover methodRemover) {
- if (cls == null) {
- return;
- }
-
- final Method[] methods = cls.getMethods();
- for (final Method method : methods) {
- removeAnnotatedMethods(methodRemover, method, Ignore.class);
- removeAnnotatedMethods(methodRemover, method, Programmatic.class);
- }
- }
-
- private static <T extends Annotation> void removeAnnotatedMethods(final MethodRemover methodRemover, final Method method, Class<T> annotationClass) {
- if (!Annotations.isAnnotationPresent(method, annotationClass)) {
- return;
- }
- methodRemover.removeMethod(method);
- }
-
-}
http://git-wip-us.apache.org/repos/asf/isis/blob/ec38b4b0/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/ignore/annotation/RemoveSubscriberMethodsFacetFactory.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/ignore/annotation/RemoveSubscriberMethodsFacetFactory.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/ignore/annotation/RemoveSubscriberMethodsFacetFactory.java
deleted file mode 100644
index 76c508c..0000000
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/ignore/annotation/RemoveSubscriberMethodsFacetFactory.java
+++ /dev/null
@@ -1,70 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.isis.core.metamodel.facets.object.ignore.annotation;
-
-import java.lang.annotation.Annotation;
-import java.lang.reflect.Method;
-
-import com.google.common.eventbus.Subscribe;
-
-import org.apache.isis.core.commons.lang.ClassUtil;
-import org.apache.isis.core.metamodel.facetapi.FeatureType;
-import org.apache.isis.core.metamodel.facetapi.MethodRemover;
-import org.apache.isis.core.metamodel.facets.Annotations;
-import org.apache.isis.core.metamodel.facets.FacetFactoryAbstract;
-
-public class RemoveSubscriberMethodsFacetFactory extends FacetFactoryAbstract {
-
- public RemoveSubscriberMethodsFacetFactory() {
- super(FeatureType.OBJECTS_ONLY);
- }
-
- @Override
- public void process(final ProcessClassContext processClassContext) {
- removeIgnoredMethods(processClassContext.getCls(), processClassContext);
- }
-
- @SuppressWarnings("deprecation")
- private void removeIgnoredMethods(final Class<?> cls, final MethodRemover methodRemover) {
- if (cls == null) {
- return;
- }
-
- final Method[] methods = cls.getMethods();
- for (final Method method : methods) {
- removeAnnotatedMethods(methodRemover, method, Subscribe.class);
- try {
- // doing this reflectively so that don't bring in a dependency on axon.
- final Class annotationClass = ClassUtil.forName("org.axonframework.eventhandling.annotation.EventHandler");
- removeAnnotatedMethods(methodRemover, method, annotationClass);
- } catch(Exception ignore) {
- // iignore
- }
- }
- }
-
- private static <T extends Annotation> void removeAnnotatedMethods(final MethodRemover methodRemover, final Method method, Class<T> annotationClass) {
- if (!Annotations.isAnnotationPresent(method, annotationClass)) {
- return;
- }
- methodRemover.removeMethod(method);
- }
-
-}
http://git-wip-us.apache.org/repos/asf/isis/blob/ec38b4b0/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/ServiceUtil.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/ServiceUtil.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/ServiceUtil.java
index 937a352..0fc6991 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/ServiceUtil.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/ServiceUtil.java
@@ -32,19 +32,13 @@ public final class ServiceUtil {
public static String id(final Object object) {
final Class<?> cls = object.getClass();
try {
- final Method m = cls.getMethod("getId", new Class[0]);
- return (String) m.invoke(object, new Object[0]);
- } catch (final SecurityException e) {
+ final Method m = cls.getMethod("getId");
+ return (String) m.invoke(object);
+ } catch (final SecurityException | IllegalArgumentException | IllegalAccessException | InvocationTargetException e) {
throw new IsisException(e);
} catch (final NoSuchMethodException e) {
final String id = object.getClass().getName();
return id.substring(id.lastIndexOf('.') + 1);
- } catch (final IllegalArgumentException e) {
- throw new IsisException(e);
- } catch (final IllegalAccessException e) {
- throw new IsisException(e);
- } catch (final InvocationTargetException e) {
- throw new IsisException(e);
}
}
}
http://git-wip-us.apache.org/repos/asf/isis/blob/ec38b4b0/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/CollectionUtils.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/CollectionUtils.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/CollectionUtils.java
new file mode 100644
index 0000000..29098eb
--- /dev/null
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/CollectionUtils.java
@@ -0,0 +1,45 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package org.apache.isis.core.metamodel.specloader;
+
+/**
+ * Defines the types which are considered to be collections.
+ *
+ * <p>
+ * In this way there are similarities with the way in which value types are
+ * specified using <tt>@Value</tt>. However, we need to maintain a repository of
+ * these collection types once nominated so that when we introspect classes we
+ * look for collections first, and then properties second.
+ */
+public final class CollectionUtils {
+
+ private CollectionUtils() {}
+
+ public static boolean isCollectionType(final Class<?> cls) {
+ return java.util.Collection.class.isAssignableFrom(cls);
+ }
+
+ public static boolean isArrayType(final Class<?> cls) {
+ return cls.isArray();
+ }
+
+
+
+}
http://git-wip-us.apache.org/repos/asf/isis/blob/ec38b4b0/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/collectiontyperegistry/CollectionTypeRegistry.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/collectiontyperegistry/CollectionTypeRegistry.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/collectiontyperegistry/CollectionTypeRegistry.java
deleted file mode 100644
index b3d953f..0000000
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/collectiontyperegistry/CollectionTypeRegistry.java
+++ /dev/null
@@ -1,85 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.isis.core.metamodel.specloader.collectiontyperegistry;
-
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.List;
-import java.util.Set;
-import org.apache.isis.core.metamodel.spec.feature.OneToManyFeature.CollectionSemantics;
-
-/**
- * Defines the types which are considered to be collections.
- *
- * <p>
- * In this way there are similarities with the way in which value types are
- * specified using <tt>@Value</tt>. However, we need to maintain a repository of
- * these collection types once nominated so that when we introspect classes we
- * look for collections first, and then properties second.
- */
-public class CollectionTypeRegistry {
-
- private final List<Class<?>> collectionTypes = new ArrayList<>();
- private Class<?>[] collectionTypesAsArray = new Class[0];
-
- /**
- * Inbuilt support for {@link java.util.Collection} as a collection type.
- *
- * <p>
- * Note that this includes any subclasses.
- */
- public CollectionTypeRegistry() {
- addCollectionType(Collection.class);
- }
-
- /**
- * Plan is for this to be promoted to API at some stage.
- */
- private void addCollectionType(final Class<?> collectionType) {
- collectionTypes.add(collectionType);
- collectionTypesAsArray = collectionTypes.toArray(new Class[0]);
- }
-
- public boolean isCollectionType(final Class<?> cls) {
- return java.util.Collection.class.isAssignableFrom(cls);
- }
-
- public boolean isArrayType(final Class<?> cls) {
- return cls.isArray();
- }
-
- public Class<?>[] getCollectionType() {
- return collectionTypesAsArray;
- }
-
- public CollectionSemantics semanticsOf(final Class<?> underlyingClass) {
- if (!Collection.class.isAssignableFrom(underlyingClass)) {
- return CollectionSemantics.ARRAY;
- }
- if (List.class.isAssignableFrom(underlyingClass)) {
- return CollectionSemantics.LIST;
- }
- if (Set.class.isAssignableFrom(underlyingClass)) {
- return CollectionSemantics.SET;
- }
- return CollectionSemantics.OTHER;
- }
-
-}
http://git-wip-us.apache.org/repos/asf/isis/blob/ec38b4b0/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/FacetedMethodsBuilder.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/FacetedMethodsBuilder.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/FacetedMethodsBuilder.java
index 3517aa0..805ee62 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/FacetedMethodsBuilder.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/FacetedMethodsBuilder.java
@@ -74,12 +74,21 @@ public class FacetedMethodsBuilder {
}
@Override
- public void removeMethod(final MethodScope methodScope, final String methodName, final Class<?> returnType, final Class<?>[] parameterTypes) {
+ public void removeMethod(
+ final MethodScope methodScope,
+ final String methodName,
+ final Class<?> returnType,
+ final Class<?>[] parameterTypes) {
MethodUtil.removeMethod(methods, methodScope, methodName, returnType, parameterTypes);
}
@Override
- public List<Method> removeMethods(final MethodScope methodScope, final String prefix, final Class<?> returnType, final boolean canBeVoid, final int paramCount) {
+ public List<Method> removeMethods(
+ final MethodScope methodScope,
+ final String prefix,
+ final Class<?> returnType,
+ final boolean canBeVoid,
+ final int paramCount) {
return MethodUtil.removeMethods(methods, methodScope, prefix, returnType, canBeVoid, paramCount);
}
http://git-wip-us.apache.org/repos/asf/isis/blob/ec38b4b0/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectMemberAbstract.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectMemberAbstract.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectMemberAbstract.java
index e29dd07..d45479f 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectMemberAbstract.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectMemberAbstract.java
@@ -54,14 +54,13 @@ import org.apache.isis.core.metamodel.interactions.InteractionContext;
import org.apache.isis.core.metamodel.interactions.InteractionUtils;
import org.apache.isis.core.metamodel.interactions.UsabilityContext;
import org.apache.isis.core.metamodel.interactions.VisibilityContext;
-import org.apache.isis.core.metamodel.services.persistsession.PersistenceSessionServiceInternal;
import org.apache.isis.core.metamodel.services.ServicesInjector;
import org.apache.isis.core.metamodel.services.command.CommandDtoServiceInternal;
+import org.apache.isis.core.metamodel.services.persistsession.PersistenceSessionServiceInternal;
import org.apache.isis.core.metamodel.spec.ObjectSpecification;
import org.apache.isis.core.metamodel.spec.feature.ObjectAction;
-import org.apache.isis.core.metamodel.specloader.SpecificationLoader;
import org.apache.isis.core.metamodel.spec.feature.ObjectMember;
-import org.apache.isis.core.metamodel.specloader.collectiontyperegistry.CollectionTypeRegistry;
+import org.apache.isis.core.metamodel.specloader.SpecificationLoader;
import org.apache.isis.schema.cmd.v1.CommandDto;
import org.apache.isis.schema.utils.CommandDtoUtils;
@@ -72,8 +71,6 @@ public abstract class ObjectMemberAbstract implements ObjectMember {
}
//region > fields
- private final CollectionTypeRegistry collectionTypeRegistry = new CollectionTypeRegistry();
-
private final String id;
private final FacetedMethod facetedMethod;
private final FeatureType featureType;
@@ -389,10 +386,6 @@ public abstract class ObjectMemberAbstract implements ObjectMember {
return persistenceSessionServiceInternal;
}
- public CollectionTypeRegistry getCollectionTypeRegistry() {
- return collectionTypeRegistry;
- }
-
protected <T> T lookupService(final Class<T> serviceClass) {
return getServicesInjector().lookupService(serviceClass);
}
http://git-wip-us.apache.org/repos/asf/isis/blob/ec38b4b0/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/OneToManyAssociationDefault.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/OneToManyAssociationDefault.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/OneToManyAssociationDefault.java
index f7cc6c4..c9648cb 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/OneToManyAssociationDefault.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/OneToManyAssociationDefault.java
@@ -19,6 +19,10 @@
package org.apache.isis.core.metamodel.specloader.specimpl;
+import java.util.Collection;
+import java.util.List;
+import java.util.Set;
+
import org.apache.isis.applib.annotation.Where;
import org.apache.isis.core.commons.exceptions.IsisException;
import org.apache.isis.core.commons.util.ToString;
@@ -65,7 +69,20 @@ public class OneToManyAssociationDefault extends ObjectAssociationAbstract imple
@Override
public CollectionSemantics getCollectionSemantics() {
final Class<?> underlyingClass = getSpecification().getCorrespondingClass();
- return getCollectionTypeRegistry().semanticsOf(underlyingClass);
+ return semanticsOf(underlyingClass);
+ }
+
+ private static CollectionSemantics semanticsOf(final Class<?> underlyingClass) {
+ if (!Collection.class.isAssignableFrom(underlyingClass)) {
+ return CollectionSemantics.ARRAY;
+ }
+ if (List.class.isAssignableFrom(underlyingClass)) {
+ return CollectionSemantics.LIST;
+ }
+ if (Set.class.isAssignableFrom(underlyingClass)) {
+ return CollectionSemantics.SET;
+ }
+ return CollectionSemantics.OTHER;
}
//region > visible, usable
http://git-wip-us.apache.org/repos/asf/isis/blob/ec38b4b0/core/metamodel/src/main/java/org/apache/isis/progmodels/dflt/ProgrammingModelFacetsJava5.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/progmodels/dflt/ProgrammingModelFacetsJava5.java b/core/metamodel/src/main/java/org/apache/isis/progmodels/dflt/ProgrammingModelFacetsJava5.java
index e730939..cf0f00a 100644
--- a/core/metamodel/src/main/java/org/apache/isis/progmodels/dflt/ProgrammingModelFacetsJava5.java
+++ b/core/metamodel/src/main/java/org/apache/isis/progmodels/dflt/ProgrammingModelFacetsJava5.java
@@ -86,12 +86,11 @@ import org.apache.isis.core.metamodel.facets.object.domainservicelayout.DomainSe
import org.apache.isis.core.metamodel.facets.object.encodeable.annotcfg.EncodableFacetAnnotationElseConfigurationFactory;
import org.apache.isis.core.metamodel.facets.object.facets.annotation.FacetsFacetAnnotationFactory;
import org.apache.isis.core.metamodel.facets.object.fieldorder.annotation.FieldOrderFacetAnnotationFactory;
+import org.apache.isis.core.metamodel.facets.object.grid.GridFacetFactory;
import org.apache.isis.core.metamodel.facets.object.hidden.annotation.HiddenFacetOnTypeAnnotationFactory;
import org.apache.isis.core.metamodel.facets.object.hidden.method.HiddenObjectFacetViaMethodFactory;
import org.apache.isis.core.metamodel.facets.object.icon.method.IconFacetMethodFactory;
-import org.apache.isis.core.metamodel.facets.object.ignore.annotation.RemovePostConstructOrPreDestroyAnnotationMethodsFacetFactory;
-import org.apache.isis.core.metamodel.facets.object.ignore.annotation.RemoveProgrammaticOrIgnoreAnnotationMethodsFacetFactory;
-import org.apache.isis.core.metamodel.facets.object.ignore.annotation.RemoveSubscriberMethodsFacetFactory;
+import org.apache.isis.core.metamodel.facets.object.ignore.annotation.RemoveAnnotatedMethodsFacetFactory;
import org.apache.isis.core.metamodel.facets.object.ignore.datanucleus.RemoveDatanucleusPersistableTypesFacetFactory;
import org.apache.isis.core.metamodel.facets.object.ignore.datanucleus.RemoveDnPrefixedMethodsFacetFactory;
import org.apache.isis.core.metamodel.facets.object.ignore.isis.RemoveSetDomainObjectContainerMethodFacetFactory;
@@ -108,7 +107,6 @@ import org.apache.isis.core.metamodel.facets.object.ignore.jdo.RemoveJdoEnhancem
import org.apache.isis.core.metamodel.facets.object.ignore.jdo.RemoveJdoPrefixedMethodsFacetFactory;
import org.apache.isis.core.metamodel.facets.object.immutable.immutableannot.CopyImmutableFacetOntoMembersFactory;
import org.apache.isis.core.metamodel.facets.object.immutable.immutablemarkerifc.ImmutableFacetMarkerInterfaceFactory;
-import org.apache.isis.core.metamodel.facets.object.grid.GridFacetFactory;
import org.apache.isis.core.metamodel.facets.object.mask.annotation.MaskFacetOnTypeAnnotationFactory;
import org.apache.isis.core.metamodel.facets.object.maxlen.annotation.MaxLengthFacetOnTypeAnnotationFactory;
import org.apache.isis.core.metamodel.facets.object.membergroups.annotprop.MemberGroupLayoutFacetFactory;
@@ -221,291 +219,330 @@ public final class ProgrammingModelFacetsJava5 extends ProgrammingModelAbstract
// must be first, so any Facets created can be replaced by other
// FacetFactorys later.
- addFactory(FallbackFacetFactory.class);
-
- addFactory(ObjectSpecIdFacetDerivedFromClassNameFactory.class);
- addFactory(DomainServiceFacetAnnotationFactory.class);
-
- addFactory(IteratorFilteringFacetFactory.class);
- addFactory(RemoveSyntheticOrAbstractMethodsFacetFactory.class);
- addFactory(RemoveSuperclassMethodsFacetFactory.class);
- addFactory(RemoveJavaLangObjectMethodsFacetFactory.class);
- addFactory(RemoveJavaLangComparableMethodsFacetFactory.class);
- addFactory(RemoveSetDomainObjectContainerMethodFacetFactory.class);
- addFactory(RemoveInitMethodFacetFactory.class);
- addFactory(RemoveInjectMethodsFacetFactory.class);
- addFactory(RemoveStaticGettersAndSettersFacetFactory.class);
- addFactory(RemoveGetClassMethodFacetFactory.class);
- addFactory(RemovePostConstructOrPreDestroyAnnotationMethodsFacetFactory.class);
- addFactory(RemoveProgrammaticOrIgnoreAnnotationMethodsFacetFactory.class);
- addFactory(RemoveSubscriberMethodsFacetFactory.class);
+ addFactory(new FallbackFacetFactory());
+
+ addFactory(new ObjectSpecIdFacetDerivedFromClassNameFactory());
+ addFactory(new DomainServiceFacetAnnotationFactory());
+
+ addFactory(new IteratorFilteringFacetFactory());
+
+ addFactory(new RemoveSyntheticOrAbstractMethodsFacetFactory());
+ addFactory(new RemoveSuperclassMethodsFacetFactory());
+ addFactory(new RemoveJavaLangObjectMethodsFacetFactory());
+ addFactory(new RemoveJavaLangComparableMethodsFacetFactory());
+ addFactory(new RemoveSetDomainObjectContainerMethodFacetFactory());
+
+ addFactory(new RemoveInitMethodFacetFactory());
+ addFactory(new RemoveInjectMethodsFacetFactory());
+ addFactory(new RemoveStaticGettersAndSettersFacetFactory());
+ addFactory(new RemoveGetClassMethodFacetFactory());
+
+ addFactory(new RemoveAnnotatedMethodsFacetFactory());
// come what may, we have to ignore the PersistenceCapable supertype.
- addFactory(RemoveJdoEnhancementTypesFacetFactory.class);
+ addFactory(new RemoveJdoEnhancementTypesFacetFactory());
// so we may as well also just ignore any 'jdo' prefixed methods here also.
- addFactory(RemoveJdoPrefixedMethodsFacetFactory.class);
+ addFactory(new RemoveJdoPrefixedMethodsFacetFactory());
// DN 4.x
- addFactory(RemoveDatanucleusPersistableTypesFacetFactory.class);
- addFactory(RemoveDnPrefixedMethodsFacetFactory.class);
+ addFactory(new RemoveDatanucleusPersistableTypesFacetFactory());
+ addFactory(new RemoveDnPrefixedMethodsFacetFactory());
// must be before any other FacetFactories that install
// MandatoryFacet.class facets
- addFactory(MandatoryFacetOnProperyDefaultFactory.class);
- addFactory(MandatoryFacetOnParametersDefaultFactory.class);
+ addFactory(new MandatoryFacetOnProperyDefaultFactory());
+ addFactory(new MandatoryFacetOnParametersDefaultFactory());
- addFactory(PropertyValidateFacetDefaultFactory.class);
+ addFactory(new PropertyValidateFacetDefaultFactory());
// enum support
- addFactory(EnumFacetUsingValueFacetUsingSemanticsProviderFactory.class);
- addFactory(ActionParameterChoicesFacetDerivedFromChoicesFacetFactory.class);
- addFactory(PropertyChoicesFacetDerivedFromChoicesFacetFactory.class);
+ addFactory(new EnumFacetUsingValueFacetUsingSemanticsProviderFactory());
+ addFactory(new ActionParameterChoicesFacetDerivedFromChoicesFacetFactory());
+ addFactory(new PropertyChoicesFacetDerivedFromChoicesFacetFactory());
// properties
- addFactory(PropertyAccessorFacetViaAccessorFactory.class);
- addFactory(PropertySetAndClearFacetFactory.class);
+ addFactory(new PropertyAccessorFacetViaAccessorFactory());
+ addFactory(new PropertySetAndClearFacetFactory());
// must come after PropertySetAndClearFacetFactory (replaces setter facet with modify if need be)
- addFactory(PropertyModifyFacetFactory.class);
+ addFactory(new PropertyModifyFacetFactory());
- addFactory(PropertyValidateFacetViaMethodFactory.class);
- addFactory(PropertyChoicesFacetViaMethodFactory.class);
- addFactory(PropertyAutoCompleteFacetMethodFactory.class);
- addFactory(PropertyDefaultFacetViaMethodFactory.class);
- addFactory(MandatoryFacetOnPropertyStaticMethodFactory.class);
+ addFactory(new PropertyValidateFacetViaMethodFactory());
+ addFactory(new PropertyChoicesFacetViaMethodFactory());
+ addFactory(new PropertyAutoCompleteFacetMethodFactory());
+ addFactory(new PropertyDefaultFacetViaMethodFactory());
+
+ addFactory(new MandatoryFacetOnPropertyStaticMethodFactory());
// collections
- addFactory(CollectionAccessorFacetViaAccessorFactory.class);
- addFactory(CollectionClearFacetFactory.class);
- addFactory(CollectionAddToRemoveFromAndValidateFacetFactory.class);
- addFactory(SortedByFacetAnnotationFactory.class);
+ addFactory(new CollectionAccessorFacetViaAccessorFactory());
+ addFactory(new CollectionClearFacetFactory());
+ addFactory(new CollectionAddToRemoveFromAndValidateFacetFactory());
+
+ addFactory(new SortedByFacetAnnotationFactory());
// actions
- addFactory(ActionNamedDebugExplorationFacetFactory.class);
- addFactory(ActionValidationFacetViaMethodFactory.class);
- addFactory(ActionChoicesFacetViaMethodFactory.class);
- addFactory(ActionParameterChoicesFacetViaMethodFactory.class);
- addFactory(ActionParameterAutoCompleteFacetViaMethodFactory.class);
- addFactory(ActionDefaultsFacetViaMethodFactory.class);
- addFactory(ActionParameterDefaultsFacetViaMethodFactory.class);
+
+ addFactory(new ActionNamedDebugExplorationFacetFactory());
+ addFactory(new ActionValidationFacetViaMethodFactory());
+ addFactory(new ActionChoicesFacetViaMethodFactory());
+ addFactory(new ActionParameterChoicesFacetViaMethodFactory());
+ addFactory(new ActionParameterAutoCompleteFacetViaMethodFactory());
+ addFactory(new ActionDefaultsFacetViaMethodFactory());
+ addFactory(new ActionParameterDefaultsFacetViaMethodFactory());
// members in general
- addFactory(NamedFacetStaticMethodFactory.class);
- addFactory(DescribedAsFacetStaticMethodFactory.class);
- addFactory(DisableForSessionFacetViaMethodFactory.class);
- addFactory(DisableForContextFacetViaMethodFactory.class);
- addFactory(DisabledFacetStaticMethodFacetFactory.class);
- addFactory(HideForSessionFacetViaMethodFactory.class);
- addFactory(HiddenFacetStaticMethodFactory.class);
- addFactory(HideForContextFacetViaMethodFactory.class);
- addFactory(RenderFacetOrResolveFactory.class);
-
- addFactory(CreatedCallbackFacetFactory.class);
- addFactory(LoadCallbackFacetFactory.class);
- addFactory(PersistCallbackViaSaveMethodFacetFactory.class);
- addFactory(PersistCallbackFacetFactory.class);
- addFactory(UpdateCallbackFacetFactory.class);
- addFactory(RemoveCallbackFacetFactory.class);
-
- addFactory(ValidateObjectFacetMethodFactory.class);
- addFactory(ObjectValidPropertiesFacetImplFactory.class);
- addFactory(PluralFacetStaticMethodFactory.class);
- addFactory(org.apache.isis.core.metamodel.facets.object.named.staticmethod.NamedFacetStaticMethodFactory.class);
-
- addFactory(MemberOrderFacetFactory.class);
- addFactory(ActionOrderFacetAnnotationFactory.class);
- addFactory(FieldOrderFacetAnnotationFactory.class);
- addFactory(MemberGroupLayoutFacetFactory.class);
-
- addFactory(AggregatedAnnotationFactory.class);
- addFactory(BookmarkPolicyFacetViaBookmarkableAnnotationFactory.class);
- addFactory(HomePageFacetAnnotationFactory.class);
- addFactory(ChoicesFacetFromBoundedMarkerInterfaceFactory.class);
- addFactory(DebugFacetAnnotationFactory.class);
-
- addFactory(DefaultedFacetAnnotationElseConfigurationFactory.class);
- addFactory(PropertyDefaultFacetDerivedFromTypeFactory.class);
- addFactory(ActionParameterDefaultFacetDerivedFromTypeFactory.class);
-
- addFactory(DescribedAsFacetOnTypeAnnotationFactory.class);
- addFactory(DescribedAsFacetOnMemberFactory.class);
- addFactory(DescribedAsFacetOnParameterAnnotationElseDerivedFromTypeFactory.class);
-
- addFactory(BigDecimalFacetOnParameterFromJavaxValidationAnnotationFactory.class);
- addFactory(BigDecimalFacetOnPropertyFromJavaxValidationDigitsAnnotationFactory.class);
-
- addFactory(DisabledFacetOnMemberFromPropertiesFactory.class);
- addFactory(EncodableFacetAnnotationElseConfigurationFactory.class);
- addFactory(ExplorationFacetAnnotationFactory.class);
- addFactory(NotContributedFacetAnnotationFactory.class);
- addFactory(NotInServiceMenuFacetAnnotationFactory.class);
- addFactory(NotInServiceMenuFacetViaMethodFactory.class);
-
- addFactory(NotContributedFacetDerivedFromDomainServiceFacetFactory.class);
- addFactory(NotInServiceMenuFacetDerivedFromDomainServiceFacetFactory.class);
-
- addFactory(HiddenFacetOnTypeAnnotationFactory.class);
+
+ addFactory(new NamedFacetStaticMethodFactory());
+
+ addFactory(new DescribedAsFacetStaticMethodFactory());
+ addFactory(new DisableForSessionFacetViaMethodFactory());
+ addFactory(new DisableForContextFacetViaMethodFactory());
+
+ addFactory(new DisabledFacetStaticMethodFacetFactory());
+ addFactory(new HideForSessionFacetViaMethodFactory());
+
+ addFactory(new HiddenFacetStaticMethodFactory());
+ addFactory(new HideForContextFacetViaMethodFactory());
+ addFactory(new RenderFacetOrResolveFactory());
+
+ addFactory(new CreatedCallbackFacetFactory());
+ addFactory(new LoadCallbackFacetFactory());
+ addFactory(new PersistCallbackViaSaveMethodFacetFactory());
+ addFactory(new PersistCallbackFacetFactory());
+ addFactory(new UpdateCallbackFacetFactory());
+ addFactory(new RemoveCallbackFacetFactory());
+
+ addFactory(new ValidateObjectFacetMethodFactory());
+ addFactory(new ObjectValidPropertiesFacetImplFactory());
+
+ addFactory(new PluralFacetStaticMethodFactory());
+
+ addFactory(new org.apache.isis.core.metamodel.facets.object.named.staticmethod.NamedFacetStaticMethodFactory());
+
+ addFactory(new MemberOrderFacetFactory());
+
+ addFactory(new ActionOrderFacetAnnotationFactory());
+
+ addFactory(new FieldOrderFacetAnnotationFactory());
+ addFactory(new MemberGroupLayoutFacetFactory());
+
+ addFactory(new AggregatedAnnotationFactory());
+
+ addFactory(new BookmarkPolicyFacetViaBookmarkableAnnotationFactory());
+ addFactory(new HomePageFacetAnnotationFactory());
+ addFactory(new ChoicesFacetFromBoundedMarkerInterfaceFactory());
+ addFactory(new DebugFacetAnnotationFactory());
+
+ addFactory(new DefaultedFacetAnnotationElseConfigurationFactory());
+ addFactory(new PropertyDefaultFacetDerivedFromTypeFactory());
+ addFactory(new ActionParameterDefaultFacetDerivedFromTypeFactory());
+
+
+ addFactory(new DescribedAsFacetOnTypeAnnotationFactory());
+ addFactory(new DescribedAsFacetOnMemberFactory());
+ addFactory(new DescribedAsFacetOnParameterAnnotationElseDerivedFromTypeFactory());
+
+ addFactory(new BigDecimalFacetOnParameterFromJavaxValidationAnnotationFactory());
+ addFactory(new BigDecimalFacetOnPropertyFromJavaxValidationDigitsAnnotationFactory());
+
+ addFactory(new DisabledFacetOnMemberFromPropertiesFactory());
+ addFactory(new EncodableFacetAnnotationElseConfigurationFactory());
+
+ addFactory(new ExplorationFacetAnnotationFactory());
+
+ addFactory(new NotContributedFacetAnnotationFactory());
+
+ addFactory(new NotInServiceMenuFacetAnnotationFactory());
+
+ addFactory(new NotInServiceMenuFacetViaMethodFactory());
+
+ addFactory(new NotContributedFacetDerivedFromDomainServiceFacetFactory());
+ addFactory(new NotInServiceMenuFacetDerivedFromDomainServiceFacetFactory());
+
+
+ addFactory(new HiddenFacetOnTypeAnnotationFactory());
// must come after the TitleAnnotationFacetFactory, because can act as an override
- addFactory(HiddenFacetOnMemberFromPropertiesFactory.class);
+
+ addFactory(new HiddenFacetOnMemberFromPropertiesFactory());
- addFactory(CssClassFacetOnTypeAnnotationFactory.class);
- addFactory(CssClassFacetOnMemberFactory.class);
+
+ addFactory(new CssClassFacetOnTypeAnnotationFactory());
+ addFactory(new CssClassFacetOnMemberFactory());
// must come after CssClassFacetOnMemberFactory
- addFactory(CssClassFacetOnActionFromConfiguredRegexFactory.class);
+ addFactory(new CssClassFacetOnActionFromConfiguredRegexFactory());
- // addFactory(CssClassFaFacetOnTypeAnnotationFactory.class);
- addFactory(CssClassFaFacetOnMemberFactory.class);
+ // addFactory(new CssClassFaFacetOnTypeAnnotationFactory());
+ addFactory(new CssClassFaFacetOnMemberFactory());
- addFactory(HiddenObjectFacetViaMethodFactory.class);
- addFactory(DisabledObjectFacetViaMethodFactory.class);
+ addFactory(new HiddenObjectFacetViaMethodFactory());
+ addFactory(new DisabledObjectFacetViaMethodFactory());
- addFactory(CopyImmutableFacetOntoMembersFactory.class);
- addFactory(ImmutableFacetMarkerInterfaceFactory.class);
+ addFactory(new CopyImmutableFacetOntoMembersFactory());
+ addFactory(new ImmutableFacetMarkerInterfaceFactory());
- addFactory(RecreatableObjectFacetFactory.class);
- addFactory(MixinFacetForMixinAnnotationFactory.class);
+ addFactory(new RecreatableObjectFacetFactory());
+ addFactory(new MixinFacetForMixinAnnotationFactory());
- addFactory(MaxLengthFacetOnTypeAnnotationFactory.class);
- addFactory(MaxLengthFacetOnActionAnnotationFactory.class);
+
+ addFactory(new MaxLengthFacetOnTypeAnnotationFactory());
- addFactory(MustSatisfySpecificationFromMustSatisfyAnnotationOnTypeFacetFactory.class);
+ addFactory(new MaxLengthFacetOnActionAnnotationFactory());
- addFactory(MultiLineFacetOnTypeAnnotationFactory.class);
- addFactory(MultiLineFacetOnPropertyFactory.class);
- addFactory(MultiLineFacetOnParameterAnnotationFactory.class);
+
+ addFactory(new MustSatisfySpecificationFromMustSatisfyAnnotationOnTypeFacetFactory());
+
+
+ addFactory(new MultiLineFacetOnTypeAnnotationFactory());
+ addFactory(new MultiLineFacetOnPropertyFactory());
+ addFactory(new MultiLineFacetOnParameterAnnotationFactory());
// must come after RecreatableObjectFacetFactory
- addFactory(DomainObjectAnnotationFacetFactory.class);
+ addFactory(new DomainObjectAnnotationFacetFactory());
// must come after the property/collection accessor+mutator facet factories
- addFactory(ActionAnnotationFacetFactory.class);
+ addFactory(new ActionAnnotationFacetFactory());
// after the ActionAnnotationFacetFactory so that takes precedent for contributed associations
- addFactory(PropertyAnnotationFacetFactory.class);
+ addFactory(new PropertyAnnotationFacetFactory());
// after the ActionAnnotationFacetFactory so that takes precedent for contributed associations
- addFactory(CollectionAnnotationFacetFactory.class);
+ addFactory(new CollectionAnnotationFacetFactory());
- addFactory(ParameterAnnotationFacetFactory.class);
+ addFactory(new ParameterAnnotationFacetFactory());
// must come after DomainObjectAnnotationFacetFactory
- addFactory(DisabledFacetOnPropertyDerivedFromRecreatableObjectFacetFactory.class);
- addFactory(DisabledFacetOnCollectionDerivedFromViewModelFacetFactory.class);
+ addFactory(new DisabledFacetOnPropertyDerivedFromRecreatableObjectFacetFactory());
+ addFactory(new DisabledFacetOnCollectionDerivedFromViewModelFacetFactory());
// must come after DomainObjectAnnotationFacetFactory & MixinFacetFactory
- addFactory(NotContributedFacetDerivedFromMixinFacetFactory.class);
+ addFactory(new NotContributedFacetDerivedFromMixinFacetFactory());
- addFactory(GridFacetFactory.class);
+ addFactory(new GridFacetFactory());
- addFactory(DomainServiceLayoutFacetFactory.class);
- addFactory(DomainObjectLayoutFacetFactory.class);
+ addFactory(new DomainServiceLayoutFacetFactory());
+ addFactory(new DomainObjectLayoutFacetFactory());
// must come after MultiLine
- addFactory(PropertyLayoutFacetFactory.class);
- addFactory(ParameterLayoutFacetFactory.class);
- addFactory(ActionLayoutFacetFactory.class);
- addFactory(CollectionLayoutFacetFactory.class);
+ addFactory(new PropertyLayoutFacetFactory());
+ addFactory(new ParameterLayoutFacetFactory());
+ addFactory(new ActionLayoutFacetFactory());
+ addFactory(new CollectionLayoutFacetFactory());
// must come after DomainObjectLayoutFacetFactory
- addFactory(TitleAnnotationFacetFactory.class);
- addFactory(TitleFacetViaMethodsFactory.class);
- addFactory(IconFacetMethodFactory.class);
- addFactory(CssClassFacetMethodFactory.class);
+ addFactory(new TitleAnnotationFacetFactory());
+ addFactory(new TitleFacetViaMethodsFactory());
+ addFactory(new IconFacetMethodFactory());
+ addFactory(new CssClassFacetMethodFactory());
+
+
+ addFactory(new NamedFacetOnTypeAnnotationFactory());
+ addFactory(new NamedFacetOnMemberFactory());
+
+ addFactory(new NamedFacetOnParameterAnnotationFactory());
+
+ addFactory(new NotPersistableFacetAnnotationFactory());
+ addFactory(new NotPersistableFacetMarkerInterfaceFactory());
- addFactory(NamedFacetOnTypeAnnotationFactory.class);
- addFactory(NamedFacetOnMemberFactory.class);
- addFactory(NamedFacetOnParameterAnnotationFactory.class);
+ addFactory(new ParseableFacetAnnotationElseConfigurationFactory());
+
+ addFactory(new PluralAnnotationFacetFactory());
- addFactory(NotPersistableFacetAnnotationFactory.class);
- addFactory(NotPersistableFacetMarkerInterfaceFactory.class);
+ addFactory(new PagedFacetOnTypeAnnotationFactory());
- addFactory(ParseableFacetAnnotationElseConfigurationFactory.class);
- addFactory(PluralAnnotationFacetFactory.class);
- addFactory(PagedFacetOnTypeAnnotationFactory.class);
- addFactory(PagedFacetOnCollectionFactory.class);
- addFactory(PagedFacetOnActionFactory.class);
+ addFactory(new PagedFacetOnCollectionFactory());
+
+ addFactory(new PagedFacetOnActionFactory());
// must come after any facets that install titles
- addFactory(MaskFacetOnTypeAnnotationFactory.class);
- addFactory(MaskFacetOnPropertyAnnotationFactory.class);
- addFactory(MaskFacetOnParameterAnnotationFactory.class);
+
+ addFactory(new MaskFacetOnTypeAnnotationFactory());
+ addFactory(new MaskFacetOnPropertyAnnotationFactory());
+
+ addFactory(new MaskFacetOnParameterAnnotationFactory());
// must come after any facets that install titles, and after mask
// if takes precedence over mask.
- addFactory(RegExFacetOnTypeAnnotationFactory.class);
-
- addFactory(TypicalLengthFacetOnPropertyDerivedFromTypeFacetFactory.class);
- addFactory(TypicalLengthFacetOnParameterDerivedFromTypeFacetFactory.class);
-
- addFactory(TypicalLengthFacetOnTypeAnnotationFactory.class);
- addFactory(TypicalLengthOnPropertyFacetFactory.class);
- addFactory(TypicalLengthFacetOnParameterAnnotationFactory.class);
- addFactory(RenderedAsDayBeforeAnnotationOnPropertyFacetFactory.class);
- addFactory(RenderedAsDayBeforeFacetOnParameterAnnotationFactory.class);
+
+ addFactory(new RegExFacetOnTypeAnnotationFactory());
+
+ addFactory(new TypicalLengthFacetOnPropertyDerivedFromTypeFacetFactory());
+ addFactory(new TypicalLengthFacetOnParameterDerivedFromTypeFacetFactory());
+
+
+ addFactory(new TypicalLengthFacetOnTypeAnnotationFactory());
+ addFactory(new TypicalLengthOnPropertyFacetFactory());
+
+ addFactory(new TypicalLengthFacetOnParameterAnnotationFactory());
+
+ addFactory(new RenderedAsDayBeforeAnnotationOnPropertyFacetFactory());
+
+ addFactory(new RenderedAsDayBeforeFacetOnParameterAnnotationFactory());
// built-in value types for Java language
- addFactory(BooleanPrimitiveValueFacetUsingSemanticsProviderFactory.class);
- addFactory(BooleanWrapperValueFacetUsingSemanticsProviderFactory.class);
- addFactory(BytePrimitiveValueFacetUsingSemanticsProviderFactory.class);
- addFactory(ByteWrapperValueFacetUsingSemanticsProviderFactory.class);
- addFactory(ShortPrimitiveValueFacetUsingSemanticsProviderFactory.class);
- addFactory(ShortWrapperValueFacetUsingSemanticsProviderFactory.class);
- addFactory(IntPrimitiveValueFacetUsingSemanticsProviderFactory.class);
- addFactory(IntWrapperValueFacetUsingSemanticsProviderFactory.class);
- addFactory(LongPrimitiveValueFacetUsingSemanticsProviderFactory.class);
- addFactory(LongWrapperValueFacetUsingSemanticsProviderFactory.class);
- addFactory(FloatPrimitiveValueFacetUsingSemanticsProviderFactory.class);
- addFactory(FloatWrapperValueFacetUsingSemanticsProviderFactory.class);
- addFactory(DoublePrimitiveValueFacetUsingSemanticsProviderFactory.class);
- addFactory(DoubleWrapperValueFacetUsingSemanticsProviderFactory.class);
- addFactory(CharPrimitiveValueFacetUsingSemanticsProviderFactory.class);
- addFactory(CharWrapperValueFacetUsingSemanticsProviderFactory.class);
- addFactory(BigIntegerValueFacetUsingSemanticsProviderFactory.class);
- addFactory(BigDecimalValueFacetUsingSemanticsProviderFactory.class);
- addFactory(JavaSqlDateValueFacetUsingSemanticsProviderFactory.class);
- addFactory(JavaSqlTimeValueFacetUsingSemanticsProviderFactory.class);
- addFactory(JavaUtilDateValueFacetUsingSemanticsProviderFactory.class);
- addFactory(JavaSqlTimeStampValueFacetUsingSemanticsProviderFactory.class);
- addFactory(StringValueFacetUsingSemanticsProviderFactory.class);
- addFactory(URLValueFacetUsingSemanticsProviderFactory.class);
- addFactory(UUIDValueFacetUsingSemanticsProviderFactory.class);
-
- addFactory(JavaAwtImageValueFacetUsingSemanticsProviderFactory.class);
+ addFactory(new BooleanPrimitiveValueFacetUsingSemanticsProviderFactory());
+ addFactory(new BooleanWrapperValueFacetUsingSemanticsProviderFactory());
+ addFactory(new BytePrimitiveValueFacetUsingSemanticsProviderFactory());
+ addFactory(new ByteWrapperValueFacetUsingSemanticsProviderFactory());
+ addFactory(new ShortPrimitiveValueFacetUsingSemanticsProviderFactory());
+ addFactory(new ShortWrapperValueFacetUsingSemanticsProviderFactory());
+ addFactory(new IntPrimitiveValueFacetUsingSemanticsProviderFactory());
+ addFactory(new IntWrapperValueFacetUsingSemanticsProviderFactory());
+ addFactory(new LongPrimitiveValueFacetUsingSemanticsProviderFactory());
+ addFactory(new LongWrapperValueFacetUsingSemanticsProviderFactory());
+ addFactory(new FloatPrimitiveValueFacetUsingSemanticsProviderFactory());
+ addFactory(new FloatWrapperValueFacetUsingSemanticsProviderFactory());
+ addFactory(new DoublePrimitiveValueFacetUsingSemanticsProviderFactory());
+ addFactory(new DoubleWrapperValueFacetUsingSemanticsProviderFactory());
+ addFactory(new CharPrimitiveValueFacetUsingSemanticsProviderFactory());
+ addFactory(new CharWrapperValueFacetUsingSemanticsProviderFactory());
+ addFactory(new BigIntegerValueFacetUsingSemanticsProviderFactory());
+ addFactory(new BigDecimalValueFacetUsingSemanticsProviderFactory());
+ addFactory(new JavaSqlDateValueFacetUsingSemanticsProviderFactory());
+ addFactory(new JavaSqlTimeValueFacetUsingSemanticsProviderFactory());
+ addFactory(new JavaUtilDateValueFacetUsingSemanticsProviderFactory());
+ addFactory(new JavaSqlTimeStampValueFacetUsingSemanticsProviderFactory());
+ addFactory(new StringValueFacetUsingSemanticsProviderFactory());
+ addFactory(new URLValueFacetUsingSemanticsProviderFactory());
+ addFactory(new UUIDValueFacetUsingSemanticsProviderFactory());
+
+ addFactory(new JavaAwtImageValueFacetUsingSemanticsProviderFactory());
// applib values
- addFactory(BlobValueFacetUsingSemanticsProviderFactory.class);
- addFactory(ClobValueFacetUsingSemanticsProviderFactory.class);
- addFactory(DateValueFacetUsingSemanticsProviderFactory.class);
- addFactory(DateTimeValueFacetUsingSemanticsProviderFactory.class);
- addFactory(ColorValueFacetUsingSemanticsProviderFactory.class);
- addFactory(MoneyValueFacetUsingSemanticsProviderFactory.class);
- addFactory(PasswordValueFacetUsingSemanticsProviderFactory.class);
- addFactory(PercentageValueFacetUsingSemanticsProviderFactory.class);
- addFactory(TimeStampValueFacetUsingSemanticsProviderFactory.class);
- addFactory(TimeValueFacetUsingSemanticsProviderFactory.class);
- addFactory(ImageValueFacetUsingSemanticsProviderFactory.class);
+ addFactory(new BlobValueFacetUsingSemanticsProviderFactory());
+ addFactory(new ClobValueFacetUsingSemanticsProviderFactory());
+ addFactory(new DateValueFacetUsingSemanticsProviderFactory());
+ addFactory(new DateTimeValueFacetUsingSemanticsProviderFactory());
+ addFactory(new ColorValueFacetUsingSemanticsProviderFactory());
+ addFactory(new MoneyValueFacetUsingSemanticsProviderFactory());
+ addFactory(new PasswordValueFacetUsingSemanticsProviderFactory());
+ addFactory(new PercentageValueFacetUsingSemanticsProviderFactory());
+ addFactory(new TimeStampValueFacetUsingSemanticsProviderFactory());
+ addFactory(new TimeValueFacetUsingSemanticsProviderFactory());
+ addFactory(new ImageValueFacetUsingSemanticsProviderFactory());
// jodatime values
- addFactory(JodaLocalDateValueFacetUsingSemanticsProviderFactory.class);
- addFactory(JodaLocalDateTimeValueFacetUsingSemanticsProviderFactory.class);
- addFactory(JodaDateTimeValueFacetUsingSemanticsProviderFactory.class);
+ addFactory(new JodaLocalDateValueFacetUsingSemanticsProviderFactory());
+ addFactory(new JodaLocalDateTimeValueFacetUsingSemanticsProviderFactory());
+ addFactory(new JodaDateTimeValueFacetUsingSemanticsProviderFactory());
// written to not trample over TypeOf if already installed
- addFactory(CollectionFacetFactory.class);
+ addFactory(new CollectionFacetFactory());
// must come after CollectionFacetFactory
- addFactory(ParentedFacetSinceCollectionFactory.class);
+ addFactory(new ParentedFacetSinceCollectionFactory());
// so we can dogfood the applib "value" types
- addFactory(ValueFacetAnnotationOrConfigurationFactory.class);
+ addFactory(new ValueFacetAnnotationOrConfigurationFactory());
- addFactory(DisabledFacetOnPropertyDerivedFromImmutableFactory.class);
- addFactory(DisabledFacetOnCollectionDerivedFromImmutableFactory.class);
+ addFactory(new DisabledFacetOnPropertyDerivedFromImmutableFactory());
+ addFactory(new DisabledFacetOnCollectionDerivedFromImmutableFactory());
// should come near the end, after any facets that install PropertySetterFacet have run.
- addFactory(DisabledFacetOnPropertyInferredFactory.class);
+ addFactory(new DisabledFacetOnPropertyInferredFactory());
- addFactory(AuditableFacetMarkerInterfaceFactory.class);
+
+ addFactory(new AuditableFacetMarkerInterfaceFactory());
- addFactory(FacetsFacetAnnotationFactory.class);
+ addFactory(new FacetsFacetAnnotationFactory());
// must be after all named facets and description facets have been installed
- addFactory(TranslationFacetFactory.class);
+ addFactory(new TranslationFacetFactory());
- addFactory(ViewModelSemanticCheckingFacetFactory.class);
+ addFactory(new ViewModelSemanticCheckingFacetFactory());
}
}
http://git-wip-us.apache.org/repos/asf/isis/blob/ec38b4b0/core/metamodel/src/test/java/org/apache/isis/core/metamodel/testspec/ObjectSpecificationStub.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/testspec/ObjectSpecificationStub.java b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/testspec/ObjectSpecificationStub.java
index e995fb5..4c86911 100644
--- a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/testspec/ObjectSpecificationStub.java
+++ b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/testspec/ObjectSpecificationStub.java
@@ -66,7 +66,6 @@ public class ObjectSpecificationStub extends FacetHolderImpl implements ObjectSp
private ObjectSpecId specId;
private Persistability persistable;
- private boolean isEncodeable;
private ServicesInjector servicesInjector;
@@ -268,7 +267,7 @@ public class ObjectSpecificationStub extends FacetHolderImpl implements ObjectSp
@Override
public boolean isEncodeable() {
- return isEncodeable;
+ return false;
}
@Override
http://git-wip-us.apache.org/repos/asf/isis/blob/ec38b4b0/core/runtime/src/main/java/org/apache/isis/core/runtime/system/persistence/PersistenceSessionFactoryMetamodelRefiner.java
----------------------------------------------------------------------
diff --git a/core/runtime/src/main/java/org/apache/isis/core/runtime/system/persistence/PersistenceSessionFactoryMetamodelRefiner.java b/core/runtime/src/main/java/org/apache/isis/core/runtime/system/persistence/PersistenceSessionFactoryMetamodelRefiner.java
index 71a3f26..3933a98 100644
--- a/core/runtime/src/main/java/org/apache/isis/core/runtime/system/persistence/PersistenceSessionFactoryMetamodelRefiner.java
+++ b/core/runtime/src/main/java/org/apache/isis/core/runtime/system/persistence/PersistenceSessionFactoryMetamodelRefiner.java
@@ -41,25 +41,25 @@ public class PersistenceSessionFactoryMetamodelRefiner implements MetaModelRefin
@Override
public void refineProgrammingModel(ProgrammingModel programmingModel, IsisConfiguration configuration) {
programmingModel.addFactory(
- JdoPersistenceCapableAnnotationFacetFactory.class, ProgrammingModel.Position.BEGINNING);
- programmingModel.addFactory(JdoDatastoreIdentityAnnotationFacetFactory.class);
+ new JdoPersistenceCapableAnnotationFacetFactory(), ProgrammingModel.Position.BEGINNING);
+ programmingModel.addFactory(new JdoDatastoreIdentityAnnotationFacetFactory());
- programmingModel.addFactory(JdoPrimaryKeyAnnotationFacetFactory.class);
- programmingModel.addFactory(JdoNotPersistentAnnotationFacetFactory.class);
- programmingModel.addFactory(JdoDiscriminatorAnnotationFacetFactory.class);
- programmingModel.addFactory(JdoVersionAnnotationFacetFactory.class);
+ programmingModel.addFactory(new JdoPrimaryKeyAnnotationFacetFactory());
+ programmingModel.addFactory(new JdoNotPersistentAnnotationFacetFactory());
+ programmingModel.addFactory(new JdoDiscriminatorAnnotationFacetFactory());
+ programmingModel.addFactory(new JdoVersionAnnotationFacetFactory());
- programmingModel.addFactory(JdoQueryAnnotationFacetFactory.class);
+ programmingModel.addFactory(new JdoQueryAnnotationFacetFactory());
- programmingModel.addFactory(BigDecimalDerivedFromJdoColumnAnnotationFacetFactory.class);
- programmingModel.addFactory(MaxLengthDerivedFromJdoColumnAnnotationFacetFactory.class);
+ programmingModel.addFactory(new BigDecimalDerivedFromJdoColumnAnnotationFacetFactory());
+ programmingModel.addFactory(new MaxLengthDerivedFromJdoColumnAnnotationFacetFactory());
// must appear after JdoPrimaryKeyAnnotationFacetFactory (above)
// and also MandatoryFacetOnPropertyMandatoryAnnotationFactory
// and also PropertyAnnotationFactory
- programmingModel.addFactory(MandatoryFromJdoColumnAnnotationFacetFactory.class);
+ programmingModel.addFactory(new MandatoryFromJdoColumnAnnotationFacetFactory());
- programmingModel.addFactory(AuditableAnnotationInJdoApplibFacetFactory.class);
- programmingModel.addFactory(AuditableMarkerInterfaceInJdoApplibFacetFactory.class);
+ programmingModel.addFactory(new AuditableAnnotationInJdoApplibFacetFactory());
+ programmingModel.addFactory(new AuditableMarkerInterfaceInJdoApplibFacetFactory());
}
@Override
http://git-wip-us.apache.org/repos/asf/isis/blob/ec38b4b0/core/runtime/src/test/java/org/apache/isis/core/runtime/system/ObjectMemberAbstractTest.java
----------------------------------------------------------------------
diff --git a/core/runtime/src/test/java/org/apache/isis/core/runtime/system/ObjectMemberAbstractTest.java b/core/runtime/src/test/java/org/apache/isis/core/runtime/system/ObjectMemberAbstractTest.java
index ab56da7..1f52d76 100644
--- a/core/runtime/src/test/java/org/apache/isis/core/runtime/system/ObjectMemberAbstractTest.java
+++ b/core/runtime/src/test/java/org/apache/isis/core/runtime/system/ObjectMemberAbstractTest.java
@@ -100,8 +100,7 @@ public class ObjectMemberAbstractTest {
org.apache.log4j.Logger.getRootLogger().setLevel(org.apache.log4j.Level.OFF);
stubServicesInjector = new ServicesInjector(Lists.<Object>newArrayList(
- mockSpecificationLoader, mockSpecificationLoader
- ));
+ mockSpecificationLoader, mockSpecificationLoader));
context.checking(new Expectations() {{
allowing(mockAuthenticationSessionProvider).getAuthenticationSession();