From 39338e999fddfc4594bc7c9ca92932a7e9649640 Mon Sep 17 00:00:00 2001 From: moparisthebest Date: Tue, 22 Apr 2014 14:14:03 -0400 Subject: [PATCH] Refactored ResultSetMapper to be an interface, old classes that used to extend it should now extend AbstractResultSetMapper --- .../system/jdbc/AbstractResultSetMapper.java | 34 +++++++++++++++++++ .../jdbc/DefaultIteratorResultSetMapper.java | 2 +- .../jdbc/DefaultObjectResultSetMapper.java | 2 +- .../system/jdbc/DefaultResultSetMapper.java | 2 +- .../jdbc/DefaultRowSetResultSetMapper.java | 2 +- .../controls/system/jdbc/ResultSetMapper.java | 32 ++++++++--------- 6 files changed, 54 insertions(+), 20 deletions(-) create mode 100644 beehive-jdbc-control/src/main/java/org/apache/beehive/controls/system/jdbc/AbstractResultSetMapper.java diff --git a/beehive-jdbc-control/src/main/java/org/apache/beehive/controls/system/jdbc/AbstractResultSetMapper.java b/beehive-jdbc-control/src/main/java/org/apache/beehive/controls/system/jdbc/AbstractResultSetMapper.java new file mode 100644 index 0000000..ec53eed --- /dev/null +++ b/beehive-jdbc-control/src/main/java/org/apache/beehive/controls/system/jdbc/AbstractResultSetMapper.java @@ -0,0 +1,34 @@ +/* + * 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. + * + * $Header:$ + */ +package org.apache.beehive.controls.system.jdbc; + +/** + * Extend this class to create new ResultSet mappers. The extended class will be invoked by the JdbcController + * when it is time to map a ResultSet to a method's return type. + * + * ResultSet mappers are specified on a per method basis using the SQL annotation's resultSetMapper field. + */ +public abstract class AbstractResultSetMapper implements ResultSetMapper { + + /** + * Can the ResultSet which this mapper uses be closed by the Jdbc control? + * @return true if the ResultSet can be closed by the JdbcControl + */ + public boolean canCloseResultSet() { return true; } +} diff --git a/beehive-jdbc-control/src/main/java/org/apache/beehive/controls/system/jdbc/DefaultIteratorResultSetMapper.java b/beehive-jdbc-control/src/main/java/org/apache/beehive/controls/system/jdbc/DefaultIteratorResultSetMapper.java index a320bbe..72516ea 100644 --- a/beehive-jdbc-control/src/main/java/org/apache/beehive/controls/system/jdbc/DefaultIteratorResultSetMapper.java +++ b/beehive-jdbc-control/src/main/java/org/apache/beehive/controls/system/jdbc/DefaultIteratorResultSetMapper.java @@ -29,7 +29,7 @@ import java.util.Iterator; /** * Default ResultSetMapper implementation for Iterators. */ -public class DefaultIteratorResultSetMapper extends ResultSetMapper { +public class DefaultIteratorResultSetMapper extends AbstractResultSetMapper { /** * Map a ResultSet to an object type diff --git a/beehive-jdbc-control/src/main/java/org/apache/beehive/controls/system/jdbc/DefaultObjectResultSetMapper.java b/beehive-jdbc-control/src/main/java/org/apache/beehive/controls/system/jdbc/DefaultObjectResultSetMapper.java index bb0ae6e..72fe59b 100644 --- a/beehive-jdbc-control/src/main/java/org/apache/beehive/controls/system/jdbc/DefaultObjectResultSetMapper.java +++ b/beehive-jdbc-control/src/main/java/org/apache/beehive/controls/system/jdbc/DefaultObjectResultSetMapper.java @@ -34,7 +34,7 @@ import java.util.Calendar; /** * Default ResultSetMapper implementation for Objects. */ -public class DefaultObjectResultSetMapper extends ResultSetMapper { +public class DefaultObjectResultSetMapper extends AbstractResultSetMapper { /** * static reference to the TypeMappingsFactory for this class diff --git a/beehive-jdbc-control/src/main/java/org/apache/beehive/controls/system/jdbc/DefaultResultSetMapper.java b/beehive-jdbc-control/src/main/java/org/apache/beehive/controls/system/jdbc/DefaultResultSetMapper.java index bb2c811..f5172ba 100644 --- a/beehive-jdbc-control/src/main/java/org/apache/beehive/controls/system/jdbc/DefaultResultSetMapper.java +++ b/beehive-jdbc-control/src/main/java/org/apache/beehive/controls/system/jdbc/DefaultResultSetMapper.java @@ -28,7 +28,7 @@ import java.util.Calendar; /** * Default ResultSetMapper implementation for ResultSets. */ -public class DefaultResultSetMapper extends ResultSetMapper { +public class DefaultResultSetMapper extends AbstractResultSetMapper { /** * Maps a ResultSet to a ResultSet. The default implementation is a NOOP. diff --git a/beehive-jdbc-control/src/main/java/org/apache/beehive/controls/system/jdbc/DefaultRowSetResultSetMapper.java b/beehive-jdbc-control/src/main/java/org/apache/beehive/controls/system/jdbc/DefaultRowSetResultSetMapper.java index f66bc9c..10a93df 100644 --- a/beehive-jdbc-control/src/main/java/org/apache/beehive/controls/system/jdbc/DefaultRowSetResultSetMapper.java +++ b/beehive-jdbc-control/src/main/java/org/apache/beehive/controls/system/jdbc/DefaultRowSetResultSetMapper.java @@ -33,7 +33,7 @@ import java.util.Calendar; /** * Default ResultSetMapper implementation for RowSets. */ -public class DefaultRowSetResultSetMapper extends ResultSetMapper { +public class DefaultRowSetResultSetMapper extends AbstractResultSetMapper { /** * Map a ResultSet to a RowSet. Type of RowSet is defined by the SQL annotation for the method. diff --git a/beehive-jdbc-control/src/main/java/org/apache/beehive/controls/system/jdbc/ResultSetMapper.java b/beehive-jdbc-control/src/main/java/org/apache/beehive/controls/system/jdbc/ResultSetMapper.java index e10deff..e32852d 100644 --- a/beehive-jdbc-control/src/main/java/org/apache/beehive/controls/system/jdbc/ResultSetMapper.java +++ b/beehive-jdbc-control/src/main/java/org/apache/beehive/controls/system/jdbc/ResultSetMapper.java @@ -30,22 +30,22 @@ import java.util.Calendar; * * ResultSet mappers are specified on a per method basis using the SQL annotation's resultSetMapper field. */ -public abstract class ResultSetMapper { +public interface ResultSetMapper { - /** - * Map a ResultSet to an object type - * - * @param context A ControlBeanContext instance, see Beehive controls javadoc for additional information - * @param m Method assoicated with this call. - * @param resultSet Result set to map. - * @param cal A Calendar instance for time/date value resolution. - * @return The Object resulting from the ResultSet - */ - public abstract Object mapToResultType(ControlBeanContext context, Method m, ResultSet resultSet, Calendar cal); + /** + * Map a ResultSet to an object type + * + * @param context A ControlBeanContext instance, see Beehive controls javadoc for additional information + * @param m Method assoicated with this call. + * @param resultSet Result set to map. + * @param cal A Calendar instance for time/date value resolution. + * @return The Object resulting from the ResultSet + */ + public Object mapToResultType(ControlBeanContext context, Method m, ResultSet resultSet, Calendar cal); - /** - * Can the ResultSet which this mapper uses be closed by the Jdbc control? - * @return true if the ResultSet can be closed by the JdbcControl - */ - public boolean canCloseResultSet() { return true; } + /** + * Can the ResultSet which this mapper uses be closed by the Jdbc control? + * @return true if the ResultSet can be closed by the JdbcControl + */ + public boolean canCloseResultSet(); }