package hu.ppke.itk.itkStock.server.db.user; import hu.ppke.itk.itkStock.server.db.dbAccess.BusinessObject; import hu.ppke.itk.itkStock.server.db.dbAccess.BusinessObjectException; import java.sql.SQLException; /** * Ez az osztaly reprezentalja a felhasznalokat ('User'). Egy 'BusinessObject', tehat alapesetben egyes peldanyai * osszekottetesben vannak az adatbazissal. Konstruktoraban meg kell adnunk azt a 'UserManager' osztaly-peldanyt, mely az adatbazissal az osszekottetest biztositja. * * @see UserManager * */ public class User extends BusinessObject { private String username; private String email; private String password; private boolean admin; private boolean changed = false; public User( UserManager userManager, String username ) throws BusinessObjectException { super(userManager,0); this.setData(username, "", "", false); } public User( UserManager userManager, int id ) throws BusinessObjectException { super(userManager,id); this.setData("", "", "", false); } public User( UserManager userManager ) throws BusinessObjectException { super(userManager, 0); this.setData("", "", "", false); } public void setData( String username, String email, String password, boolean is_admin ) throws BusinessObjectException { this.setUsername(username); this.setEmail(email); this.setPassword(password); this.setAdmin(is_admin); this.changed = true; } @Override public boolean get() throws SQLException, BusinessObjectException { User temp = null; if ( this.id != 0 ) temp = (User) this.manager.get(this.id); else if ( this.username != null ) temp = ( (UserManager) this.manager ).get(this.username); else throw new BusinessObjectException("Neither user id, nor username specified."); if ( temp == null ) return false; this.id = temp.id; this.username = temp.username; this.email = temp.email; this.password = temp.password; this.admin = temp.admin; this.identified = true; this.changed = false; return true; } @Override public void update() throws SQLException, BusinessObjectException { if ( !this.identified ) throw new BusinessObjectException("Must identify BusinessObject before updating in database."); if ( this.changed ) ((UserManager)this.manager).update(this); } @Override public void create() throws SQLException, BusinessObjectException { if ( this.identified ) throw new BusinessObjectException("Identified object should not be created."); ((UserManager)this.manager).create(this); } public String getEmail() { return email; } public void setEmail(String email) { this.email = email; this.changed = true; } public String getUsername() { return username; } public void setUsername(String username) { this.username = username; this.changed = true; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; this.changed = true; } public boolean isAdmin() { return admin; } public void setAdmin(boolean admin) { this.admin = admin; this.changed = true; } }