/*
// $Id: //guest/julian_hyde/mondrian/src/main/mondrian/rolap/CellReader.java#1 $
// This software is subject to the terms of the Common Public License
// Agreement, available at the following URL:
// http://www.opensource.org/licenses/cpl.html.
// (C) Copyright 2001-2002 Kana Software, Inc. and others.
// All Rights Reserved.
// You must accept the terms of that agreement to use this software.
//
// jhyde, 10 August, 2001
*/
package mondrian.rolap;
import mondrian.olap.*;
/**
* A <code>CellReader</code> finds the cell value for the current context
* held by <code>evaluator</code>.
*
* <p>It returns:<ul>
* <li><code>null</code> if the source is unable to evaluate the cell (for
* example, {@link RolapResult.AggregatingCellReader} does not have the cell
* in its cache). This value should only be returned if the caller is
* expecting it.</li>
* <li>{@link Util#nullValue} if the cell evaluates to null</li>
* <li>{@link CubeBase#getErrCellValue} if the cell evaluates to an
* error</li>
* <li>an Object representing a value (often a {@link Double} or a {@link
* java.math.BigDecimal}), otherwise</li>
* </ul>
*
* @author jhyde
* @since 10 August, 2001
* @version $Id: //guest/julian_hyde/mondrian/src/main/mondrian/rolap/CellReader.java#1 $
**/
interface CellReader
{
Object get(Evaluator evaluator);
};
// End CellReader.java