package cz.cvut.fel.restauracefel.server.service.controllers; import cz.cvut.fel.restauracefel.hibernate.Material; import cz.cvut.fel.restauracefel.hibernate.MaterialType; import java.util.Iterator; import java.util.List; /** * * @author Jarda */ public class MaterialTypeController { protected MaterialType matType = null; protected static MaterialTypeController instance = null; private MaterialTypeController() { } public static MaterialTypeController getInstance() { if (instance == null){ instance = new MaterialTypeController(); } return instance; } //vytvari novy druh materialu (nesmi mit stejne jmeno jako jiz vytvoreny) public boolean createMaterialType(String name, String note){ matType = MaterialType.findByName(name); if (matType == null){ matType = new MaterialType(name, note, 0); matType.create(); return true; } else { return false; } } //maze druh materialu s danym Id public boolean deleteMaterialType(int materialTypeId){ matType = MaterialType.findById(materialTypeId); if (matType == null){ return false; } else { //matType.delete(); matType.setIsDeleted(1); return true; } } //updatuje druh materialu s danym Id public boolean updateMaterialType(int materialTypeId, String name, String note){ matType = MaterialType.findById(materialTypeId); if (matType == null){ return false; } else { //kdyz je jiz dane jmeno obsazeno MaterialType mt = MaterialType.findByName(name); if (mt != null && mt != matType){ return false; } matType.setName(name); matType.setNote(note); matType.update(); return true; } } //vraci List vsech druhu materialu (vsech nesmazanych) public List getAllMaterialTypes() { return MaterialType.findAll(); } //navraci druh materialu s danym Id public MaterialType getMaterialTypeByID(int id) { return MaterialType.findById(id); } //navraci druh materialu dle jeho jmena public MaterialType getMaterialTypeByName(String name) { return MaterialType.findByName(name); } //navraci String pole jmen vsech druhu materialu public String[] getMaterialTypeNames() { List list = MaterialType.findAll(); if (list == null || list.isEmpty()) return null; String materialTypes[] = new String[list.size()]; Iterator it = list.iterator(); int i = 0; while (it.hasNext()) { matType = (MaterialType) it.next(); materialTypes[i] = matType.getName(); i++; } return materialTypes; } public Object [][] getMaterialTypes(){ List<MaterialType> list = MaterialType.findAll(); if (list == null || list.isEmpty()){ return null; } Object array [][] = new Object [list.size()][3]; Iterator it = list.iterator(); int i = 0; while (it.hasNext()){ matType = (MaterialType) (it.next()); array [i][0] = matType.getMaterialTypeId(); array [i][1] = matType.getName(); array [i][2] = matType.getNote(); i++; } return array; } public boolean isDeletableMaterialType(int materialTypeId){ List<Material> list = Material.findByMaterialType(materialTypeId); if (list == null || list.isEmpty()){ return true; } else { return false; } } }