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 b240cc3 ISIS-1844 make any unchecked casts explicit b240cc3 is described below commit b240cc3a5c339df2231bc8b75c930e0ec6c91f94 Author: Andi Huber <ahu...@apache.org> AuthorDate: Mon Jan 22 10:00:40 2018 +0100 ISIS-1844 make any unchecked casts explicit --- .../org/apache/isis/applib/ModuleOrBuilderAbstract.java | 2 +- .../apache/isis/applib/fixturescripts/FixtureScript.java | 15 ++++++++------- .../org/apache/isis/applib/services/jaxb/JaxbService.java | 5 +++-- .../services/queryresultscache/QueryResultsCache.java | 4 ++-- .../main/java/org/apache/isis/applib/util/JaxbUtil.java | 2 +- .../java/org/apache/isis/applib/util/ObjectContracts.java | 8 ++------ 6 files changed, 17 insertions(+), 19 deletions(-) diff --git a/core/applib/src/main/java/org/apache/isis/applib/ModuleOrBuilderAbstract.java b/core/applib/src/main/java/org/apache/isis/applib/ModuleOrBuilderAbstract.java index a0a6ecf..ab4b31d 100644 --- a/core/applib/src/main/java/org/apache/isis/applib/ModuleOrBuilderAbstract.java +++ b/core/applib/src/main/java/org/apache/isis/applib/ModuleOrBuilderAbstract.java @@ -128,7 +128,7 @@ abstract class ModuleOrBuilderAbstract<B extends ModuleOrBuilderAbstract<B>> { // -- HELPER @SuppressWarnings("unchecked") //[ahuber] it's safe to assume this object is an instance of B - private B self() { + protected B self() { return (B) this; } diff --git a/core/applib/src/main/java/org/apache/isis/applib/fixturescripts/FixtureScript.java b/core/applib/src/main/java/org/apache/isis/applib/fixturescripts/FixtureScript.java index 872f7ad..da8cef9 100644 --- a/core/applib/src/main/java/org/apache/isis/applib/fixturescripts/FixtureScript.java +++ b/core/applib/src/main/java/org/apache/isis/applib/fixturescripts/FixtureScript.java @@ -49,6 +49,7 @@ import org.apache.isis.applib.services.sessmgmt.SessionManagementService; import org.apache.isis.applib.services.user.UserService; import org.apache.isis.applib.services.wrapper.WrapperFactory; import org.apache.isis.applib.services.xactn.TransactionService; +import org.apache.isis.applib.util.Casts; @ViewModelLayout(named="Script") public abstract class FixtureScript @@ -627,7 +628,7 @@ public abstract class FixtureScript return childFixtureScript; } else { trace(childFixtureScript, As.SKIP); - return (T)previouslyExecutedScript; + return Casts.uncheckedCast(previouslyExecutedScript); } case EXECUTE_ONCE_BY_VALUE: @@ -675,7 +676,7 @@ public abstract class FixtureScript return childFixtureScript; } else { trace(childFixtureScript, As.SKIP); - return (T)previouslyExecutedScript; + return Casts.uncheckedCast(previouslyExecutedScript); } } @@ -771,11 +772,11 @@ public abstract class FixtureScript } @Programmatic public <T> T getUserData(final Class<T> cls) { - return (T) userData.get(cls); + return Casts.uncheckedCast(userData.get(cls)); } @Programmatic public <T> T clearUserData(final Class<T> cls) { - return (T) userData.remove(cls); + return Casts.uncheckedCast(userData.remove(cls)); } } @@ -790,7 +791,7 @@ public abstract class FixtureScript } private <T> T valueFor(final String parameterName, final ExecutionContext ec, final T defaultValue) { - final Class<T> cls = (Class<T>) defaultValue.getClass(); + final Class<T> cls = Casts.uncheckedCast(defaultValue.getClass()); final T value = readParam(parameterName, ec, cls); if(value != null) { return (T) value; } @@ -818,7 +819,7 @@ public abstract class FixtureScript Method method; try { method = this.getClass().getMethod("get" + uppercase(parameterName)); - value = (T)method.invoke(this); + value = Casts.uncheckedCast(method.invoke(this)); } catch (NoSuchMethodException | InvocationTargetException | IllegalAccessException ignored) { } @@ -827,7 +828,7 @@ public abstract class FixtureScript if (cls == Boolean.class || cls == boolean.class) { try { method = this.getClass().getMethod("is" + uppercase(parameterName)); - value = (T)method.invoke(this); + value = Casts.uncheckedCast(method.invoke(this)); } catch (NoSuchMethodException | InvocationTargetException | IllegalAccessException ignored) { } diff --git a/core/applib/src/main/java/org/apache/isis/applib/services/jaxb/JaxbService.java b/core/applib/src/main/java/org/apache/isis/applib/services/jaxb/JaxbService.java index 2a359e3..566679c 100644 --- a/core/applib/src/main/java/org/apache/isis/applib/services/jaxb/JaxbService.java +++ b/core/applib/src/main/java/org/apache/isis/applib/services/jaxb/JaxbService.java @@ -34,6 +34,7 @@ import org.apache.isis.applib.DomainObjectContainer; import org.apache.isis.applib.NonRecoverableException; import org.apache.isis.applib.annotation.Programmatic; import org.apache.isis.applib.services.dto.Dto_downloadXsd; +import org.apache.isis.applib.util.Casts; import org.apache.isis.applib.util.Streams; import com.google.common.collect.Maps; @@ -132,7 +133,7 @@ public interface JaxbService { public <T> T fromXml(final Class<T> domainClass, final String xml, final Map<String, Object> unmarshallerProperties) { try { final JAXBContext context = JAXBContext.newInstance(domainClass); - return (T) fromXml(context, xml, unmarshallerProperties); + return Casts.uncheckedCast(fromXml(context, xml, unmarshallerProperties)); } catch (final JAXBException ex) { throw new NonRecoverableException("Error unmarshalling XML to class '" + domainClass.getName() + "'", ex); @@ -177,7 +178,7 @@ public interface JaxbService { String annotationExceptionMessages = null; try { final Method getErrorsMethod = exClass.getMethod("getErrors"); - errors = (List<? extends Exception>) getErrorsMethod.invoke(ex); + errors = Casts.uncheckedCast(getErrorsMethod.invoke(ex)); annotationExceptionMessages = ": " + Streams.stream(errors) diff --git a/core/applib/src/main/java/org/apache/isis/applib/services/queryresultscache/QueryResultsCache.java b/core/applib/src/main/java/org/apache/isis/applib/services/queryresultscache/QueryResultsCache.java index 7c3f7ea..91ee4e3 100644 --- a/core/applib/src/main/java/org/apache/isis/applib/services/queryresultscache/QueryResultsCache.java +++ b/core/applib/src/main/java/org/apache/isis/applib/services/queryresultscache/QueryResultsCache.java @@ -35,6 +35,7 @@ import org.apache.isis.applib.annotation.Programmatic; import org.apache.isis.applib.fixturescripts.events.FixturesInstalledEvent; import org.apache.isis.applib.fixturescripts.events.FixturesInstallingEvent; import org.apache.isis.applib.services.WithTransactionScope; +import org.apache.isis.applib.util.Casts; /** * This service (API and implementation) provides a mechanism by which idempotent query results can be cached for the duration of an interaction. @@ -154,7 +155,6 @@ public class QueryResultsCache implements WithTransactionScope { } @Programmatic - @SuppressWarnings("unchecked") public <T> T execute(final Callable<T> callable, final Key cacheKey) { if(control.isFixturesInstalling()) { try { @@ -171,7 +171,7 @@ public class QueryResultsCache implements WithTransactionScope { final Value<?> cacheValue = cache.get(cacheKey); logHitOrMiss(cacheKey, cacheValue); if(cacheValue != null) { - return (T) cacheValue.getResult(); + return Casts.uncheckedCast(cacheValue.getResult()); } // cache miss, so get the result... diff --git a/core/applib/src/main/java/org/apache/isis/applib/util/JaxbUtil.java b/core/applib/src/main/java/org/apache/isis/applib/util/JaxbUtil.java index b2cd974..00a43bc 100644 --- a/core/applib/src/main/java/org/apache/isis/applib/util/JaxbUtil.java +++ b/core/applib/src/main/java/org/apache/isis/applib/util/JaxbUtil.java @@ -49,7 +49,7 @@ public class JaxbUtil { Unmarshaller un = null; try { un = getJaxbContext(dtoClass).createUnmarshaller(); - return (T) un.unmarshal(reader); + return Casts.uncheckedCast(un.unmarshal(reader)); } catch (JAXBException e) { throw new RuntimeException(e); } diff --git a/core/applib/src/main/java/org/apache/isis/applib/util/ObjectContracts.java b/core/applib/src/main/java/org/apache/isis/applib/util/ObjectContracts.java index 0c55ff1..a40236e 100644 --- a/core/applib/src/main/java/org/apache/isis/applib/util/ObjectContracts.java +++ b/core/applib/src/main/java/org/apache/isis/applib/util/ObjectContracts.java @@ -41,7 +41,6 @@ public class ObjectContracts { * @param propertyNames - the property name or names, CSV format. If multiple properties, use the {@link #compare(Object, Object, String...) varargs} overloaded version of this method. */ @Deprecated - @SuppressWarnings("unchecked") public static <T> int compare(final T p, final T q, final String propertyNames) { final Iterable<String> propertyNamesIter = csvToIterable(propertyNames); return compare(p, q, propertyNamesIter); @@ -53,7 +52,6 @@ public class ObjectContracts { * @deprecated - please be aware that this utility heavily uses reflection. We don't actually intend to deprecate this method (it's useful while prototyping), but we wanted to bring this to your attention! */ @Deprecated - @SuppressWarnings("unchecked") public static <T> int compare(final T p, final T q, final String... propertyNames) { final Iterable<String> propertyNamesIter = varargsToIterable(propertyNames); return compare(p, q, propertyNamesIter); @@ -70,8 +68,8 @@ public class ObjectContracts { final Iterable<Clause> clauses = clausesFor(propertyNamesIter); ComparisonChain chain = ComparisonChain.start(); for (final Clause clause : clauses) { - final Comparable<T> propertyValueOfP = (Comparable<T>) clause.getValueOf(p); - final Comparable<T> propertyValueOfQ = (Comparable<T>) clause.getValueOf(q); + final Comparable<T> propertyValueOfP = Casts.uncheckedCast(clause.getValueOf(p)); + final Comparable<T> propertyValueOfQ = Casts.uncheckedCast(clause.getValueOf(q)); chain = chain.compare(propertyValueOfP, propertyValueOfQ, clause.getDirection().getOrdering()); } return chain.result(); @@ -85,7 +83,6 @@ public class ObjectContracts { * @param propertyNames - the property name or names, CSV format. If multiple properties, use the {@link #compareBy(String...)} varargs} overloaded version of this method. */ @Deprecated - @SuppressWarnings("unchecked") public static <T> Comparator<T> compareBy(final String propertyNames){ return (p, q) -> compare(p, q, propertyNames); } @@ -94,7 +91,6 @@ public class ObjectContracts { * @deprecated - please be aware that this utility heavily uses reflection. We don't actually intend to deprecate this method (it's useful while prototyping), but we wanted to bring this to your attention! */ @Deprecated - @SuppressWarnings("unchecked") public static <T> Comparator<T> compareBy(final String... propertyNames){ return (p, q) -> compare(p, q, propertyNames); } -- To stop receiving notification emails like this one, please contact ahu...@apache.org.