001/*
002 * Stallion Core: A Modern Web Framework
003 *
004 * Copyright (C) 2015 - 2016 Stallion Software LLC.
005 *
006 * This program is free software: you can redistribute it and/or modify it under the terms of the
007 * GNU General Public License as published by the Free Software Foundation, either version 2 of
008 * the License, or (at your option) any later version. This program is distributed in the hope that
009 * it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
010 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public
011 * License for more details. You should have received a copy of the GNU General Public License
012 * along with this program.  If not, see <http://www.gnu.org/licenses/gpl-2.0.html>.
013 *
014 *
015 *
016 */
017
018package io.stallion.dataAccess.db.converters;
019
020import io.stallion.dataAccess.Model;
021import io.stallion.dataAccess.db.Schema;
022import org.apache.commons.dbutils.ResultSetHandler;
023
024import java.sql.ResultSet;
025import java.sql.SQLException;
026
027
028public class ModelResultHandler implements ResultSetHandler<Model>, ResultToModel {
029
030    private Class modelClass;
031    private Schema schema;
032
033    public ModelResultHandler(Schema schema) {
034        this.modelClass = schema.getClazz();
035        this.setSchema(schema);
036    }
037
038    @Override
039    public Model handle(ResultSet resultSet) throws SQLException {
040        Boolean hasMore = resultSet.next();
041        if (hasMore) {
042            return handleOneRow(resultSet);
043        } else {
044            return null;
045        }
046    }
047
048    public Class getModelClass() {
049        return modelClass;
050    }
051
052    public void setModelClass(Class modelClass) {
053        this.modelClass = modelClass;
054    }
055
056    public Schema getSchema() {
057        return schema;
058    }
059
060    public void setSchema(Schema schema) {
061        this.schema = schema;
062    }
063}