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 2017/10/16 19:51:19 UTC

[isis] 04/09: ISIS-1742: rolls up MetaModelService2 and MetaModelService3 into MetaModelService supertype

This is an automated email from the ASF dual-hosted git repository.

danhaywood pushed a commit to branch dev/2.0.0/ISIS-1742-remove-deprecations
in repository https://gitbox.apache.org/repos/asf/isis.git

commit 15b0a939bb2507a7e4a7657e402361522653d112
Author: Dan Haywood <da...@haywood-associates.co.uk>
AuthorDate: Mon Oct 16 20:11:54 2017 +0100

    ISIS-1742: rolls up MetaModelService2 and MetaModelService3 into MetaModelService supertype
---
 .../_rgsvc_metadata-api_MetamodelService.adoc      |  6 +-
 .../apache/isis/applib/DomainObjectContainer.java  |  4 +-
 .../services/metamodel/MetaModelService.java       | 69 ++++++++++++++++++
 .../services/metamodel/MetaModelService2.java      | 82 ----------------------
 .../services/metamodel/MetaModelService3.java      | 46 ------------
 .../applib/services/metamodel/package-info.java    |  2 +-
 .../applib/service/DomainChangeJdoAbstract.java    |  7 +-
 ...ctionInvocationFacetForDomainEventAbstract.java |  8 +--
 .../metamodel/MetaModelServiceDefault.java         |  4 +-
 todo-deprecation-list.txt                          |  6 +-
 10 files changed, 87 insertions(+), 147 deletions(-)

diff --git a/adocs/documentation/src/main/asciidoc/guides/rgsvc/_rgsvc_metadata-api_MetamodelService.adoc b/adocs/documentation/src/main/asciidoc/guides/rgsvc/_rgsvc_metadata-api_MetamodelService.adoc
index 899da01..2cfb8ba 100644
--- a/adocs/documentation/src/main/asciidoc/guides/rgsvc/_rgsvc_metadata-api_MetamodelService.adoc
+++ b/adocs/documentation/src/main/asciidoc/guides/rgsvc/_rgsvc_metadata-api_MetamodelService.adoc
@@ -1,12 +1,12 @@
 [[_rgsvc_metadata-api_MetamodelService]]
-= `MetaModelService3`
+= `MetaModelService`
 :Notice: 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 ag [...]
 :_basedir: ../../
 :_imagesdir: images/
 
 
 
-The `MetaModelService3` service provides access to a number of aspects of Apache Isis' internal metamodel.
+The `MetaModelService` service provides access to a number of aspects of Apache Isis' internal metamodel.
 
 
 == API
@@ -16,7 +16,7 @@ The API defined by the service is:
 
 [source,java]
 ----
