Classes: class Table: Instance variables: /** Stores all of the table data. Everything is stored as strings, * even integers and doubles. */ String[][] tableInfo; /** Stores the names of the columns. */ String[] columnNames; /** Stores the types of the columns. */ String[] columnTypes; Constructor: /** Creates a table of data. */ Table(int numRows, int numCols, String[] colNames, String[] colTypes, String[][] tableData) /** Creates a table of data with the given number of rows and columns, but no data. */ Table(int numRows, int numCols, String[] colNames, String[] colTypes) /** Creates a table of data with zero rows and zero columns. */ Table() Methods: /** Returns the join of Table a and Table b. */ public static Table join(Table a, Table b) /** Returns the join of Table a, Table b, and Table c */ public static Table join(Table a, Table b, Table c) /** Returns the join of all the Tables */ public static Table join(Table[] tables) /** Gets all column names that are common to both tables. */ public String[] getCommonColumnNames(Table a, Table b) /** Gets the row indices corresponding to the given condition. */ public int[] getRows(Condition a) /** Returns the combination of the two columns using the column number and combinationSymbol in the operation. */ public static String[] combineColumns(Table a, String columnA, Table b, String columnB, Operation o) /** Adds the data in the row to the current table. */ public void addRow(String[] row) /** Adds a new column to the data. */ public void addColumn(String columnName, String columnType, String[] columnData) class Operation: Instance variables: int column1; int column2; String comparisonSymbol; Constructor: /** Looks up column numbers of columns and stores them in column1 and * column2. Creator of operation needs to specify the type. */ Operation(Table t1, String columnName, String columnName2, String symbol) Methods: /** Gets the number of the column for the string. */ public static int getColumnNumber(Table a, String columnName) /** Returns true if the two columns have the same type using the * columnTypes variable in the table. */ public boolean isTheSameType() class Condition: Instance variables: boolean isUnary; String columnName; String column0Name; String column1Name; Comparison c; /** Returns true if the given rowNum in the table t obeys this * condition. */ public boolean obeysCondition(Table t, int rowNum) Interface Comparison /** Compares columnNum1 with the literal using the comparisonCharacter */ boolean compare(Table t, int columnNum1, String literal); /** Compares columnNum1 with columnNum2 using the comparisonCharacter */ boolean compare(Table t, int columnNum1, int columnNum2); class greaterThan implements ComparisonType class greaterThanOrEquals implements comparisonType class lessThan implements ComparisonType class lessThanOrEquals implements ComparisonType class equals implements ComparisonType class notEquals extends equals all of these classes have an instance variable equal to the comparisonCharacter, e.g. ">"