package cz.cvut.fel.restauracefel.server.service.controllers;
import cz.cvut.fel.restauracefel.hibernate.Table;
import java.util.Iterator;
import java.util.List;
/**
*
* @author Jarda
*/
public class TableController {
private static TableController instance = null;
private Table table = null;
private TableController(){
}
public static TableController getInstance(){
if (instance == null){
instance = new TableController();
}
return instance;
}
public boolean createTable(int tableNumber, int numberOfPlaces){
if (numberOfPlaces==0) return false;
table = Table.findByTableNumer(tableNumber);
if (table != null){
return false;
}
table = new Table(tableNumber, numberOfPlaces, 0);
table.create();
return true;
}
public boolean deleteTable(int tableId){
table = Table.findById(tableId);
if (table == null){
return false;
}
//table.delete();
table.setIsDeleted(1);
return true;
}
public boolean updateTable(int tableId, int tableNumber, int numberOfPlaces){
table = Table.findById(tableId);
if (table == null){
return false;
}
Table t = Table.findByTableNumer(tableNumber);
if (t != null && t != table){
return false;
}
table.setTableNumber(tableNumber);
table.setNumberOfPlaces(numberOfPlaces);
table.update();
return true;
}
public Table getTableById(int tableId){
return Table.findById(tableId);
}
public Table getTableByTableNumber(int tableNumber){
return Table.findByTableNumer(tableNumber);
}
public int [] getTableNumbers(){
List<Table> list = Table.findAll();
if (list == null || list.isEmpty()){
return null;
}
int tableNumbers [] = new int [list.size()];
Iterator it = list.iterator();
int i = 0;
while (it.hasNext()){
tableNumbers [i] = ((Table)it.next()).getTableNumber();
i++;
}
return tableNumbers;
}
public String [] getTableNames(){
List<Table> list = Table.findAll();
if (list == null || list.isEmpty()){
return null;
}
String tableNames [] = new String [list.size()];
Iterator it = list.iterator();
int i = 0;
while (it.hasNext()){
//tableNames [i] = (((Table)it.next()).getTableId().toString());
tableNames[i] = Integer.toString(((Table)it.next()).getTableNumber());
i++;
}
return tableNames;
}
public Object [][] getTables(){
List<Table> list = Table.findAll();
if (list == null || list.isEmpty()){
return null;
}
Object tables [][] = new Object [list.size()][3];
Iterator it = list.iterator();
int i = 0;
while (it.hasNext()){
table = (Table) it.next();
tables [i][0] = table.getTableId();
tables [i][1] = table.getTableNumber();
tables [i][2] = table.getNumberOfPlaces();
i++;
}
return tables;
}
}