View Javadoc

1   /*
2   
3       Jameleon - An automation testing tool..
4       Copyright (C) 2003 Christian W. Hargraves (engrean@hotmail.com)
5       
6       This library is free software; you can redistribute it and/or
7       modify it under the terms of the GNU Lesser General Public
8       License as published by the Free Software Foundation; either
9       version 2.1 of the License, or (at your option) any later version.
10  
11      This library 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 GNU
14      Lesser General Public License for more details.
15  
16      You should have received a copy of the GNU Lesser General Public
17      License along with this library; if not, write to the Free Software
18      Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
19  */
20  package net.sf.jameleon.data;
21  
22  import java.util.Set;
23  import java.util.Map;
24  
25  /***
26   * The class that needs to be data-driven should implement this interface.
27   */
28  public interface DataDrivable{
29  
30      /***
31       * Called with the a key-value pair of variables for each row found in the
32       * data source.
33       * @param rowNum - The row number being executed
34       */
35      public void executeDrivableRow(int rowNum);
36  
37      /***
38       * Removes the keys from the context and the variable set in addVariablesToRowData()
39       * @param keys - A Set of variable names to clean up.
40       */
41      public void destroyVariables(Set keys);
42  
43      /***
44       * Used to keep track of the variables and their original values.
45       * Any variable substitution should also be done here
46       * @param vars - A map of key-value pairs.
47       */
48      public void addVariablesToRowData(Map vars);
49  
50      /***
51       * Used to tell whether this DataDrivable object is meant
52       * to report on each row execution or to report on them as
53       * a whole
54       */
55      public boolean isCountRow();
56  }