/* * To change this template, choose Tools | Templates * and open the template in the editor. */ package photoSpreadParser.photoSpreadExpression; import photoSpread.PhotoSpreadException; import photoSpreadObjects.PhotoSpreadObject; import photoSpreadTable.PhotoSpreadCell; import photoSpreadUtilities.TreeSetRandomSubsetIterable; /** * Classes that implement <code>PhotoSpreadEvaluatable</code> can * all produce a set of <code>PhotoSpreadObject</code> instances * when their <code>evaluate()</code> method is called. * * Note: the interfaces <code>PhotoSpreadNumericComputable</code>, * <code>PhotoSpreadStringComputable</code> are different from * <code>PhotoSpreadEvaluatable</code>. They produce not PhotoSpreadObjects, * but Java primitive values when their (required) valueOf() methods are called. * A single class may implement both Evaluatable and one of the other two. * * @author skandel */ public interface PhotoSpreadEvaluatable { TreeSetRandomSubsetIterable<PhotoSpreadObject> evaluate(PhotoSpreadCell cell) throws PhotoSpreadException.FormulaError; }