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 2015/09/11 00:08:35 UTC

[11/50] isis git commit: ISIS-1194: simplifying ObjectSpecificationDefault#createObject

ISIS-1194: simplifying ObjectSpecificationDefault#createObject


Project: http://git-wip-us.apache.org/repos/asf/isis/repo
Commit: http://git-wip-us.apache.org/repos/asf/isis/commit/7da8aa53
Tree: http://git-wip-us.apache.org/repos/asf/isis/tree/7da8aa53
Diff: http://git-wip-us.apache.org/repos/asf/isis/diff/7da8aa53

Branch: refs/heads/master
Commit: 7da8aa53e4604b81c42137454fd4984a3245023e
Parents: 694e3b0
Author: Dan Haywood <da...@haywood-associates.co.uk>
Authored: Thu Sep 10 14:22:33 2015 +0100
Committer: Dan Haywood <da...@haywood-associates.co.uk>
Committed: Thu Sep 10 14:22:33 2015 +0100

----------------------------------------------------------------------
 .../dflt/ObjectSpecificationDefault.java        | 38 +++++++++-----------
 1 file changed, 17 insertions(+), 21 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/isis/blob/7da8aa53/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/dflt/ObjectSpecificationDefault.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/dflt/ObjectSpecificationDefault.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/dflt/ObjectSpecificationDefault.java
index a9d5f43..5ff3e3b 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/dflt/ObjectSpecificationDefault.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/dflt/ObjectSpecificationDefault.java
@@ -418,32 +418,28 @@ public class ObjectSpecificationDefault extends ObjectSpecificationAbstract impl
         }
         
         try {
-            return instantiate(getCorrespondingClass());
-        } catch (final ObjectInstantiationException e) {
-            throw new IsisException("Failed to create instance of type " + getFullIdentifier(), e);
-        }
-    }
+            final Class<?> cls = getCorrespondingClass();
 
-    private <T> T instantiate(final Class<T> cls) throws ObjectInstantiationException {
+            if (Modifier.isAbstract(cls.getModifiers())) {
+                throw new ObjectInstantiationException("Cannot create an instance of an abstract class: " + cls);
+            }
+            final Object newInstance;
+            if (Modifier.isAbstract(cls.getModifiers())) {
+                throw new ObjectInstantiationException("Cannot create an instance of an abstract class: " + cls);
+            }
+            try {
+                newInstance = cls.newInstance();
+            } catch (final IllegalAccessException | InstantiationException e) {
+                throw new ObjectInstantiationException(e);
+            }
 
-        if (Modifier.isAbstract(cls.getModifiers())) {
-            throw new ObjectInstantiationException("Cannot create an instance of an abstract class: " + cls);
-        }
-        final T newInstance;
-        if (Modifier.isAbstract(cls.getModifiers())) {
-            throw new ObjectInstantiationException("Cannot create an instance of an abstract class: " + cls);
-        }
-        try {
-            newInstance = cls.newInstance();
-        } catch (final IllegalAccessException | InstantiationException e) {
-            throw new ObjectInstantiationException(e);
+            getDependencyInjector().injectServicesInto(newInstance);
+            return newInstance;
+        } catch (final ObjectInstantiationException e) {
+            throw new IsisException("Failed to create instance of type " + getFullIdentifier(), e);
         }
-
-        getDependencyInjector().injectServicesInto(newInstance);
-        return newInstance;
     }
 
-
     /**
      * REVIEW: does this behaviour live best here?  Not that sure that it does...
      */