package hu.ppke.itk.itkStock.SaveDailyDatas;
import hu.ppke.itk.itkStock.server.db.dbAccess.AbstractManager;
import hu.ppke.itk.itkStock.server.db.dbAccess.BusinessObject;
import hu.ppke.itk.itkStock.server.db.dbAccess.BusinessObjectException;
import hu.ppke.itk.itkStock.server.db.historicData.StockDate;
import hu.ppke.itk.itkStock.server.db.historicData.StockTime;
import hu.ppke.itk.itkStock.server.db.historicData.Transaction;
import java.sql.SQLException;
/**
* Kötést reprezentáló osztály
*
* @author ki-csen
*
*/
public class StockDataRecord extends BusinessObject implements
Comparable<StockDataRecord> {
private String papername;
private StockDate date;
private StockTime time;
private Transaction transaction;
public StockDataRecord(StockDataSaver manager, int id, String papername,
StockDate date, StockTime time, Transaction transaction) {
super(manager, id);
this.papername = papername;
this.date = date;
this.time = time;
this.transaction = transaction;
}
/*
* Mivel a kötésnek nincs azonosítója így ennek a metódusnak nincs értelme
* (non-Javadoc)
*
* @see hu.ppke.itk.itkStock.dbaccess.BusinessObject#get()
*/
@Override
public boolean get() throws SQLException, BusinessObjectException {
return false;
}
/*
* Mivel a kötés adatai nem változnak, így ezt a metódust nem kell meghívni.
* (non-Javadoc)
*
* @see hu.ppke.itk.itkStock.dbaccess.BusinessObject#update()
*/
@Override
public void update() throws SQLException, BusinessObjectException {
throw new BusinessObjectException(
"Invalid function. You can't update StockData.");
}
/*
* Kötést rögzíti az adatbázisban, ha az adatbázis azt még nem tartalmazza
* (non-Javadoc)
*
* @see hu.ppke.itk.itkStock.dbaccess.BusinessObject#create()
*/
@Override
public void create() throws SQLException, BusinessObjectException {
if (this.identified)
throw new BusinessObjectException(
"Identified object should not be created.");
// System.out.println(papername+" "+date.toString()+" "+time.toString()+" "+transaction.toString());
((AbstractManager) this.manager).create(this);
}
/**
* @return Megtalálható-e már ez a kötés az adatbázisba?
* @throws SQLException
*/
public boolean Existence() throws SQLException {
return ((StockDataSaver) this.manager).checkRecordExistence(papername,
date.toString(), time.toString(), Double.toString(getClose()),
Double.toString(getVolume()));
}
public String getPapername() {
return papername;
}
public StockDate getDate() {
return date;
}
public StockTime getTime() {
return time;
}
public double getClose() {
return this.transaction.getPrice();
}
public double getVolume() {
return this.transaction.getVolume();
}
public Transaction getTransaction() {
return transaction;
}
@Override
public int compareTo(StockDataRecord arg0) {
int compdate = this.date.compareTo(arg0.getDate());
if (compdate != 0) {
return -compdate;
}
return -this.time.compareTo(arg0.getTime());
}
@Override
public boolean equals(Object aThat) {
if (this == aThat)
return true;
if (!(aThat instanceof StockDataRecord))
return false;
StockDataRecord that = (StockDataRecord) aThat;
return that.getPapername().contentEquals(papername)
&& that.getDate().compareTo(date) == 0
&& that.getTime().compareTo(time) == 0
&& that.getClose() == this.transaction.getPrice()
&& that.getVolume() == this.transaction.getVolume();
}
}