/* * JEF - Copyright 2009-2010 Jiyi (mr.jiyi@gmail.com) * * Licensed 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. */ package jef.database.wrapper.populator; import java.sql.SQLException; import java.util.Map; import jef.database.jdbc.result.IResultSet; import jef.tools.reflect.BeanWrapper; /** * 让用户可以自己覆盖实现的Transformer * @author jiyi * * @param <T> */ public abstract class Mapper<T> implements IPopulator{ @SuppressWarnings("unchecked") public void process(BeanWrapper wrapper, IResultSet rs) throws SQLException { transform((T)wrapper.getWrapped(),rs); } /** * 可以被覆盖,准备填充策略 * @param nameIndex */ protected void prepare(Map<String, ColumnDescription> nameIndex){ } /** * 需要被覆盖,用户自定义从ResultSet中获取数据填充到结果对象中 * @param obj * @param rs */ protected abstract void transform(T obj, IResultSet rs)throws SQLException ; }