/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package domain;
import data.FileControllerD;
import data.UserController;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
/**
*
* @author oriol.cano
*/
public class UserDomainController {
static private UserDomainController singleton;
private User usuari;
public static UserDomainController getInstance() {
if(singleton == null) {
singleton = new UserDomainController();
}
return singleton;
}
public void initUserLog() {
UserController u = new UserController();
u.initUserLog();
}
public void register(int id, String name, String password) {
UserController u = new UserController();
u.register(id,name,password);
}
public boolean checkAvailability(String name) {
UserController u = new UserController();
boolean res = u.checkAvailavility(name);
return res;
}
private void updateUser(int id, String name, String pass) {
UserController u = new UserController();
u.updateUser(id, name, pass);
}
public int getNextID() {
UserController u = new UserController();
int id = u.getNextID();
return id;
}
/**
*
*
* Comprova que l'usuari existeix i retorna la seva id.
* Crea una instància de la classe User amb els paràmetres de l'usuari que ha fet el login.
*
* @author Oriol Caño
* @param String name: Nom de l'usuari a cercar
* @param String password: Contrasenya de l'usuari a cercar
* @return retorna l'id de l'usuari amb el nom d'usuari name i la contrasenya pass,
* si l'usuari no existeix retorna 0
* @throws si hi ha un error retorna -1
*/
public int login(String user, String pass) {
UserController u = new UserController();
int res = u.checkLogin(user, pass);
if (res != 0) {
usuari = new User();
usuari.setID(res);
usuari.setName(user);
usuari.setPassword(pass);
UserController uc = new UserController();
Constants.setN(uc.getN(res));
Constants.setGAMMA(uc.getG(res));
Constants.setSUGGESTIONS(uc.getS(res));
StatisticDomainController sc = new StatisticDomainController();
sc.loadStatistics(res);
}
return res;
}
public void logout() {
int id = usuari.getID();
String name = usuari.getName();
String pass = usuari.getPassword();
updateUser(id,name,pass);
usuari = null;
if (id != 0) {
UserController uc = new UserController();
uc.setN(id, Constants.getN());
uc.setG(id, Constants.getGAMMA());
uc.setS(id, Constants.getSUGGESTIONS());
StatisticDomainController sc = new StatisticDomainController();
sc.saveStatistics(id);
}
}
public BufferedReader getVerbs(int id) {
UserController u = new UserController();
BufferedReader res = u.getVerbs(id);
return res;
}
public void changeUsername(String name) {
usuari.setName(name);
}
public void deleteUser(int id) {
UserController u = new UserController();
u.deleteUser(id);
}
public void resetModel(int id) {
UserController u = new UserController();
u.resetModel(id);
}
public void changePassword(String password) {
usuari.setPassword(password);
}
public String getUsername() {
return usuari.getName();
}
public String getPassword() {
return usuari.getPassword();
}
public void addVerbToDict(String s, int id) {
UserController uc = new UserController();
uc.addVerbToDict(s,id);
}
}