You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@isis.apache.org by ah...@apache.org on 2018/01/22 09:01:52 UTC
[isis] branch master updated: ISIS-1844 make any remaining
unchecked casts explicit
This is an automated email from the ASF dual-hosted git repository.
ahuber pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/isis.git
The following commit(s) were added to refs/heads/master by this push:
new 456901d ISIS-1844 make any remaining unchecked casts explicit
456901d is described below
commit 456901d9c47e49f5c2184abe75eabeafb5065aa7
Author: Andi Huber <ah...@apache.org>
AuthorDate: Mon Jan 22 10:01:51 2018 +0100
ISIS-1844 make any remaining unchecked casts explicit
---
.../java/org/apache/isis/applib/AppManifestAbstract.java | 6 +++---
.../isis/applib/fixturescripts/BuilderScriptAbstract.java | 14 +++++++++-----
.../isis/applib/fixturescripts/FixtureResultList.java | 5 ++++-
.../apache/isis/applib/spec/AbstractSpecification2.java | 4 ++--
4 files changed, 18 insertions(+), 11 deletions(-)
diff --git a/core/applib/src/main/java/org/apache/isis/applib/AppManifestAbstract.java b/core/applib/src/main/java/org/apache/isis/applib/AppManifestAbstract.java
index 905f8ef..e9fe96a 100644
--- a/core/applib/src/main/java/org/apache/isis/applib/AppManifestAbstract.java
+++ b/core/applib/src/main/java/org/apache/isis/applib/AppManifestAbstract.java
@@ -208,7 +208,7 @@ public abstract class AppManifestAbstract implements AppManifest {
public B withAuthMechanism(final String authMechanism) {
this.authMechanism = authMechanism;
- return (B)this;
+ return self();
}
public B withFixtureScripts(final Class<? extends FixtureScript>... fixtures) {
@@ -217,10 +217,10 @@ public abstract class AppManifestAbstract implements AppManifest {
public B withFixtureScripts(final List<Class<? extends FixtureScript>> fixtures) {
if(fixtures == null) {
- return (B)this;
+ return self();
}
this.fixtures.addAll(fixtures);
- return (B)this;
+ return self();
}
List<Class<?>> getAllAdditionalModules() {
diff --git a/core/applib/src/main/java/org/apache/isis/applib/fixturescripts/BuilderScriptAbstract.java b/core/applib/src/main/java/org/apache/isis/applib/fixturescripts/BuilderScriptAbstract.java
index d4bf129..e4fc694 100644
--- a/core/applib/src/main/java/org/apache/isis/applib/fixturescripts/BuilderScriptAbstract.java
+++ b/core/applib/src/main/java/org/apache/isis/applib/fixturescripts/BuilderScriptAbstract.java
@@ -50,19 +50,19 @@ public abstract class BuilderScriptAbstract<T,F extends BuilderScriptAbstract<T,
final FixtureScript parentFixtureScript,
ExecutionContext executionContext) {
- final F onFixture = (F) BuilderScriptAbstract.this;
+ final F onFixture = self();
parentFixtureScript.serviceRegistry.injectServicesInto(onFixture);
execPrereqs(executionContext);
// returns the fixture script that is run
// (either this one, or possibly one previously executed).
- return (F)executionContext.executeChildT(parentFixtureScript, this);
+ return executionContext.executeChildT(parentFixtureScript, this).self();
}
@Override
public void execPrereqs(final ExecutionContext executionContext) {
- final F onFixture = (F) BuilderScriptAbstract.this;
+ final F onFixture = self();
for (final WithPrereqs.Block<T,F> prereq : prereqs) {
prereq.execute(onFixture, executionContext);
}
@@ -95,9 +95,13 @@ public abstract class BuilderScriptAbstract<T,F extends BuilderScriptAbstract<T,
@Override
public F setPrereq(WithPrereqs.Block<T,F> prereq) {
prereqs.add(prereq);
- return (F)this;
+ return self();
}
-
+ @SuppressWarnings("unchecked") //[ahuber] it's safe to assume that this object is of type F
+ protected F self() {
+ return (F)this;
+ }
+
}
diff --git a/core/applib/src/main/java/org/apache/isis/applib/fixturescripts/FixtureResultList.java b/core/applib/src/main/java/org/apache/isis/applib/fixturescripts/FixtureResultList.java
index a3027ca..3c07687 100644
--- a/core/applib/src/main/java/org/apache/isis/applib/fixturescripts/FixtureResultList.java
+++ b/core/applib/src/main/java/org/apache/isis/applib/fixturescripts/FixtureResultList.java
@@ -22,6 +22,9 @@ import java.util.Collections;
import java.util.List;
import java.util.Map;
import java.util.concurrent.atomic.AtomicInteger;
+
+import org.apache.isis.applib.util.Casts;
+
import com.google.common.collect.Lists;
import com.google.common.collect.Maps;
@@ -133,7 +136,7 @@ public class FixtureResultList {
if (!cls.isAssignableFrom(object.getClass())) {
throw new IllegalStateException(String.format("Fixture result exists and contains object but is of type %s, not %s", object.getClass().getName(), cls.getName()));
}
- return (T) object;
+ return Casts.uncheckedCast(object);
}
//endregion
diff --git a/core/applib/src/main/java/org/apache/isis/applib/spec/AbstractSpecification2.java b/core/applib/src/main/java/org/apache/isis/applib/spec/AbstractSpecification2.java
index 0cb7b8b..ff63a00 100644
--- a/core/applib/src/main/java/org/apache/isis/applib/spec/AbstractSpecification2.java
+++ b/core/applib/src/main/java/org/apache/isis/applib/spec/AbstractSpecification2.java
@@ -22,6 +22,7 @@ package org.apache.isis.applib.spec;
import java.lang.reflect.Method;
import org.apache.isis.applib.services.i18n.TranslatableString;
+import org.apache.isis.applib.util.Casts;
/**
* Adapter to make it easy to write {@link Specification}s.
@@ -80,7 +81,6 @@ public abstract class AbstractSpecification2<T> implements Specification2 {
}
@Override
- @SuppressWarnings({ "unchecked" })
public final String satisfies(final Object obj) {
// unused because satisfiesTranslatable will be called instead.
return null;
@@ -101,7 +101,7 @@ public abstract class AbstractSpecification2<T> implements Specification2 {
? null
: TranslatableString.tr("Incorrect type");
}
- final T objAsT = (T) obj;
+ final T objAsT = Casts.uncheckedCast(obj);
return satisfiesTranslatableSafely(objAsT);
}
--
To stop receiving notification emails like this one, please contact
ahuber@apache.org.