-public interface MetaModelService2 {
+public interface MetaModelService {
     Class<?> fromObjectType(String objectType);   // <1>
     String toObjectType(Class<?> domainType);     // <2>
     void rebuild(Class<?> domainType);            // <3>
diff --git a/core/applib/src/main/java/org/apache/isis/applib/DomainObjectContainer.java b/core/applib/src/main/java/org/apache/isis/applib/DomainObjectContainer.java
index 1099cf0..2850c9f 100644
--- a/core/applib/src/main/java/org/apache/isis/applib/DomainObjectContainer.java
+++ b/core/applib/src/main/java/org/apache/isis/applib/DomainObjectContainer.java
@@ -22,7 +22,7 @@ package org.apache.isis.applib;
 import org.apache.isis.applib.annotation.Programmatic;
 import org.apache.isis.applib.services.factory.FactoryService;
 import org.apache.isis.applib.services.message.MessageService;
-import org.apache.isis.applib.services.metamodel.MetaModelService3;
+import org.apache.isis.applib.services.metamodel.MetaModelService;
 import org.apache.isis.applib.services.repository.RepositoryService;
 import org.apache.isis.applib.services.title.TitleService;
 import org.apache.isis.applib.services.user.UserService;
@@ -153,7 +153,7 @@ public interface DomainObjectContainer {
     //region > isViewModel
 
     /**
-     * @deprecated - use {@link org.apache.isis.applib.services.metamodel.MetaModelService3#sortOf(Class, MetaModelService3.Mode)} instead.
+     * @deprecated - use {@link org.apache.isis.applib.services.metamodel.MetaModelService#sortOf(Class, MetaModelService.Mode)} instead.
      */
     @Deprecated
     @Programmatic
diff --git a/core/applib/src/main/java/org/apache/isis/applib/services/metamodel/MetaModelService.java b/core/applib/src/main/java/org/apache/isis/applib/services/metamodel/MetaModelService.java
index c800307..3150f8e 100644
--- a/core/applib/src/main/java/org/apache/isis/applib/services/metamodel/MetaModelService.java
+++ b/core/applib/src/main/java/org/apache/isis/applib/services/metamodel/MetaModelService.java
@@ -22,6 +22,7 @@ import java.util.List;
 
 import org.apache.isis.applib.annotation.DomainObject;
 import org.apache.isis.applib.annotation.Programmatic;
+import org.apache.isis.applib.services.bookmark.Bookmark;
 
 /**
  * This service provides a formal API into Isis' metamodel.
@@ -58,5 +59,73 @@ public interface MetaModelService {
     @Programmatic
     List<DomainMember> export();
 
+    /**
+     * @deprecated - use {@link #sortOf(Class, MetaModelService.Mode)}
+     */
+    @Deprecated
+    @Programmatic
+    Sort sortOf(Class<?> domainType);
+
+    /**
+     * @deprecated - use {@link #sortOf(Bookmark, MetaModelService.Mode)}
+     */
+    @Deprecated
+    @Programmatic
+    Sort sortOf(Bookmark bookmark);
+
+    @Programmatic
+    Sort sortOf(Class<?> domainType, Mode mode);
+
+    @Programmatic
+    Sort sortOf(Bookmark bookmark, Mode mode);
+
+    enum Sort {
+        VIEW_MODEL,
+        JDO_ENTITY,
+        DOMAIN_SERVICE,
+        MIXIN,
+        VALUE,
+        COLLECTION,
+        UNKNOWN;
+
+        public boolean isDomainService() {
+            return this == DOMAIN_SERVICE;
+        }
+
+        public boolean isMixin() {
+            return this == MIXIN;
+        }
+
+        public boolean isViewModel() {
+            return this == VIEW_MODEL;
+        }
+
+        public boolean isValue() {
+            return this == VALUE;
+        }
+
+        public boolean isCollection() {
+            return this == COLLECTION;
+        }
+
+        public boolean isJdoEntity() {
+            return this == JDO_ENTITY;
+        }
+
+        public boolean isUnknown() {
+            return this == UNKNOWN;
+        }
+
+    }
 
+    enum Mode {
+        /**
+         * If the {@link #sortOf(Class, Mode) sort of} object type is unknown, then throw an exception.
+         */
+        STRICT,
+        /**
+         * If the {@link #sortOf(Class, Mode) sort of} object type is unknown, then return {@link Sort#UNKNOWN}.
+         */
+        RELAXED
+    }
 }
diff --git a/core/applib/src/main/java/org/apache/isis/applib/services/metamodel/MetaModelService2.java b/core/applib/src/main/java/org/apache/isis/applib/services/metamodel/MetaModelService2.java
deleted file mode 100644
index 1ffd3f9..0000000
--- a/core/applib/src/main/java/org/apache/isis/applib/services/metamodel/MetaModelService2.java
+++ /dev/null
@@ -1,82 +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.applib.services.metamodel;
-
-import org.apache.isis.applib.annotation.Programmatic;
-import org.apache.isis.applib.services.bookmark.Bookmark;
-
-/**
- * This service provides a formal API into Isis' metamodel.
- */
-public interface MetaModelService2 extends MetaModelService {
-
-    enum Sort {
-        VIEW_MODEL,
-        JDO_ENTITY,
-        DOMAIN_SERVICE,
-        MIXIN,
-        VALUE,
-        COLLECTION,
-        UNKNOWN;
-
-        public boolean isDomainService() {
-            return this == DOMAIN_SERVICE;
-        }
-
-        public boolean isMixin() {
-            return this == MIXIN;
-        }
-
-        public boolean isViewModel() {
-            return this == VIEW_MODEL;
-        }
-
-        public boolean isValue() {
-            return this == VALUE;
-        }
-
-        public boolean isCollection() {
-            return this == COLLECTION;
-        }
-
-        public boolean isJdoEntity() {
-            return this == JDO_ENTITY;
-        }
-
-        public boolean isUnknown() {
-            return this == UNKNOWN;
-        }
-
-    }
-
-    /**
-     * @deprecated - use {@link MetaModelService3#sortOf(Class, org.apache.isis.applib.services.metamodel.MetaModelService3.Mode)}
-     */
-    @Deprecated
-    @Programmatic
-    Sort sortOf(final Class<?> domainType);
-
-    /**
-     * @deprecated - use {@link MetaModelService3#sortOf(Bookmark, org.apache.isis.applib.services.metamodel.MetaModelService3.Mode)}
-     */
-    @Deprecated
-    @Programmatic
-    Sort sortOf(final Bookmark bookmark);
-
-}
diff --git a/core/applib/src/main/java/org/apache/isis/applib/services/metamodel/MetaModelService3.java b/core/applib/src/main/java/org/apache/isis/applib/services/metamodel/MetaModelService3.java
deleted file mode 100644
index 008aad1..0000000
--- a/core/applib/src/main/java/org/apache/isis/applib/services/metamodel/MetaModelService3.java
+++ /dev/null
@@ -1,46 +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.applib.services.metamodel;
-
-import org.apache.isis.applib.annotation.Programmatic;
-import org.apache.isis.applib.services.bookmark.Bookmark;
-
-/**
- * This service provides a formal API into Isis' metamodel.
- */
-public interface MetaModelService3 extends MetaModelService2 {
-
-    enum Mode {
-        /**
-         * If the {@link #sortOf(Class, Mode) sort of} object type is unknown, then throw an exception.
-         */
-        STRICT,
-        /**
-         * If the {@link #sortOf(Class, Mode) sort of} object type is unknown, then return {@link Sort#UNKNOWN}.
-         */
-        RELAXED
-    }
-
-    @Programmatic
-    Sort sortOf(final Class<?> domainType, final Mode mode);
-
-    @Programmatic
-    Sort sortOf(final Bookmark bookmark, final Mode mode);
-
-}
diff --git a/core/applib/src/main/java/org/apache/isis/applib/services/metamodel/package-info.java b/core/applib/src/main/java/org/apache/isis/applib/services/metamodel/package-info.java
index 383759b..e1b86d7 100644
--- a/core/applib/src/main/java/org/apache/isis/applib/services/metamodel/package-info.java
+++ b/core/applib/src/main/java/org/apache/isis/applib/services/metamodel/package-info.java
@@ -18,7 +18,7 @@
  */
 
 /**
- * The {@link org.apache.isis.applib.services.metamodel.MetaModelService3} service provides access to a number of
+ * The {@link org.apache.isis.applib.services.metamodel.MetaModelService} service provides access to a number of
  * aspects of Apache Isis' internal metamodel.
  * 
  * @see <a href="http://isis.apache.org/guides/rgsvc/rgsvc.html#_rgsvc_metadata-api_MetamodelService">Reference guide</a>
diff --git a/core/applib/src/main/java/org/apache/isis/objectstore/jdo/applib/service/DomainChangeJdoAbstract.java b/core/applib/src/main/java/org/apache/isis/objectstore/jdo/applib/service/DomainChangeJdoAbstract.java
index a41b1b3..61f0b74 100644
--- a/core/applib/src/main/java/org/apache/isis/objectstore/jdo/applib/service/DomainChangeJdoAbstract.java
+++ b/core/applib/src/main/java/org/apache/isis/objectstore/jdo/applib/service/DomainChangeJdoAbstract.java
@@ -38,8 +38,7 @@ import org.apache.isis.applib.annotation.Where;
 import org.apache.isis.applib.services.bookmark.Bookmark;
 import org.apache.isis.applib.services.bookmark.BookmarkService;
 import org.apache.isis.applib.services.message.MessageService;
-import org.apache.isis.applib.services.metamodel.MetaModelService2;
-import org.apache.isis.applib.services.metamodel.MetaModelService3;
+import org.apache.isis.applib.services.metamodel.MetaModelService;
 import org.apache.isis.applib.services.publish.PublisherService;
 import org.apache.isis.applib.util.ObjectContracts;
 
@@ -268,7 +267,7 @@ public abstract class DomainChangeJdoAbstract {
         if (targetObject == null) {
             return null;
         }
-        final MetaModelService2.Sort sortOfObject = metaModelService.sortOf(getTarget(), MetaModelService3.Mode.RELAXED);
+        final MetaModelService.Sort sortOfObject = metaModelService.sortOf(getTarget(), MetaModelService.Mode.RELAXED);
         return !(sortOfObject.isViewModel() || sortOfObject.isJdoEntity())
                 ? "Can only open view models or entities"
                 : null;
@@ -381,6 +380,6 @@ public abstract class DomainChangeJdoAbstract {
     protected MessageService messageService;
 
     @javax.inject.Inject
-    protected MetaModelService3 metaModelService;
+    protected MetaModelService metaModelService;
 
 }
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/action/invocation/ActionInvocationFacetForDomainEventAbstract.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/action/invocation/ActionInvocationFacetForDomainEventAbstract.java
index 844a46e..020b553 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/action/invocation/ActionInvocationFacetForDomainEventAbstract.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/action/invocation/ActionInvocationFacetForDomainEventAbstract.java
@@ -46,7 +46,7 @@ import org.apache.isis.applib.services.eventbus.AbstractDomainEvent;
 import org.apache.isis.applib.services.eventbus.ActionDomainEvent;
 import org.apache.isis.applib.services.iactn.Interaction;
 import org.apache.isis.applib.services.iactn.InteractionContext;
-import org.apache.isis.applib.services.metamodel.MetaModelService2;
+import org.apache.isis.applib.services.metamodel.MetaModelService;
 import org.apache.isis.applib.services.queryresultscache.QueryResultsCache;
 import org.apache.isis.applib.services.repository.RepositoryService;
 import org.apache.isis.applib.services.xactn.TransactionService;
@@ -450,7 +450,7 @@ public abstract class ActionInvocationFacetForDomainEventAbstract
         }
 
         final Class<?> domainType = resultAdapter.getSpecification().getCorrespondingClass();
-        final MetaModelService2.Sort sort = getMetaModelService().sortOf(domainType);
+        final MetaModelService.Sort sort = getMetaModelService().sortOf(domainType);
         switch (sort) {
         case JDO_ENTITY:
             final Object domainObject = resultAdapter.getObject();
@@ -470,8 +470,8 @@ public abstract class ActionInvocationFacetForDomainEventAbstract
         }
     }
 
-    private MetaModelService2 getMetaModelService() {
-        return servicesInjector.lookupServiceElseFail(MetaModelService2.class);
+    private MetaModelService getMetaModelService() {
+        return servicesInjector.lookupServiceElseFail(MetaModelService.class);
     }
 
     private TransactionService getTransactionService() {
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/metamodel/MetaModelServiceDefault.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/metamodel/MetaModelServiceDefault.java
index 66b9a4a..f89277c 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/metamodel/MetaModelServiceDefault.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/metamodel/MetaModelServiceDefault.java
@@ -34,7 +34,7 @@ import org.apache.isis.applib.annotation.Programmatic;
 import org.apache.isis.applib.services.bookmark.Bookmark;
 import org.apache.isis.applib.services.grid.GridService;
 import org.apache.isis.applib.services.metamodel.DomainMember;
-import org.apache.isis.applib.services.metamodel.MetaModelService3;
+import org.apache.isis.applib.services.metamodel.MetaModelService;
 import org.apache.isis.core.metamodel.facets.object.objectspecid.ObjectSpecIdFacet;
 import org.apache.isis.core.metamodel.spec.ObjectSpecId;
 import org.apache.isis.core.metamodel.spec.ObjectSpecification;
@@ -49,7 +49,7 @@ import org.apache.isis.core.metamodel.specloader.SpecificationLoader;
         nature = NatureOfService.DOMAIN,
         menuOrder = "" + Integer.MAX_VALUE
 )
-public class MetaModelServiceDefault implements MetaModelService3 {
+public class MetaModelServiceDefault implements MetaModelService {
 
     @SuppressWarnings("unused")
     private final static Logger LOG = LoggerFactory.getLogger(MetaModelServiceDefault.class);
diff --git a/todo-deprecation-list.txt b/todo-deprecation-list.txt
index d3061b6..5b77fbe 100644
--- a/todo-deprecation-list.txt
+++ b/todo-deprecation-list.txt
@@ -17,9 +17,6 @@ org.apache.isis.applib.clock
 org.apache.isis.applib.services.memento  (19 usages found)
     MementoService.java - remove entire service (previously to support view models, but now @ViewModel and JAXB)
 
-org.apache.isis.applib.services.metamodel
-    MetaModelService2.java - push down to subtype, retain overloads for now
-
 
 
 
@@ -417,6 +414,9 @@ org.apache.isis.applib.services.eventbus
     PropertyChangedEvent.java - remove
     PropertyInteractionEvent.java - remove
 
+org.apache.isis.applib.services.metamodel
+    MetaModelService2.java and MetaModelService3 - pulled up to MetaModelService supertype
+
 
 
 

-- 
To stop receiving notification emails like this one, please contact
"commits@isis.apache.org" <co...@isis.apache.org>.