/* TypeBinaryWriter.java
 *
 * (C) 28.02.2005 Markus Schaber, Logi-Track ag, CH 8001 Zuerich
 *  
 * $Id: $
 */
package org.postgresql.types;

import java.math.BigDecimal;
import java.sql.SQLException;
import java.util.Calendar;


public interface TypeBinaryReader extends TypeDriver {
    String getString(byte[] data, int start, int length) throws SQLException;

    boolean getBoolean(byte[] data, int start, int length) throws SQLException;

    byte getByte(byte[] data, int start, int length) throws SQLException;

    short getShort(byte[] data, int start, int length) throws SQLException;

    int getInt(byte[] data, int start, int length) throws SQLException;

    long getLong(byte[] data, int start, int length) throws SQLException;

    float getFloat(byte[] data, int start, int length) throws SQLException;

    double getDouble(byte[] data, int start, int length) throws SQLException;

    BigDecimal getBigDecimal(byte[] data, int start, int length) throws SQLException;

    byte[] getBytes(byte[] data, int start, int length) throws SQLException;

    java.sql.Date getDate(byte[] data, int start, int length) throws SQLException;

    java.sql.Date getDate(byte[] data, int start, int length, Calendar cal) throws SQLException;

    java.sql.Time getTime(byte[] data, int start, int length) throws SQLException;

    java.sql.Time getTime(byte[] data, int start, int length, Calendar cal) throws SQLException;

    java.sql.Timestamp getTimestamp(byte[] data, int start, int length) throws SQLException;

    java.sql.Timestamp getTimestamp(byte[] data, int start, int length, Calendar cal) throws SQLException;

    java.io.InputStream getAsciiStream(byte[] data, int start, int length) throws SQLException;

    java.io.InputStream getUnicodeStream(byte[] data, int start, int length) throws SQLException;

    java.io.InputStream getBinaryStream(byte[] data, int start, int length) throws SQLException;

    Object getObject(byte[] data, int start, int length) throws SQLException;

    java.io.Reader getCharacterStream(byte[] data, int start, int length) throws SQLException;

    java.net.URL getURL(byte[] data, int start, int length) throws SQLException;    
}
