From 267e438ac0c226cb8e7c8f155fd510a961c3bfd3 Mon Sep 17 00:00:00 2001 From: moparisthebest Date: Sat, 9 Feb 2019 00:16:21 -0500 Subject: [PATCH] Remove JdbcMapper.WarnOnUnusedParams param in favor of prefixing unused params with _ --- .../java/com/moparisthebest/jdbc/codegen/JdbcMapper.java | 7 ------- .../moparisthebest/jdbc/codegen/JdbcMapperProcessor.java | 6 +++--- .../java/com/moparisthebest/jdbc/codegen/PersonDAO.java | 3 +-- .../com/moparisthebest/jdbc/codegen/PrestoPersonDAO.java | 3 +-- 4 files changed, 5 insertions(+), 14 deletions(-) diff --git a/common/src/main/java/com/moparisthebest/jdbc/codegen/JdbcMapper.java b/common/src/main/java/com/moparisthebest/jdbc/codegen/JdbcMapper.java index 7844fb0..a6f9dd5 100644 --- a/common/src/main/java/com/moparisthebest/jdbc/codegen/JdbcMapper.java +++ b/common/src/main/java/com/moparisthebest/jdbc/codegen/JdbcMapper.java @@ -66,13 +66,6 @@ public interface JdbcMapper extends Closeable { String arrayStringTypeName() default ""; } - @Retention(RetentionPolicy.SOURCE) - @Target({ElementType.METHOD}) - /** - * Instead of a compile-time error this will only warn on unused params, mainly for debugging or presenting an unfinished API - */ - public @interface WarnOnUnusedParams {} - @Retention(RetentionPolicy.SOURCE) @Target({ElementType.METHOD}) /** diff --git a/jdbcmapper/src/main/java/com/moparisthebest/jdbc/codegen/JdbcMapperProcessor.java b/jdbcmapper/src/main/java/com/moparisthebest/jdbc/codegen/JdbcMapperProcessor.java index 3bb8b9a..440ef2d 100644 --- a/jdbcmapper/src/main/java/com/moparisthebest/jdbc/codegen/JdbcMapperProcessor.java +++ b/jdbcmapper/src/main/java/com/moparisthebest/jdbc/codegen/JdbcMapperProcessor.java @@ -327,7 +327,6 @@ public class JdbcMapperProcessor extends AbstractProcessor { lookupCloseMethod = false; continue; // skip close method } - final JdbcMapper.WarnOnUnusedParams warnOnUnusedParams = eeMethod.getAnnotation(JdbcMapper.WarnOnUnusedParams.class); final JdbcMapper.SQL sql = eeMethod.getAnnotation(JdbcMapper.SQL.class); if (sql == null || sql.value().isEmpty()) { processingEnv.getMessager().printMessage(Diagnostic.Kind.ERROR, "@JdbcMapper.SQL with non-empty query is required on abstract or interface methods", methodElement); @@ -503,8 +502,9 @@ public class JdbcMapperProcessor extends AbstractProcessor { */ } else if(isPrimitiveInteger(unusedType.getKind()) && maxRows == null && this.allowedMaxRowParamNames.contains(unusedParam.getKey())) { maxRows = CompileTimeResultSetMapper.MaxRows.getMaxRows(unusedParam.getKey(), unusedType.toString()); - } else - processingEnv.getMessager().printMessage(warnOnUnusedParams != null ? Diagnostic.Kind.MANDATORY_WARNING : Diagnostic.Kind.ERROR, String.format("@JdbcMapper.SQL method has unused parameter '%s'", unusedParam.getKey()), unusedParam.getValue()); + } else if(!unusedParam.getKey().startsWith("_")) { + processingEnv.getMessager().printMessage(Diagnostic.Kind.ERROR, String.format("@JdbcMapper.SQL method has unused parameter '%s' (rename to start with _ to suppress error)", unusedParam.getKey()), unusedParam.getValue()); + } } } final boolean notBindInList = !inListBindParams.isEmpty() && databaseType != JdbcMapper.DatabaseType.BIND; diff --git a/test/src/main/java/com/moparisthebest/jdbc/codegen/PersonDAO.java b/test/src/main/java/com/moparisthebest/jdbc/codegen/PersonDAO.java index b476288..727d61e 100644 --- a/test/src/main/java/com/moparisthebest/jdbc/codegen/PersonDAO.java +++ b/test/src/main/java/com/moparisthebest/jdbc/codegen/PersonDAO.java @@ -53,9 +53,8 @@ public interface PersonDAO extends JdbcMapper { @JdbcMapper.SQL("SELECT person_no FROM person WHERE last_name = {lastName}") long getPersonNo(String lastName) throws SQLException; - @JdbcMapper.WarnOnUnusedParams @JdbcMapper.SQL("SELECT person_no FROM person WHERE last_name = {lastName}") - long getPersonNoUnusedParam(String lastName, String unused) throws SQLException; + long getPersonNoUnusedParam(String lastName, String _bla) throws SQLException; @JdbcMapper.SQL("SELECT first_name, last_name FROM person WHERE last_name = {lastName}") ResultSet getPeopleResultSet(String lastName) throws SQLException; diff --git a/test/src/main/java/com/moparisthebest/jdbc/codegen/PrestoPersonDAO.java b/test/src/main/java/com/moparisthebest/jdbc/codegen/PrestoPersonDAO.java index 5ca6f91..7e4ab35 100644 --- a/test/src/main/java/com/moparisthebest/jdbc/codegen/PrestoPersonDAO.java +++ b/test/src/main/java/com/moparisthebest/jdbc/codegen/PrestoPersonDAO.java @@ -53,9 +53,8 @@ public interface PrestoPersonDAO extends PersonDAO { @JdbcMapper.SQL("SELECT person_no FROM person WHERE last_name = {lastName}") long getPersonNo(String lastName) throws SQLException; - @JdbcMapper.WarnOnUnusedParams @JdbcMapper.SQL("SELECT person_no FROM person WHERE last_name = {lastName}") - long getPersonNoUnusedParam(String lastName, String unused) throws SQLException; + long getPersonNoUnusedParam(String lastName, String _bla) throws SQLException; @JdbcMapper.SQL("SELECT first_name, last_name FROM person WHERE last_name = {lastName}") ResultSet getPeopleResultSet(String lastName) throws SQLException;