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 2014/12/29 19:23:52 UTC
isis git commit: ISIS-970: started on the facet factories for
@Collection and @Action.
Repository: isis
Updated Branches:
refs/heads/ISIS-970 4e706794f -> 06c8199a3
ISIS-970: started on the facet factories for @Collection and @Action.
Also renamed XxxFactory -> XxxAnnotationFacetFactory for Xxx=DomainObject,Property,Parameter.
Project: http://git-wip-us.apache.org/repos/asf/isis/repo
Commit: http://git-wip-us.apache.org/repos/asf/isis/commit/06c8199a
Tree: http://git-wip-us.apache.org/repos/asf/isis/tree/06c8199a
Diff: http://git-wip-us.apache.org/repos/asf/isis/diff/06c8199a
Branch: refs/heads/ISIS-970
Commit: 06c8199a31bc04dc39d50f19a0e0118965ae3808
Parents: 4e70679
Author: Dan Haywood <da...@haywood-associates.co.uk>
Authored: Mon Dec 29 18:23:46 2014 +0000
Committer: Dan Haywood <da...@haywood-associates.co.uk>
Committed: Mon Dec 29 18:23:46 2014 +0000
----------------------------------------------------------------------
.../action/ActionAnnotationFacetFactory.java | 65 ++++++++
.../CollectionAnnotationFacetFactory.java | 75 +++++++++
.../collection/CollectionFacetFactory.java | 89 -----------
.../collections/collection/JavaArrayFacet.java | 95 -----------
.../collection/JavaCollectionFacet.java | 85 ----------
.../CollectionFacetFactory.java | 89 +++++++++++
.../javautilcollection/JavaArrayFacet.java | 95 +++++++++++
.../javautilcollection/JavaCollectionFacet.java | 85 ++++++++++
.../ParentedFacetSinceCollectionFactory.java | 2 +-
.../DomainObjectAnnotationFacetFactory.java | 158 +++++++++++++++++++
.../domainobject/DomainObjectFactory.java | 158 -------------------
.../ParameterAnnotationFacetFactory.java | 94 +++++++++++
.../param/parameter/ParameterFactory.java | 94 -----------
.../PropertyAnnotationFacetFactory.java | 125 +++++++++++++++
.../properties/property/PropertyFactory.java | 125 ---------------
.../dflt/ProgrammingModelFacetsJava5.java | 2 +-
.../collections/JavaCollectionFacetTest.java | 2 +-
17 files changed, 789 insertions(+), 649 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/isis/blob/06c8199a/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
new file mode 100644
index 0000000..0cd3927
--- /dev/null
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/action/ActionAnnotationFacetFactory.java
@@ -0,0 +1,65 @@
+/*
+ * 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.actions.action;
+
+import java.lang.reflect.Method;
+import org.apache.isis.applib.annotation.Action;
+import org.apache.isis.core.metamodel.facetapi.FeatureType;
+import org.apache.isis.core.metamodel.facets.Annotations;
+import org.apache.isis.core.metamodel.facets.FacetFactoryAbstract;
+import org.apache.isis.core.metamodel.runtimecontext.ServicesInjector;
+import org.apache.isis.core.metamodel.runtimecontext.ServicesInjectorAware;
+
+public class ActionAnnotationFacetFactory extends FacetFactoryAbstract implements ServicesInjectorAware {
+
+ private ServicesInjector servicesInjector;
+
+ public ActionAnnotationFacetFactory() {
+ super(FeatureType.ACTIONS_ONLY);
+ }
+
+ @Override
+ public void process(final ProcessMethodContext processMethodContext) {
+
+ final Method method = processMethodContext.getMethod();
+ final Action action = Annotations.getAnnotation(method, Action.class);
+ if (action == null) {
+ return;
+ }
+
+// processInteraction(processMethodContext);
+ }
+
+// private void processInteraction(final ProcessMethodContext processMethodContext) {
+// final Method method = processMethodContext.getMethod();
+// final Property property = Annotations.getAnnotation(method, Property.class);
+// final FacetHolder holder = processMethodContext.getFacetHolder();
+//
+// FacetUtil.addFacet(
+// PropertyInteractionFacetForPropertyAnnotation.create(
+// property, servicesInjector, getSpecificationLoader(), holder));
+// }
+
+
+ @Override
+ public void setServicesInjector(final ServicesInjector servicesInjector) {
+ this.servicesInjector = servicesInjector;
+ }
+}
http://git-wip-us.apache.org/repos/asf/isis/blob/06c8199a/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
new file mode 100644
index 0000000..c9ef42b
--- /dev/null
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/collections/collection/CollectionAnnotationFacetFactory.java
@@ -0,0 +1,75 @@
+/*
+ * 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.collections.collection;
+
+import java.lang.reflect.Method;
+import org.apache.isis.applib.annotation.Collection;
+import org.apache.isis.core.metamodel.facetapi.FeatureType;
+import org.apache.isis.core.metamodel.facets.Annotations;
+import org.apache.isis.core.metamodel.facets.FacetFactoryAbstract;
+import org.apache.isis.core.metamodel.runtimecontext.ServicesInjector;
+import org.apache.isis.core.metamodel.runtimecontext.ServicesInjectorAware;
+
+public class CollectionAnnotationFacetFactory extends FacetFactoryAbstract implements ServicesInjectorAware {
+
+ private ServicesInjector servicesInjector;
+
+ public CollectionAnnotationFacetFactory() {
+ super(FeatureType.COLLECTIONS_ONLY);
+ }
+
+ @Override
+ public void process(final ProcessMethodContext processMethodContext) {
+
+ final Method method = processMethodContext.getMethod();
+ final Collection collection = Annotations.getAnnotation(method, Collection.class);
+ if (collection == null) {
+ return;
+ }
+
+// processInteraction(processMethodContext);
+// processDisabled(processMethodContext);
+ }
+
+// private void processInteraction(final ProcessMethodContext processMethodContext) {
+// final Method method = processMethodContext.getMethod();
+// final Property property = Annotations.getAnnotation(method, Property.class);
+// final FacetHolder holder = processMethodContext.getFacetHolder();
+//
+// FacetUtil.addFacet(
+// PropertyInteractionFacetForPropertyAnnotation.create(
+// property, servicesInjector, getSpecificationLoader(), holder));
+// }
+//
+// private void processDisabled(final ProcessMethodContext processMethodContext) {
+// final Method method = processMethodContext.getMethod();
+// final Property property = Annotations.getAnnotation(method, Property.class);
+// final FacetHolder holder = processMethodContext.getFacetHolder();
+//
+// FacetUtil.addFacet(
+// DisabledFacetForPropertyAnnotation.create(property, holder));
+// }
+
+
+ @Override
+ public void setServicesInjector(final ServicesInjector servicesInjector) {
+ this.servicesInjector = servicesInjector;
+ }
+}
http://git-wip-us.apache.org/repos/asf/isis/blob/06c8199a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/collections/collection/CollectionFacetFactory.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/collections/collection/CollectionFacetFactory.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/collections/collection/CollectionFacetFactory.java
deleted file mode 100644
index 0891063..0000000
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/collections/collection/CollectionFacetFactory.java
+++ /dev/null
@@ -1,89 +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.collections.collection;
-
-import org.apache.isis.core.metamodel.adapter.mgr.AdapterManager;
-import org.apache.isis.core.metamodel.adapter.mgr.AdapterManagerAware;
-import org.apache.isis.core.metamodel.facetapi.FacetHolder;
-import org.apache.isis.core.metamodel.facetapi.FeatureType;
-import org.apache.isis.core.metamodel.facets.FacetFactoryAbstract;
-import org.apache.isis.core.metamodel.facets.actcoll.typeof.TypeOfFacet;
-import org.apache.isis.core.metamodel.facets.actcoll.typeof.TypeOfFacetDefaultToObject;
-import org.apache.isis.core.metamodel.facets.actcoll.typeof.TypeOfFacetInferredFromArray;
-import org.apache.isis.core.metamodel.facets.actcoll.typeof.TypeOfFacetInferredFromGenerics;
-import org.apache.isis.core.metamodel.specloader.collectiontyperegistry.CollectionTypeRegistry;
-
-public class CollectionFacetFactory extends FacetFactoryAbstract implements AdapterManagerAware {
-
- private final CollectionTypeRegistry collectionTypeRegistry = new CollectionTypeRegistry();
- private AdapterManager adapterManager;
-
- public CollectionFacetFactory() {
- super(FeatureType.OBJECTS_ONLY);
- }
-
- @Override
- public void process(final ProcessClassContext processClassContaxt) {
-
- if (collectionTypeRegistry.isCollectionType(processClassContaxt.getCls())) {
- processCollectionType(processClassContaxt);
- } else if (collectionTypeRegistry.isArrayType(processClassContaxt.getCls())) {
- processAsArrayType(processClassContaxt);
- }
-
- }
-
- private void processCollectionType(final ProcessClassContext processClassContext) {
- final FacetHolder facetHolder = processClassContext.getFacetHolder();
- final TypeOfFacet typeOfFacet = facetHolder.getFacet(TypeOfFacet.class);
- if (typeOfFacet == null) {
- final Class<?> collectionElementType = collectionElementType(processClassContext.getCls());
- facetHolder.addFacet(collectionElementType != Object.class ? new TypeOfFacetInferredFromGenerics(collectionElementType, facetHolder, getSpecificationLoader()) : new TypeOfFacetDefaultToObject(facetHolder, getSpecificationLoader()));
- } else {
- // nothing
- }
- facetHolder.addFacet(new JavaCollectionFacet(facetHolder, getAdapterManager()));
- return;
- }
-
- private void processAsArrayType(final ProcessClassContext processClassContaxt) {
- final FacetHolder facetHolder = processClassContaxt.getFacetHolder();
- facetHolder.addFacet(new JavaArrayFacet(facetHolder, getAdapterManager()));
- facetHolder.addFacet(new TypeOfFacetInferredFromArray(processClassContaxt.getCls().getComponentType(), facetHolder, getSpecificationLoader()));
- }
-
- private Class<?> collectionElementType(final Class<?> cls) {
- return Object.class;
- }
-
- // //////////////////////////////////////////////////////////////
- // Dependencies (injected)
- // //////////////////////////////////////////////////////////////
-
- public AdapterManager getAdapterManager() {
- return adapterManager;
- }
-
- @Override
- public void setAdapterManager(final AdapterManager adapterManager) {
- this.adapterManager = adapterManager;
- }
-
-}
http://git-wip-us.apache.org/repos/asf/isis/blob/06c8199a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/collections/collection/JavaArrayFacet.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/collections/collection/JavaArrayFacet.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/collections/collection/JavaArrayFacet.java
deleted file mode 100644
index a7b71d2..0000000
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/collections/collection/JavaArrayFacet.java
+++ /dev/null
@@ -1,95 +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.collections.collection;
-
-import java.util.ArrayList;
-import java.util.Collection;
-
-import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
-import org.apache.isis.core.metamodel.adapter.mgr.AdapterManager;
-import org.apache.isis.core.metamodel.facetapi.FacetHolder;
-import org.apache.isis.core.metamodel.facets.collections.CollectionFacetAbstract;
-
-public class JavaArrayFacet extends CollectionFacetAbstract {
-
- private final AdapterManager adapterManager;
-
- public JavaArrayFacet(final FacetHolder holder, final AdapterManager adapterManager) {
- super(holder);
- this.adapterManager = adapterManager;
- }
-
- /**
- * Expected to be called with a {@link ObjectAdapter} wrapping an array.
- */
- @Override
- public void init(final ObjectAdapter collectionAdapter, final ObjectAdapter[] initData) {
- final int length = initData.length;
- final Object[] array = new Object[length];
- for (int i = 0; i < length; i++) {
- array[i] = initData[i].getObject();
- }
- collectionAdapter.replacePojo(array);
- }
-
- /**
- * Expected to be called with a {@link ObjectAdapter} wrapping an array.
- */
- @Override
- public Collection<ObjectAdapter> collection(final ObjectAdapter collectionAdapter) {
- final Object[] array = array(collectionAdapter);
- final ArrayList<ObjectAdapter> objectCollection = new ArrayList<ObjectAdapter>(array.length);
- for (final Object element2 : array) {
- final ObjectAdapter element = getAdapterManager().getAdapterFor(element2);
- objectCollection.add(element);
- }
- return objectCollection;
- }
-
- /**
- * Expected to be called with a {@link ObjectAdapter} wrapping an array.
- */
- @Override
- public ObjectAdapter firstElement(final ObjectAdapter collectionAdapter) {
- final Object[] array = array(collectionAdapter);
- return array.length > 0 ? getAdapterManager().getAdapterFor(array[0]) : null;
- }
-
- /**
- * Expected to be called with a {@link ObjectAdapter} wrapping an array.
- */
- @Override
- public int size(final ObjectAdapter collectionAdapter) {
- return array(collectionAdapter).length;
- }
-
- private Object[] array(final ObjectAdapter collectionAdapter) {
- return (Object[]) collectionAdapter.getObject();
- }
-
- // /////////////////////////////////////////////////////
- // Dependencies (from constructor)
- // /////////////////////////////////////////////////////
-
- private AdapterManager getAdapterManager() {
- return adapterManager;
- }
-
-}
http://git-wip-us.apache.org/repos/asf/isis/blob/06c8199a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/collections/collection/JavaCollectionFacet.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/collections/collection/JavaCollectionFacet.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/collections/collection/JavaCollectionFacet.java
deleted file mode 100644
index a02beb1..0000000
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/collections/collection/JavaCollectionFacet.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.facets.collections.collection;
-
-import java.util.Collection;
-import java.util.Iterator;
-
-import com.google.common.collect.Collections2;
-
-import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
-import org.apache.isis.core.metamodel.adapter.mgr.AdapterManager;
-import org.apache.isis.core.metamodel.facetapi.FacetHolder;
-import org.apache.isis.core.metamodel.facets.collections.CollectionFacetAbstract;
-
-public class JavaCollectionFacet extends CollectionFacetAbstract {
-
- private final AdapterManager adapterManager;
-
- public JavaCollectionFacet(final FacetHolder holder, final AdapterManager adapterManager) {
- super(holder);
- this.adapterManager = adapterManager;
- }
-
- @Override
- @SuppressWarnings("unchecked")
- public Collection<ObjectAdapter> collection(final ObjectAdapter wrappedCollection) {
- final Collection<?> collectionOfUnderlying = collectionOfUnderlying(wrappedCollection);
- return Collections2.transform(collectionOfUnderlying, ObjectAdapter.Functions.adapterForUsing(getAdapterManager()));
- }
-
- @Override
- public ObjectAdapter firstElement(final ObjectAdapter collection) {
- final Iterator<ObjectAdapter> iterator = iterator(collection);
- return iterator.hasNext() ? iterator.next() : null;
- }
-
- @Override
- public int size(final ObjectAdapter collection) {
- return collectionOfUnderlying(collection).size();
- }
-
- @Override
- public void init(final ObjectAdapter collection, final ObjectAdapter[] initData) {
- final Collection<? super Object> javaCollection = collectionOfUnderlying(collection);
- javaCollection.clear();
- for (final ObjectAdapter element : initData) {
- final Object pojo = element.getObject();
- javaCollection.add(pojo);
- }
- }
-
- /**
- * The underlying collection of objects (not {@link ObjectAdapter}s).
- */
- @SuppressWarnings("unchecked")
- private Collection<? super Object> collectionOfUnderlying(final ObjectAdapter wrappedCollection) {
- return (Collection<? super Object>) wrappedCollection.getObject();
- }
-
- // //////////////////////////////////////////////////////////////////////
- // Dependencies (from constructor)
- // //////////////////////////////////////////////////////////////////////
-
- private AdapterManager getAdapterManager() {
- return adapterManager;
- }
-
-}
http://git-wip-us.apache.org/repos/asf/isis/blob/06c8199a/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
new file mode 100644
index 0000000..ae324a5
--- /dev/null
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/collections/javautilcollection/CollectionFacetFactory.java
@@ -0,0 +1,89 @@
+/*
+ * 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.collections.javautilcollection;
+
+import org.apache.isis.core.metamodel.adapter.mgr.AdapterManager;
+import org.apache.isis.core.metamodel.adapter.mgr.AdapterManagerAware;
+import org.apache.isis.core.metamodel.facetapi.FacetHolder;
+import org.apache.isis.core.metamodel.facetapi.FeatureType;
+import org.apache.isis.core.metamodel.facets.FacetFactoryAbstract;
+import org.apache.isis.core.metamodel.facets.actcoll.typeof.TypeOfFacet;
+import org.apache.isis.core.metamodel.facets.actcoll.typeof.TypeOfFacetDefaultToObject;
+import org.apache.isis.core.metamodel.facets.actcoll.typeof.TypeOfFacetInferredFromArray;
+import org.apache.isis.core.metamodel.facets.actcoll.typeof.TypeOfFacetInferredFromGenerics;
+import org.apache.isis.core.metamodel.specloader.collectiontyperegistry.CollectionTypeRegistry;
+
+public class CollectionFacetFactory extends FacetFactoryAbstract implements AdapterManagerAware {
+
+ private final CollectionTypeRegistry collectionTypeRegistry = new CollectionTypeRegistry();
+ private AdapterManager adapterManager;
+
+ public CollectionFacetFactory() {
+ super(FeatureType.OBJECTS_ONLY);
+ }
+
+ @Override
+ public void process(final ProcessClassContext processClassContaxt) {
+
+ if (collectionTypeRegistry.isCollectionType(processClassContaxt.getCls())) {
+ processCollectionType(processClassContaxt);
+ } else if (collectionTypeRegistry.isArrayType(processClassContaxt.getCls())) {
+ processAsArrayType(processClassContaxt);
+ }
+
+ }
+
+ private void processCollectionType(final ProcessClassContext processClassContext) {
+ final FacetHolder facetHolder = processClassContext.getFacetHolder();
+ final TypeOfFacet typeOfFacet = facetHolder.getFacet(TypeOfFacet.class);
+ if (typeOfFacet == null) {
+ final Class<?> collectionElementType = collectionElementType(processClassContext.getCls());
+ facetHolder.addFacet(collectionElementType != Object.class ? new TypeOfFacetInferredFromGenerics(collectionElementType, facetHolder, getSpecificationLoader()) : new TypeOfFacetDefaultToObject(facetHolder, getSpecificationLoader()));
+ } else {
+ // nothing
+ }
+ facetHolder.addFacet(new JavaCollectionFacet(facetHolder, getAdapterManager()));
+ return;
+ }
+
+ private void processAsArrayType(final ProcessClassContext processClassContaxt) {
+ final FacetHolder facetHolder = processClassContaxt.getFacetHolder();
+ facetHolder.addFacet(new JavaArrayFacet(facetHolder, getAdapterManager()));
+ facetHolder.addFacet(new TypeOfFacetInferredFromArray(processClassContaxt.getCls().getComponentType(), facetHolder, getSpecificationLoader()));
+ }
+
+ private Class<?> collectionElementType(final Class<?> cls) {
+ return Object.class;
+ }
+
+ // //////////////////////////////////////////////////////////////
+ // Dependencies (injected)
+ // //////////////////////////////////////////////////////////////
+
+ public AdapterManager getAdapterManager() {
+ return adapterManager;
+ }
+
+ @Override
+ public void setAdapterManager(final AdapterManager adapterManager) {
+ this.adapterManager = adapterManager;
+ }
+
+}
http://git-wip-us.apache.org/repos/asf/isis/blob/06c8199a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/collections/javautilcollection/JavaArrayFacet.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/collections/javautilcollection/JavaArrayFacet.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/collections/javautilcollection/JavaArrayFacet.java
new file mode 100644
index 0000000..a13a8c2
--- /dev/null
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/collections/javautilcollection/JavaArrayFacet.java
@@ -0,0 +1,95 @@
+/*
+ * 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.collections.javautilcollection;
+
+import java.util.ArrayList;
+import java.util.Collection;
+
+import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
+import org.apache.isis.core.metamodel.adapter.mgr.AdapterManager;
+import org.apache.isis.core.metamodel.facetapi.FacetHolder;
+import org.apache.isis.core.metamodel.facets.collections.CollectionFacetAbstract;
+
+public class JavaArrayFacet extends CollectionFacetAbstract {
+
+ private final AdapterManager adapterManager;
+
+ public JavaArrayFacet(final FacetHolder holder, final AdapterManager adapterManager) {
+ super(holder);
+ this.adapterManager = adapterManager;
+ }
+
+ /**
+ * Expected to be called with a {@link ObjectAdapter} wrapping an array.
+ */
+ @Override
+ public void init(final ObjectAdapter collectionAdapter, final ObjectAdapter[] initData) {
+ final int length = initData.length;
+ final Object[] array = new Object[length];
+ for (int i = 0; i < length; i++) {
+ array[i] = initData[i].getObject();
+ }
+ collectionAdapter.replacePojo(array);
+ }
+
+ /**
+ * Expected to be called with a {@link ObjectAdapter} wrapping an array.
+ */
+ @Override
+ public Collection<ObjectAdapter> collection(final ObjectAdapter collectionAdapter) {
+ final Object[] array = array(collectionAdapter);
+ final ArrayList<ObjectAdapter> objectCollection = new ArrayList<ObjectAdapter>(array.length);
+ for (final Object element2 : array) {
+ final ObjectAdapter element = getAdapterManager().getAdapterFor(element2);
+ objectCollection.add(element);
+ }
+ return objectCollection;
+ }
+
+ /**
+ * Expected to be called with a {@link ObjectAdapter} wrapping an array.
+ */
+ @Override
+ public ObjectAdapter firstElement(final ObjectAdapter collectionAdapter) {
+ final Object[] array = array(collectionAdapter);
+ return array.length > 0 ? getAdapterManager().getAdapterFor(array[0]) : null;
+ }
+
+ /**
+ * Expected to be called with a {@link ObjectAdapter} wrapping an array.
+ */
+ @Override
+ public int size(final ObjectAdapter collectionAdapter) {
+ return array(collectionAdapter).length;
+ }
+
+ private Object[] array(final ObjectAdapter collectionAdapter) {
+ return (Object[]) collectionAdapter.getObject();
+ }
+
+ // /////////////////////////////////////////////////////
+ // Dependencies (from constructor)
+ // /////////////////////////////////////////////////////
+
+ private AdapterManager getAdapterManager() {
+ return adapterManager;
+ }
+
+}
http://git-wip-us.apache.org/repos/asf/isis/blob/06c8199a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/collections/javautilcollection/JavaCollectionFacet.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/collections/javautilcollection/JavaCollectionFacet.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/collections/javautilcollection/JavaCollectionFacet.java
new file mode 100644
index 0000000..c07b387
--- /dev/null
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/collections/javautilcollection/JavaCollectionFacet.java
@@ -0,0 +1,85 @@
+/*
+ * 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.collections.javautilcollection;
+
+import java.util.Collection;
+import java.util.Iterator;
+
+import com.google.common.collect.Collections2;
+
+import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
+import org.apache.isis.core.metamodel.adapter.mgr.AdapterManager;
+import org.apache.isis.core.metamodel.facetapi.FacetHolder;
+import org.apache.isis.core.metamodel.facets.collections.CollectionFacetAbstract;
+
+public class JavaCollectionFacet extends CollectionFacetAbstract {
+
+ private final AdapterManager adapterManager;
+
+ public JavaCollectionFacet(final FacetHolder holder, final AdapterManager adapterManager) {
+ super(holder);
+ this.adapterManager = adapterManager;
+ }
+
+ @Override
+ @SuppressWarnings("unchecked")
+ public Collection<ObjectAdapter> collection(final ObjectAdapter wrappedCollection) {
+ final Collection<?> collectionOfUnderlying = collectionOfUnderlying(wrappedCollection);
+ return Collections2.transform(collectionOfUnderlying, ObjectAdapter.Functions.adapterForUsing(getAdapterManager()));
+ }
+
+ @Override
+ public ObjectAdapter firstElement(final ObjectAdapter collection) {
+ final Iterator<ObjectAdapter> iterator = iterator(collection);
+ return iterator.hasNext() ? iterator.next() : null;
+ }
+
+ @Override
+ public int size(final ObjectAdapter collection) {
+ return collectionOfUnderlying(collection).size();
+ }
+
+ @Override
+ public void init(final ObjectAdapter collection, final ObjectAdapter[] initData) {
+ final Collection<? super Object> javaCollection = collectionOfUnderlying(collection);
+ javaCollection.clear();
+ for (final ObjectAdapter element : initData) {
+ final Object pojo = element.getObject();
+ javaCollection.add(pojo);
+ }
+ }
+
+ /**
+ * The underlying collection of objects (not {@link ObjectAdapter}s).
+ */
+ @SuppressWarnings("unchecked")
+ private Collection<? super Object> collectionOfUnderlying(final ObjectAdapter wrappedCollection) {
+ return (Collection<? super Object>) wrappedCollection.getObject();
+ }
+
+ // //////////////////////////////////////////////////////////////////////
+ // Dependencies (from constructor)
+ // //////////////////////////////////////////////////////////////////////
+
+ private AdapterManager getAdapterManager() {
+ return adapterManager;
+ }
+
+}
http://git-wip-us.apache.org/repos/asf/isis/blob/06c8199a/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 2097222..e7032aa 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
@@ -26,7 +26,7 @@ import org.apache.isis.core.metamodel.facets.collections.modify.CollectionFacet;
import org.apache.isis.core.metamodel.facets.object.parented.ParentedFacet;
import org.apache.isis.core.metamodel.progmodel.ProgrammingModel;
import org.apache.isis.core.metamodel.specloader.collectiontyperegistry.CollectionTypeRegistry;
-import org.apache.isis.core.metamodel.facets.collections.collection.CollectionFacetFactory;
+import org.apache.isis.core.metamodel.facets.collections.javautilcollection.CollectionFacetFactory;
/**
* All {@link CollectionTypeRegistry collection types} are intrinsically
http://git-wip-us.apache.org/repos/asf/isis/blob/06c8199a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/domainobject/DomainObjectAnnotationFacetFactory.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/domainobject/DomainObjectAnnotationFacetFactory.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/domainobject/DomainObjectAnnotationFacetFactory.java
new file mode 100644
index 0000000..942eacf
--- /dev/null
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/domainobject/DomainObjectAnnotationFacetFactory.java
@@ -0,0 +1,158 @@
+/*
+ * 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.domainobject;
+
+
+import org.apache.isis.applib.annotation.DomainObject;
+import org.apache.isis.applib.services.HasTransactionId;
+import org.apache.isis.core.commons.config.IsisConfiguration;
+import org.apache.isis.core.commons.config.IsisConfigurationAware;
+import org.apache.isis.core.metamodel.adapter.QuerySubmitter;
+import org.apache.isis.core.metamodel.adapter.QuerySubmitterAware;
+import org.apache.isis.core.metamodel.adapter.mgr.AdapterManager;
+import org.apache.isis.core.metamodel.adapter.mgr.AdapterManagerAware;
+import org.apache.isis.core.metamodel.facetapi.FacetHolder;
+import org.apache.isis.core.metamodel.facetapi.FacetUtil;
+import org.apache.isis.core.metamodel.facetapi.FeatureType;
+import org.apache.isis.core.metamodel.facets.Annotations;
+import org.apache.isis.core.metamodel.facets.FacetFactoryAbstract;
+import org.apache.isis.core.metamodel.runtimecontext.ServicesInjector;
+import org.apache.isis.core.metamodel.runtimecontext.ServicesInjectorAware;
+import org.apache.isis.core.metamodel.spec.SpecificationLoaderAware;
+
+
+public class DomainObjectAnnotationFacetFactory extends FacetFactoryAbstract implements IsisConfigurationAware, AdapterManagerAware, ServicesInjectorAware, SpecificationLoaderAware, QuerySubmitterAware {
+
+ private IsisConfiguration configuration;
+ private AdapterManager adapterManager;
+ private ServicesInjector servicesInjector;
+ private QuerySubmitter querySubmitter;
+
+ public DomainObjectAnnotationFacetFactory() {
+ super(FeatureType.OBJECTS_ONLY);
+ }
+
+ @Override
+ public void process(ProcessClassContext processClassContext) {
+
+ final Class<?> cls = processClassContext.getCls();
+ final DomainObject domainObject = Annotations.getAnnotation(cls, DomainObject.class);
+ if(domainObject == null) {
+ return;
+ }
+
+ processAuditing(processClassContext);
+ processPublishing(processClassContext);
+ processAutoComplete(processClassContext);
+ processBounded(processClassContext);
+ processEditing(processClassContext);
+ processObjectType(processClassContext);
+ processViewModel(processClassContext);
+ }
+
+ private void processAuditing(ProcessClassContext processClassContext) {
+ final Class<?> cls = processClassContext.getCls();
+ final DomainObject domainObject = Annotations.getAnnotation(cls, DomainObject.class);
+ final FacetHolder facetHolder = processClassContext.getFacetHolder();
+
+ //
+ // this rule originally implemented only in AuditableFacetFromConfigurationFactory
+ // but think should apply in general
+ //
+ if(HasTransactionId.class.isAssignableFrom(cls)) {
+ // do not install on any implementation of HasTransactionId
+ // (ie commands, audit entries, published events).
+ return;
+ }
+
+ FacetUtil.addFacet(AuditableFacetForDomainObjectAnnotation.create(domainObject, configuration, facetHolder));
+ }
+
+
+ private void processPublishing(ProcessClassContext processClassContext) {
+ final Class<?> cls = processClassContext.getCls();
+ final DomainObject domainObject = Annotations.getAnnotation(cls, DomainObject.class);
+ final FacetHolder facetHolder = processClassContext.getFacetHolder();
+
+ FacetUtil.addFacet(PublishedObjectFacetForDomainObjectAnnotation.create(domainObject, configuration, facetHolder));
+ }
+
+ private void processAutoComplete(final ProcessClassContext processClassContext) {
+ final Class<?> cls = processClassContext.getCls();
+ final DomainObject domainObject = Annotations.getAnnotation(cls, DomainObject.class);
+ final FacetHolder facetHolder = processClassContext.getFacetHolder();
+
+ FacetUtil.addFacet(AutoCompleteFacetForDomainObjectAnnotation.create(domainObject, getSpecificationLoader(), adapterManager, servicesInjector, facetHolder));
+ }
+
+ private void processBounded(final ProcessClassContext processClassContext) {
+ final Class<?> cls = processClassContext.getCls();
+ final DomainObject domainObject = Annotations.getAnnotation(cls, DomainObject.class);
+ final FacetHolder facetHolder = processClassContext.getFacetHolder();
+
+ FacetUtil.addFacet(ChoicesFacetForDomainObjectAnnotation.create(domainObject, querySubmitter, facetHolder));
+ }
+
+ private void processEditing(final ProcessClassContext processClassContext) {
+ final Class<?> cls = processClassContext.getCls();
+ final DomainObject domainObject = Annotations.getAnnotation(cls, DomainObject.class);
+ final FacetHolder facetHolder = processClassContext.getFacetHolder();
+
+ FacetUtil.addFacet(ImmutableFacetForDomainObjectAnnotation.create(domainObject, configuration, facetHolder));
+ }
+
+ private void processObjectType(final ProcessClassContext processClassContext) {
+ final Class<?> cls = processClassContext.getCls();
+ final DomainObject domainObject = Annotations.getAnnotation(cls, DomainObject.class);
+ final FacetHolder facetHolder = processClassContext.getFacetHolder();
+
+ FacetUtil.addFacet(ObjectSpecIdFacetForDomainObjectAnnotation.create(domainObject, facetHolder));
+ }
+
+ private void processViewModel(final ProcessClassContext processClassContext) {
+ final Class<?> cls = processClassContext.getCls();
+ final DomainObject domainObject = Annotations.getAnnotation(cls, DomainObject.class);
+ final FacetHolder facetHolder = processClassContext.getFacetHolder();
+
+ FacetUtil.addFacet(ViewModelFacetForDomainObjectAnnotation.create(domainObject, getSpecificationLoader(), adapterManager, servicesInjector, facetHolder));
+ }
+
+
+ @Override
+ public void setConfiguration(IsisConfiguration configuration) {
+ this.configuration = configuration;
+ }
+
+
+ @Override
+ public void setAdapterManager(AdapterManager adapterManager) {
+ this.adapterManager = adapterManager;
+ }
+
+ @Override
+ public void setServicesInjector(ServicesInjector servicesInjector) {
+ this.servicesInjector = servicesInjector;
+ }
+
+ @Override
+ public void setQuerySubmitter(final QuerySubmitter querySubmitter) {
+ this.querySubmitter = querySubmitter;
+ }
+
+}
http://git-wip-us.apache.org/repos/asf/isis/blob/06c8199a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/domainobject/DomainObjectFactory.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/domainobject/DomainObjectFactory.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/domainobject/DomainObjectFactory.java
deleted file mode 100644
index dce89b7..0000000
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/domainobject/DomainObjectFactory.java
+++ /dev/null
@@ -1,158 +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.domainobject;
-
-
-import org.apache.isis.applib.annotation.DomainObject;
-import org.apache.isis.applib.services.HasTransactionId;
-import org.apache.isis.core.commons.config.IsisConfiguration;
-import org.apache.isis.core.commons.config.IsisConfigurationAware;
-import org.apache.isis.core.metamodel.adapter.QuerySubmitter;
-import org.apache.isis.core.metamodel.adapter.QuerySubmitterAware;
-import org.apache.isis.core.metamodel.adapter.mgr.AdapterManager;
-import org.apache.isis.core.metamodel.adapter.mgr.AdapterManagerAware;
-import org.apache.isis.core.metamodel.facetapi.FacetHolder;
-import org.apache.isis.core.metamodel.facetapi.FacetUtil;
-import org.apache.isis.core.metamodel.facetapi.FeatureType;
-import org.apache.isis.core.metamodel.facets.Annotations;
-import org.apache.isis.core.metamodel.facets.FacetFactoryAbstract;
-import org.apache.isis.core.metamodel.runtimecontext.ServicesInjector;
-import org.apache.isis.core.metamodel.runtimecontext.ServicesInjectorAware;
-import org.apache.isis.core.metamodel.spec.SpecificationLoaderAware;
-
-
-public class DomainObjectFactory extends FacetFactoryAbstract implements IsisConfigurationAware, AdapterManagerAware, ServicesInjectorAware, SpecificationLoaderAware, QuerySubmitterAware {
-
- private IsisConfiguration configuration;
- private AdapterManager adapterManager;
- private ServicesInjector servicesInjector;
- private QuerySubmitter querySubmitter;
-
- public DomainObjectFactory() {
- super(FeatureType.OBJECTS_ONLY);
- }
-
- @Override
- public void process(ProcessClassContext processClassContext) {
-
- final Class<?> cls = processClassContext.getCls();
- final DomainObject domainObject = Annotations.getAnnotation(cls, DomainObject.class);
- if(domainObject == null) {
- return;
- }
-
- processAuditing(processClassContext);
- processPublishing(processClassContext);
- processAutoComplete(processClassContext);
- processBounded(processClassContext);
- processEditing(processClassContext);
- processObjectType(processClassContext);
- processViewModel(processClassContext);
- }
-
- private void processAuditing(ProcessClassContext processClassContext) {
- final Class<?> cls = processClassContext.getCls();
- final DomainObject domainObject = Annotations.getAnnotation(cls, DomainObject.class);
- final FacetHolder facetHolder = processClassContext.getFacetHolder();
-
- //
- // this rule originally implemented only in AuditableFacetFromConfigurationFactory
- // but think should apply in general
- //
- if(HasTransactionId.class.isAssignableFrom(cls)) {
- // do not install on any implementation of HasTransactionId
- // (ie commands, audit entries, published events).
- return;
- }
-
- FacetUtil.addFacet(AuditableFacetForDomainObjectAnnotation.create(domainObject, configuration, facetHolder));
- }
-
-
- private void processPublishing(ProcessClassContext processClassContext) {
- final Class<?> cls = processClassContext.getCls();
- final DomainObject domainObject = Annotations.getAnnotation(cls, DomainObject.class);
- final FacetHolder facetHolder = processClassContext.getFacetHolder();
-
- FacetUtil.addFacet(PublishedObjectFacetForDomainObjectAnnotation.create(domainObject, configuration, facetHolder));
- }
-
- private void processAutoComplete(final ProcessClassContext processClassContext) {
- final Class<?> cls = processClassContext.getCls();
- final DomainObject domainObject = Annotations.getAnnotation(cls, DomainObject.class);
- final FacetHolder facetHolder = processClassContext.getFacetHolder();
-
- FacetUtil.addFacet(AutoCompleteFacetForDomainObjectAnnotation.create(domainObject, getSpecificationLoader(), adapterManager, servicesInjector, facetHolder));
- }
-
- private void processBounded(final ProcessClassContext processClassContext) {
- final Class<?> cls = processClassContext.getCls();
- final DomainObject domainObject = Annotations.getAnnotation(cls, DomainObject.class);
- final FacetHolder facetHolder = processClassContext.getFacetHolder();
-
- FacetUtil.addFacet(ChoicesFacetForDomainObjectAnnotation.create(domainObject, querySubmitter, facetHolder));
- }
-
- private void processEditing(final ProcessClassContext processClassContext) {
- final Class<?> cls = processClassContext.getCls();
- final DomainObject domainObject = Annotations.getAnnotation(cls, DomainObject.class);
- final FacetHolder facetHolder = processClassContext.getFacetHolder();
-
- FacetUtil.addFacet(ImmutableFacetForDomainObjectAnnotation.create(domainObject, configuration, facetHolder));
- }
-
- private void processObjectType(final ProcessClassContext processClassContext) {
- final Class<?> cls = processClassContext.getCls();
- final DomainObject domainObject = Annotations.getAnnotation(cls, DomainObject.class);
- final FacetHolder facetHolder = processClassContext.getFacetHolder();
-
- FacetUtil.addFacet(ObjectSpecIdFacetForDomainObjectAnnotation.create(domainObject, facetHolder));
- }
-
- private void processViewModel(final ProcessClassContext processClassContext) {
- final Class<?> cls = processClassContext.getCls();
- final DomainObject domainObject = Annotations.getAnnotation(cls, DomainObject.class);
- final FacetHolder facetHolder = processClassContext.getFacetHolder();
-
- FacetUtil.addFacet(ViewModelFacetForDomainObjectAnnotation.create(domainObject, getSpecificationLoader(), adapterManager, servicesInjector, facetHolder));
- }
-
-
- @Override
- public void setConfiguration(IsisConfiguration configuration) {
- this.configuration = configuration;
- }
-
-
- @Override
- public void setAdapterManager(AdapterManager adapterManager) {
- this.adapterManager = adapterManager;
- }
-
- @Override
- public void setServicesInjector(ServicesInjector servicesInjector) {
- this.servicesInjector = servicesInjector;
- }
-
- @Override
- public void setQuerySubmitter(final QuerySubmitter querySubmitter) {
- this.querySubmitter = querySubmitter;
- }
-
-}
http://git-wip-us.apache.org/repos/asf/isis/blob/06c8199a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/parameter/ParameterAnnotationFacetFactory.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/parameter/ParameterAnnotationFacetFactory.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/parameter/ParameterAnnotationFacetFactory.java
new file mode 100644
index 0000000..41c64b8
--- /dev/null
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/parameter/ParameterAnnotationFacetFactory.java
@@ -0,0 +1,94 @@
+/*
+ * 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.param.parameter;
+
+import java.lang.reflect.Method;
+import org.apache.isis.applib.annotation.Parameter;
+import org.apache.isis.core.metamodel.facetapi.FacetHolder;
+import org.apache.isis.core.metamodel.facetapi.FacetUtil;
+import org.apache.isis.core.metamodel.facetapi.FeatureType;
+import org.apache.isis.core.metamodel.facets.Annotations;
+import org.apache.isis.core.metamodel.facets.FacetFactoryAbstract;
+import org.apache.isis.core.metamodel.runtimecontext.ServicesInjector;
+import org.apache.isis.core.metamodel.runtimecontext.ServicesInjectorAware;
+
+public class ParameterAnnotationFacetFactory extends FacetFactoryAbstract implements ServicesInjectorAware {
+
+ private ServicesInjector servicesInjector;
+
+ public ParameterAnnotationFacetFactory() {
+ super(FeatureType.PARAMETERS_ONLY);
+ }
+
+ @Override
+ public void process(final ProcessMethodContext processMethodContext) {
+
+ final Method method = processMethodContext.getMethod();
+ final Parameter parameter = Annotations.getAnnotation(method, Parameter.class);
+ if (parameter == null) {
+ return;
+ }
+
+ processMaxLength(processMethodContext);
+ processMustSatisfy(processMethodContext);
+ processOptional(processMethodContext);
+ processRegEx(processMethodContext);
+ }
+
+ private void processMaxLength(final ProcessMethodContext processMethodContext) {
+ final Method method = processMethodContext.getMethod();
+ final Parameter parameter = Annotations.getAnnotation(method, Parameter.class);
+ final FacetHolder holder = processMethodContext.getFacetHolder();
+
+ FacetUtil.addFacet(
+ MaxLengthFacetForParameterAnnotation.create(parameter, holder));
+ }
+
+ private void processMustSatisfy(final ProcessMethodContext processMethodContext) {
+ final Method method = processMethodContext.getMethod();
+ final Parameter parameter = Annotations.getAnnotation(method, Parameter.class);
+ final FacetHolder holder = processMethodContext.getFacetHolder();
+
+ FacetUtil.addFacet(
+ MustSatisfySpecificationFacetForParameterAnnotation.create(parameter, holder));
+ }
+
+ private void processOptional(final ProcessMethodContext processMethodContext) {
+ final Method method = processMethodContext.getMethod();
+ final Parameter parameter = Annotations.getAnnotation(method, Parameter.class);
+ final FacetHolder holder = processMethodContext.getFacetHolder();
+
+ FacetUtil.addFacet(MandatoryFacetForParameterAnnotation.create(parameter, method, holder));
+ }
+
+ private void processRegEx(final ProcessMethodContext processMethodContext) {
+ final Method method = processMethodContext.getMethod();
+ final Parameter parameter = Annotations.getAnnotation(method, Parameter.class);
+ final FacetHolder holder = processMethodContext.getFacetHolder();
+
+ FacetUtil.addFacet(RegExFacetForParameterAnnotation.create(parameter, holder));
+ }
+
+
+ @Override
+ public void setServicesInjector(final ServicesInjector servicesInjector) {
+ this.servicesInjector = servicesInjector;
+ }
+}
http://git-wip-us.apache.org/repos/asf/isis/blob/06c8199a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/parameter/ParameterFactory.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/parameter/ParameterFactory.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/parameter/ParameterFactory.java
deleted file mode 100644
index bfc6bfa..0000000
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/parameter/ParameterFactory.java
+++ /dev/null
@@ -1,94 +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.param.parameter;
-
-import java.lang.reflect.Method;
-import org.apache.isis.applib.annotation.Parameter;
-import org.apache.isis.core.metamodel.facetapi.FacetHolder;
-import org.apache.isis.core.metamodel.facetapi.FacetUtil;
-import org.apache.isis.core.metamodel.facetapi.FeatureType;
-import org.apache.isis.core.metamodel.facets.Annotations;
-import org.apache.isis.core.metamodel.facets.FacetFactoryAbstract;
-import org.apache.isis.core.metamodel.runtimecontext.ServicesInjector;
-import org.apache.isis.core.metamodel.runtimecontext.ServicesInjectorAware;
-
-public class ParameterFactory extends FacetFactoryAbstract implements ServicesInjectorAware {
-
- private ServicesInjector servicesInjector;
-
- public ParameterFactory() {
- super(FeatureType.PARAMETERS_ONLY);
- }
-
- @Override
- public void process(final ProcessMethodContext processMethodContext) {
-
- final Method method = processMethodContext.getMethod();
- final Parameter parameter = Annotations.getAnnotation(method, Parameter.class);
- if (parameter == null) {
- return;
- }
-
- processMaxLength(processMethodContext);
- processMustSatisfy(processMethodContext);
- processOptional(processMethodContext);
- processRegEx(processMethodContext);
- }
-
- private void processMaxLength(final ProcessMethodContext processMethodContext) {
- final Method method = processMethodContext.getMethod();
- final Parameter parameter = Annotations.getAnnotation(method, Parameter.class);
- final FacetHolder holder = processMethodContext.getFacetHolder();
-
- FacetUtil.addFacet(
- MaxLengthFacetForParameterAnnotation.create(parameter, holder));
- }
-
- private void processMustSatisfy(final ProcessMethodContext processMethodContext) {
- final Method method = processMethodContext.getMethod();
- final Parameter parameter = Annotations.getAnnotation(method, Parameter.class);
- final FacetHolder holder = processMethodContext.getFacetHolder();
-
- FacetUtil.addFacet(
- MustSatisfySpecificationFacetForParameterAnnotation.create(parameter, holder));
- }
-
- private void processOptional(final ProcessMethodContext processMethodContext) {
- final Method method = processMethodContext.getMethod();
- final Parameter parameter = Annotations.getAnnotation(method, Parameter.class);
- final FacetHolder holder = processMethodContext.getFacetHolder();
-
- FacetUtil.addFacet(MandatoryFacetForParameterAnnotation.create(parameter, method, holder));
- }
-
- private void processRegEx(final ProcessMethodContext processMethodContext) {
- final Method method = processMethodContext.getMethod();
- final Parameter parameter = Annotations.getAnnotation(method, Parameter.class);
- final FacetHolder holder = processMethodContext.getFacetHolder();
-
- FacetUtil.addFacet(RegExFacetForParameterAnnotation.create(parameter, holder));
- }
-
-
- @Override
- public void setServicesInjector(final ServicesInjector servicesInjector) {
- this.servicesInjector = servicesInjector;
- }
-}
http://git-wip-us.apache.org/repos/asf/isis/blob/06c8199a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/property/PropertyAnnotationFacetFactory.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/property/PropertyAnnotationFacetFactory.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/property/PropertyAnnotationFacetFactory.java
new file mode 100644
index 0000000..4d8c705
--- /dev/null
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/property/PropertyAnnotationFacetFactory.java
@@ -0,0 +1,125 @@
+/*
+ * 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.properties.property;
+
+import java.lang.reflect.Method;
+import org.apache.isis.applib.annotation.Property;
+import org.apache.isis.core.metamodel.facetapi.FacetHolder;
+import org.apache.isis.core.metamodel.facetapi.FacetUtil;
+import org.apache.isis.core.metamodel.facetapi.FeatureType;
+import org.apache.isis.core.metamodel.facets.Annotations;
+import org.apache.isis.core.metamodel.facets.FacetFactoryAbstract;
+import org.apache.isis.core.metamodel.runtimecontext.ServicesInjector;
+import org.apache.isis.core.metamodel.runtimecontext.ServicesInjectorAware;
+
+public class PropertyAnnotationFacetFactory extends FacetFactoryAbstract implements ServicesInjectorAware {
+
+ private ServicesInjector servicesInjector;
+
+ public PropertyAnnotationFacetFactory() {
+ super(FeatureType.PROPERTIES_ONLY);
+ }
+
+ @Override
+ public void process(final ProcessMethodContext processMethodContext) {
+
+ final Method method = processMethodContext.getMethod();
+ final Property property = Annotations.getAnnotation(method, Property.class);
+ if (property == null) {
+ return;
+ }
+
+ processInteraction(processMethodContext);
+ processDisabled(processMethodContext);
+ processMaxLength(processMethodContext);
+ processMustSatisfy(processMethodContext);
+ processNotPersisted(processMethodContext);
+ processOptional(processMethodContext);
+ processRegEx(processMethodContext);
+ }
+
+ private void processInteraction(final ProcessMethodContext processMethodContext) {
+ final Method method = processMethodContext.getMethod();
+ final Property property = Annotations.getAnnotation(method, Property.class);
+ final FacetHolder holder = processMethodContext.getFacetHolder();
+
+ FacetUtil.addFacet(
+ PropertyInteractionFacetForPropertyAnnotation.create(
+ property, servicesInjector, getSpecificationLoader(), holder));
+ }
+
+ private void processDisabled(final ProcessMethodContext processMethodContext) {
+ final Method method = processMethodContext.getMethod();
+ final Property property = Annotations.getAnnotation(method, Property.class);
+ final FacetHolder holder = processMethodContext.getFacetHolder();
+
+ FacetUtil.addFacet(
+ DisabledFacetForPropertyAnnotation.create(property, holder));
+ }
+
+ private void processMaxLength(final ProcessMethodContext processMethodContext) {
+ final Method method = processMethodContext.getMethod();
+ final Property property = Annotations.getAnnotation(method, Property.class);
+ final FacetHolder holder = processMethodContext.getFacetHolder();
+
+ FacetUtil.addFacet(
+ MaxLengthFacetForPropertyAnnotation.create(property, holder));
+ }
+
+ private void processMustSatisfy(final ProcessMethodContext processMethodContext) {
+ final Method method = processMethodContext.getMethod();
+ final Property property = Annotations.getAnnotation(method, Property.class);
+ final FacetHolder holder = processMethodContext.getFacetHolder();
+
+ FacetUtil.addFacet(
+ MustSatisfySpecificationFacetForPropertyAnnotation.create(property, holder));
+ }
+
+ private void processNotPersisted(final ProcessMethodContext processMethodContext) {
+ final Method method = processMethodContext.getMethod();
+ final Property property = Annotations.getAnnotation(method, Property.class);
+ final FacetHolder holder = processMethodContext.getFacetHolder();
+
+ FacetUtil.addFacet(
+ NotPersistedFacetForPropertyAnnotation.create(property, holder));
+ }
+
+ private void processOptional(final ProcessMethodContext processMethodContext) {
+ final Method method = processMethodContext.getMethod();
+ final Property property = Annotations.getAnnotation(method, Property.class);
+ final FacetHolder holder = processMethodContext.getFacetHolder();
+
+ FacetUtil.addFacet(MandatoryFacetForPropertyAnnotation.create(property, method, holder));
+ }
+
+ private void processRegEx(final ProcessMethodContext processMethodContext) {
+ final Method method = processMethodContext.getMethod();
+ final Property property = Annotations.getAnnotation(method, Property.class);
+ final FacetHolder holder = processMethodContext.getFacetHolder();
+
+ FacetUtil.addFacet(RegExFacetForPropertyAnnotation.create(property, holder));
+ }
+
+
+ @Override
+ public void setServicesInjector(final ServicesInjector servicesInjector) {
+ this.servicesInjector = servicesInjector;
+ }
+}
http://git-wip-us.apache.org/repos/asf/isis/blob/06c8199a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/property/PropertyFactory.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/property/PropertyFactory.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/property/PropertyFactory.java
deleted file mode 100644
index c6acaa9..0000000
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/property/PropertyFactory.java
+++ /dev/null
@@ -1,125 +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.properties.property;
-
-import java.lang.reflect.Method;
-import org.apache.isis.applib.annotation.Property;
-import org.apache.isis.core.metamodel.facetapi.FacetHolder;
-import org.apache.isis.core.metamodel.facetapi.FacetUtil;
-import org.apache.isis.core.metamodel.facetapi.FeatureType;
-import org.apache.isis.core.metamodel.facets.Annotations;
-import org.apache.isis.core.metamodel.facets.FacetFactoryAbstract;
-import org.apache.isis.core.metamodel.runtimecontext.ServicesInjector;
-import org.apache.isis.core.metamodel.runtimecontext.ServicesInjectorAware;
-
-public class PropertyFactory extends FacetFactoryAbstract implements ServicesInjectorAware {
-
- private ServicesInjector servicesInjector;
-
- public PropertyFactory() {
- super(FeatureType.PROPERTIES_ONLY);
- }
-
- @Override
- public void process(final ProcessMethodContext processMethodContext) {
-
- final Method method = processMethodContext.getMethod();
- final Property property = Annotations.getAnnotation(method, Property.class);
- if (property == null) {
- return;
- }
-
- processInteraction(processMethodContext);
- processDisabled(processMethodContext);
- processMaxLength(processMethodContext);
- processMustSatisfy(processMethodContext);
- processNotPersisted(processMethodContext);
- processOptional(processMethodContext);
- processRegEx(processMethodContext);
- }
-
- private void processInteraction(final ProcessMethodContext processMethodContext) {
- final Method method = processMethodContext.getMethod();
- final Property property = Annotations.getAnnotation(method, Property.class);
- final FacetHolder holder = processMethodContext.getFacetHolder();
-
- FacetUtil.addFacet(
- PropertyInteractionFacetForPropertyAnnotation.create(
- property, servicesInjector, getSpecificationLoader(), holder));
- }
-
- private void processDisabled(final ProcessMethodContext processMethodContext) {
- final Method method = processMethodContext.getMethod();
- final Property property = Annotations.getAnnotation(method, Property.class);
- final FacetHolder holder = processMethodContext.getFacetHolder();
-
- FacetUtil.addFacet(
- DisabledFacetForPropertyAnnotation.create(property, holder));
- }
-
- private void processMaxLength(final ProcessMethodContext processMethodContext) {
- final Method method = processMethodContext.getMethod();
- final Property property = Annotations.getAnnotation(method, Property.class);
- final FacetHolder holder = processMethodContext.getFacetHolder();
-
- FacetUtil.addFacet(
- MaxLengthFacetForPropertyAnnotation.create(property, holder));
- }
-
- private void processMustSatisfy(final ProcessMethodContext processMethodContext) {
- final Method method = processMethodContext.getMethod();
- final Property property = Annotations.getAnnotation(method, Property.class);
- final FacetHolder holder = processMethodContext.getFacetHolder();
-
- FacetUtil.addFacet(
- MustSatisfySpecificationFacetForPropertyAnnotation.create(property, holder));
- }
-
- private void processNotPersisted(final ProcessMethodContext processMethodContext) {
- final Method method = processMethodContext.getMethod();
- final Property property = Annotations.getAnnotation(method, Property.class);
- final FacetHolder holder = processMethodContext.getFacetHolder();
-
- FacetUtil.addFacet(
- NotPersistedFacetForPropertyAnnotation.create(property, holder));
- }
-
- private void processOptional(final ProcessMethodContext processMethodContext) {
- final Method method = processMethodContext.getMethod();
- final Property property = Annotations.getAnnotation(method, Property.class);
- final FacetHolder holder = processMethodContext.getFacetHolder();
-
- FacetUtil.addFacet(MandatoryFacetForPropertyAnnotation.create(property, method, holder));
- }
-
- private void processRegEx(final ProcessMethodContext processMethodContext) {
- final Method method = processMethodContext.getMethod();
- final Property property = Annotations.getAnnotation(method, Property.class);
- final FacetHolder holder = processMethodContext.getFacetHolder();
-
- FacetUtil.addFacet(RegExFacetForPropertyAnnotation.create(property, holder));
- }
-
-
- @Override
- public void setServicesInjector(final ServicesInjector servicesInjector) {
- this.servicesInjector = servicesInjector;
- }
-}
http://git-wip-us.apache.org/repos/asf/isis/blob/06c8199a/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 905a82d..d11e65d 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
@@ -43,7 +43,7 @@ import org.apache.isis.core.metamodel.facets.actions.validate.method.ActionValid
import org.apache.isis.core.metamodel.facets.actions.validating.maxlenannot.MaxLengthFacetOnActionAnnotationFactory;
import org.apache.isis.core.metamodel.facets.collections.accessor.CollectionAccessorFacetViaAccessorFactory;
import org.apache.isis.core.metamodel.facets.collections.clear.CollectionClearFacetFactory;
-import org.apache.isis.core.metamodel.facets.collections.collection.CollectionFacetFactory;
+import org.apache.isis.core.metamodel.facets.collections.javautilcollection.CollectionFacetFactory;
import org.apache.isis.core.metamodel.facets.collections.disabled.fromimmutable.DisabledFacetOnCollectionDerivedFromImmutableFactory;
import org.apache.isis.core.metamodel.facets.collections.interaction.CollectionInteractionFacetFactory;
import org.apache.isis.core.metamodel.facets.collections.layout.CollectionLayoutFactory;
http://git-wip-us.apache.org/repos/asf/isis/blob/06c8199a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/collections/JavaCollectionFacetTest.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/collections/JavaCollectionFacetTest.java b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/collections/JavaCollectionFacetTest.java
index 29f4473..1a7120e 100644
--- a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/collections/JavaCollectionFacetTest.java
+++ b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/collections/JavaCollectionFacetTest.java
@@ -36,7 +36,7 @@ import org.junit.Test;
import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
import org.apache.isis.core.metamodel.adapter.mgr.AdapterManager;
import org.apache.isis.core.metamodel.facetapi.FacetHolder;
-import org.apache.isis.core.metamodel.facets.collections.collection.JavaCollectionFacet;
+import org.apache.isis.core.metamodel.facets.collections.javautilcollection.JavaCollectionFacet;
import org.apache.isis.core.unittestsupport.jmocking.JUnitRuleMockery2;
import org.apache.isis.core.unittestsupport.jmocking.JUnitRuleMockery2.Mode;