} // selectAll() public Query selectAll(FromItem fromItem) { if (fromItem.getTable() != null) { Column[] columns = fromItem.getTable().getColumns(); foreach (Column column in columns) { select(column, fromItem); } } else if (fromItem.getJoin() != JoinType.None) { selectAll(fromItem.getLeftSide()); selectAll(fromItem.getRightSide()); } else if (fromItem.getSubQuery() != null) { List <SelectItem> items = fromItem.getSubQuery().getSelectClause().getItems(); foreach (SelectItem subQuerySelectItem in items) { select(new SelectItem(subQuerySelectItem, fromItem)); } } else { throw new MetaModelException("All select items ('*') not determinable with from item: " + fromItem); } return(this); } // selectAll()
} // constructor /** * Creates a SelectItem that references a column from a particular * {@link FromItem}, for example a.price or p.age * * @param column * @param fromItem */ public SelectItem(Column column, FromItem fromItem) : this(null, column, fromItem) { if (fromItem != null) { Table fromItemTable = fromItem.getTable(); if (fromItemTable != null) { Table columnTable = column.getTable(); if (columnTable != null && !columnTable.Equals(fromItemTable)) { throw new InvalidOperationException("Column's table '" + columnTable.getName() + "' is not equal to referenced table: " + fromItemTable); } } } } // constructor