1 /** 2 * com.mckoi.database.GroupResolver 14 Jul 2000 3 * 4 * Mckoi SQL Database ( http://www.mckoi.com/database ) 5 * Copyright (C) 2000, 2001, 2002 Diehl and Associates, Inc. 6 * 7 * This program is free software; you can redistribute it and/or 8 * modify it under the terms of the GNU General Public License 9 * Version 2 as published by the Free Software Foundation. 10 * 11 * This program is distributed in the hope that it will be useful, 12 * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 * GNU General Public License Version 2 for more details. 15 * 16 * You should have received a copy of the GNU General Public License 17 * Version 2 along with this program; if not, write to the Free Software 18 * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 19 * 20 * Change Log: 21 * 22 * 23 */ 24 25 package com.mckoi.database; 26 27 import com.mckoi.util.IntegerVector; 28 29 /** 30 * Similar to VariableResolver, this method is used by grouping Functions to 31 * find information about the current group being evaluated (used for 32 * evaluating aggregate functions). 33 * 34 * @author Tobias Downer 35 */ 36 37 public interface GroupResolver { 38 39 /** 40 * A number that uniquely identifies this group from all the others in the 41 * set of groups. 42 */ 43 public int groupID(); 44 45 /** 46 * The total number of set items in this group. 47 */ 48 public int size(); 49 50 /** 51 * Returns the value of a variable of a group. The set index signifies the 52 * set item of the group. For example, if the group contains 10 items, then 53 * set_index may be between 0 and 9. Return types must be either 54 * a String, BigDecimal or Boolean. 55 */ 56 public TObject resolve(Variable variable, int set_index); 57 58 /** 59 * Returns a VariableResolver that can be used to resolve variable in the 60 * get set of the group. The object returned is undefined after the next 61 * call to this method. 62 */ 63 public VariableResolver getVariableResolver(int set_index); 64 65 } 66