mockit.emulation.hibernate3.ScrollableResultsEmul.java Source code

Java tutorial

Introduction

Here is the source code for mockit.emulation.hibernate3.ScrollableResultsEmul.java

Source

/*
 * Copyright (c) 2006-2011 Rogrio Liesenfeld
 * This file is subject to the terms of the MIT license (see LICENSE.txt).
 */
package mockit.emulation.hibernate3;

import java.math.*;
import java.sql.*;
import java.util.*;
import java.util.Date;

import org.hibernate.*;
import org.hibernate.type.*;

@SuppressWarnings({ "ClassWithTooManyMethods" })
final class ScrollableResultsEmul implements ScrollableResults {
    private final List<?> results;
    private int pos;

    ScrollableResultsEmul(List<?> results) {
        this.results = results;
        pos = -1;
    }

    public boolean next() {
        if (pos >= results.size()) {
            return false;
        }

        pos++;
        return true;
    }

    public boolean previous() {
        if (pos <= 0) {
            return false;
        }

        pos--;
        return true;
    }

    public boolean scroll(int i) {
        pos += i;
        return pos >= 0 && pos < results.size();
    }

    public boolean last() {
        pos = results.size() - 1;
        return pos >= 0;
    }

    public boolean first() {
        pos = 0;
        return !results.isEmpty();
    }

    public void beforeFirst() {
        pos = -1;
    }

    public void afterLast() {
        pos = results.size();
    }

    public boolean isFirst() {
        return pos == 0;
    }

    public boolean isLast() {
        return pos == results.size() - 1;
    }

    public void close() {
    }

    public Object[] get() {
        if (results.isEmpty() || pos < 0 || pos >= results.size()) {
            return null;
        }

        Object row = results.get(pos);

        return row instanceof Object[] ? (Object[]) row : new Object[] { row };
    }

    public Object get(int i) {
        return get()[i];
    }

    public Type getType(int i) {
        return null;
    }

    public Integer getInteger(int col) {
        return (Integer) get(col);
    }

    public Long getLong(int col) {
        return (Long) get(col);
    }

    public Float getFloat(int col) {
        return (Float) get(col);
    }

    public Boolean getBoolean(int col) {
        return (Boolean) get(col);
    }

    public Double getDouble(int col) {
        return (Double) get(col);
    }

    public Short getShort(int col) {
        return (Short) get(col);
    }

    public Byte getByte(int col) {
        return (Byte) get(col);
    }

    public Character getCharacter(int col) {
        return (Character) get(col);
    }

    public byte[] getBinary(int col) {
        return (byte[]) get(col);
    }

    public String getText(int col) {
        return (String) get(col);
    }

    public Blob getBlob(int col) {
        return (Blob) get(col);
    }

    public Clob getClob(int col) {
        return (Clob) get(col);
    }

    public String getString(int col) {
        return (String) get(col);
    }

    public BigDecimal getBigDecimal(int col) {
        return (BigDecimal) get(col);
    }

    public BigInteger getBigInteger(int col) {
        return (BigInteger) get(col);
    }

    public Date getDate(int col) {
        return (Date) get(col);
    }

    public Locale getLocale(int col) {
        return (Locale) get(col);
    }

    public Calendar getCalendar(int col) {
        return (Calendar) get(col);
    }

    public TimeZone getTimeZone(int col) {
        return (TimeZone) get(col);
    }

    public int getRowNumber() {
        return pos;
    }

    public boolean setRowNumber(int rowNumber) {
        pos = rowNumber >= 0 ? rowNumber : results.size() + rowNumber;

        return pos >= 0 && pos < results.size();
    }
}