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

uk.ac.starlink.table.ObjectArrayColumn Maven / Gradle / Ivy

package uk.ac.starlink.table;

/**
 * A column which provides data storage in a java array of objects.
 *
 * @author   Mark Taylor (Starlink)
 */
public class ObjectArrayColumn extends ArrayColumn {

    private final Object[] data;

    /**
     * Constructs a new column backed by a given array of objects.
     * The contentClass of the given base column info must
     * be compatible with the supplied data array;
     * it should be the class of what the array is an array of.
     * Alternatively, the base column info may have a
     * null content class, in which case the column info for
     * the new column will be set appropriately from the data array.
     *
     * @param  base  the column info on which to base this column's info
     * @param  data  an array of primitives or objects which will form
     *         the storage for this column
     * @throws  IllegalArgumentException if data isn't an array or
     *          base.getContentClass() is incompatible with
     *          data
     */
    public ObjectArrayColumn( ColumnInfo base, Object[] data ) {
        super( base, data );
        this.data = data;
        if ( getColumnInfo().getContentClass() == null ) {
            getColumnInfo().setContentClass( data.getClass()
                                                 .getComponentType() );
        }
    }

    void storeValue( int irow, Object val ) {
        data[ irow ] = val;
    }

    Object readValue( int irow ) {
        return data[ irow ];
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy