package hu.ppke.itk.itkStock.server.db.dbAccess;
import java.sql.SQLException;
/**
* Ez az osztaly az alaposztalya az osszes adatbazisbol lekerdezheto beepitett objektumnak.
* Minden peldanya egy aktiv objektum, mely a neki megfelelo 'Manager' osztalyon keresztul kapcsolodik az adatbazishoz,
* es tartja magat szinkronban vele.
* Minden 'BusinessObject'-et elsosorban az 'id' (azonosito szam) mezo azonosit.
* @see AbstractManager
* @see DatabaseConnector
* @see #id
*/
public abstract class BusinessObject
{
protected AbstractManager<? extends BusinessObject> manager = null;
protected boolean identified = false;
protected int id;
public BusinessObject( AbstractManager<? extends BusinessObject> manager, int id )
{
this.manager = manager;
this.id = id;
}
public int getId()
{
return id;
}
public void setId(int id)
{
this.identified = false;
this.id = id;
}
public boolean isSynchronizedWithDatabase()
{
return this.identified;
}
/**
* Lekerdezi az adatbazisbol az aktualis objektumot a rendelkezesre allo azonositok alapjan.
*/
public abstract boolean get() throws SQLException, BusinessObjectException;
/**
* "Szinkronizalja" az adatbazissal az aktualis objektumot. Feltolti az adatokat.
*/
public abstract void update() throws SQLException, BusinessObjectException;
/**
* Uj bejegyzest hoz letre az adatbazisban az aktualis objektumban talalhato adatokkal.
*/
public abstract void create() throws SQLException, BusinessObjectException;
}