All Downloads are FREE. Search and download functionalities are using the official Maven repository.

uk.ac.starlink.table.storage.ColumnReader Maven / Gradle / Ivy

There is a newer version: 4.3
Show newest version
package uk.ac.starlink.table.storage;

import java.io.IOException;

/**
 * Accessor for stored values.
 * Although several data type accessor methods are provided,
 * in general for a given instance of this interface not all of them
 * will give a reasonable result; it is therefore
 * the responsibility of the user of an instance of this class to
 * keep track of what type is appropriate, since Java's type system
 * will not enforce it.  Attempting to retrieve the wrong type of data
 * will give a result (it must not throw an exception), but this
 * result may not be meaningful.
 * This point of this non-type-safe arrangement is to make it possible
 * to access primitive objects from this interface without the overhead
 * of object creation.
 *
 * 

Attempting to access a value with an index out of range for this * reader will result in undefined behaviour. * *

Instances of this interface are not in general safe for concurrent * access from different threads. * * @author Mark Taylor * @since 25 Apr 2017 */ public interface ColumnReader { /** * Returns the number of entries in this column. * * @return row count */ long getRowCount(); /** * Retrieve the value at a given index as an object. * Note it is permitted for the same instance to be returned each time, * if the object is mutable it may have different values each time * (for instance an array with different contents for each row). * Therefore the state or contents of the returned object must * not be relied on to stay the same between calls to this method. * * @param ix value index * @return value */ Object getObjectValue( long ix ) throws IOException; /** * Retrieve the current value of this sequence as a floating point number. * * @param ix value index * @return best-efforts floating point value */ double getDoubleValue( long ix ) throws IOException; /** * Retrieve the current value of this sequence as an integer. * * @param ix value index * @return best-efforts integer value */ int getIntValue( long ix ) throws IOException; /** * Retrieve the current value of this sequence as a long. * * @param ix value index * @return best-efforts long integer value */ long getLongValue( long ix ) throws IOException; /** * Retrieve the current value of this sequence as a boolean value. * * @param ix value index * @return best-efforts boolean value */ boolean getBooleanValue( long ix ) throws IOException; }





© 2015 - 2024 Weber Informatics LLC | Privacy Policy