package is.idega.idegaweb.travel.data;
import java.rmi.RemoteException;
import java.util.Collection;
import java.util.GregorianCalendar;
import java.util.Iterator;
import javax.ejb.CreateException;
import javax.ejb.FinderException;
import javax.ejb.RemoveException;
import com.idega.block.trade.stockroom.data.Reseller;
import com.idega.data.IDOLookup;
import com.idega.data.IDOLookupException;
import com.idega.data.IDOQuery;
/**
* Title: idegaWeb TravelBooking
* Description:
* Copyright: Copyright (c) 2001
* Company: idega
* @author <a href="mailto:gimmi@idega.is">Grimur Jonsson</a>
* @version 1.0
*/
public class ResellerDayBMPBean extends com.idega.data.GenericEntity implements is.idega.idegaweb.travel.data.ResellerDay {
public static int SUNDAY = GregorianCalendar.SUNDAY;
public static int MONDAY = GregorianCalendar.MONDAY;
public static int TUESDAY = GregorianCalendar.TUESDAY;
public static int WEDNESDAY = GregorianCalendar.WEDNESDAY;
public static int THURSDAY = GregorianCalendar.THURSDAY;
public static int FRIDAY = GregorianCalendar.FRIDAY;
public static int SATURDAY = GregorianCalendar.SATURDAY;
public ResellerDayBMPBean() {
}
public void initializeAttributes() {
addAttribute(getColumnNameResellerId(),"Reseller_id",true,true,Integer.class,"many-to-one",Reseller.class);
addAttribute(getColumnNameServiceId(), "Service_id", true, true, Integer.class, "many-to-one", Service.class);
addAttribute(getColumnNameDayOfWeek(), "Day of week", true, true, Integer.class);
this.setAsPrimaryKey(getColumnNameResellerId(), true);
this.setAsPrimaryKey(getColumnNameServiceId(), true);
this.setAsPrimaryKey(getColumnNameDayOfWeek(), true);
addIndex("IDX_RES_SER_DAY", new String[]{getColumnNameResellerId(), getColumnNameServiceId(), getColumnNameDayOfWeek()});
}
public String getEntityName() {
return getResellerDaysTableName();
}
public Object ejbFindByPrimaryKey(ResellerDayPK primaryKey) throws FinderException {
return super.ejbFindByPrimaryKey(primaryKey);
}
public Object ejbFindByPrimaryKey(Object primaryKey) throws FinderException {
return this.ejbFindByPrimaryKey((ResellerDayPK) primaryKey);
}
public Object ejbCreate(ResellerDayPK primaryKey) throws CreateException {
setPrimaryKey(primaryKey);
return super.ejbCreate();
}
/* (non-Javadoc)
* @see com.idega.data.IDOEntityBean#getPrimaryKeyClass()
*/
public Class getPrimaryKeyClass() {
return ResellerDayPK.class;
}
protected boolean doInsertInCreate() {
return true;
}
/*
* @deprecated
*/
public String getIDColumnName() {
return getColumnNameResellerId();
}
public int getResellerId() {
return getIntColumnValue(getColumnNameResellerId());
}
public void setResellerId(int resellerId) {
setColumn(getColumnNameResellerId(), resellerId);
}
public void setServiceId(int serviceId) {
setColumn(getColumnNameServiceId(), serviceId);
}
public void setDayOfWeek(int dayOfWeek) {
setColumn(getColumnNameDayOfWeek(), dayOfWeek);
}
public void setDayOfWeek(int resellerId, int serviceId, int dayOfWeek) {
setResellerId(resellerId);
setServiceId(serviceId);
setDayOfWeek(dayOfWeek);
}
public int getDayOfWeek() {
return getIntColumnValue(getColumnNameDayOfWeek());
}
public int getServiceId() {
return getIntColumnValue(getColumnNameServiceId());
}
public Collection ejbHomeGetDaysOfWeek(int resellerId, int serviceId) throws FinderException {
IDOQuery query = idoQuery();
query.appendSelectAllFrom(this)
.appendWhereEquals(getColumnNameResellerId(), resellerId)
.appendAndEquals(getColumnNameServiceId(), serviceId)
.appendOrderBy(getColumnNameDayOfWeek());
return this.idoFindPKsByQuery(query);
}
public int[] ejbHomeGetDaysOfWeekInt(int resellerId, int serviceId) throws FinderException {
Collection coll = ejbHomeGetDaysOfWeek(resellerId, serviceId);
if (coll != null && !coll.isEmpty()) {
int[] returner = new int[coll.size()];
Iterator iter = coll.iterator();
try {
ResellerDayHome rdHome = (ResellerDayHome) IDOLookup.getHome(ResellerDay.class);
for (int i = 0; iter.hasNext(); i++) {
returner[i] = ((ResellerDay) rdHome.findByPrimaryKey(iter.next())).getDayOfWeek();
}
} catch (IDOLookupException e) {
throw new FinderException(e.getMessage());
}
return returner;
}
return new int[]{};
}
public boolean ejbHomeGetIfDay(int resellerId, int serviceId, int dayOfWeek) {
boolean returner = false;
try {
IDOQuery query = idoQuery();
query.appendSelectAllFrom(this)
.appendWhereEquals(getColumnNameResellerId(), resellerId)
.appendAndEquals(getColumnNameServiceId(), serviceId)
.appendAndEquals(getColumnNameDayOfWeek(), dayOfWeek);
Collection days = this.idoFindPKsByQuery(query);
if (days != null && !days.isEmpty()) {
if (days.size() == 1) {
returner = true;
}else {
returner = true;
System.err.println("ResellerDay : getIfDay : Primary Key Error");
}
}
}catch (FinderException e) {
e.printStackTrace();
}
return returner;
}
public void deleteService(int serviceId) throws RemoteException, FinderException, RemoveException{
Collection coll = this.idoFindAllIDsByColumnBySQL(getColumnNameServiceId(), Integer.toString(serviceId));
Iterator days = coll.iterator();
ResellerDay rDay;
ResellerDayHome rdHome = (ResellerDayHome) IDOLookup.getHome(ResellerDay.class);
while (days.hasNext()) {
rDay = (ResellerDay) rdHome.findByPrimaryKey(days.next());
rDay.remove();
}
}
public void deleteReseller(int resellerId) throws RemoteException, FinderException, RemoveException {
Collection coll = this.idoFindAllIDsByColumnBySQL(getColumnNameResellerId(), Integer.toString(resellerId));
Iterator days = coll.iterator();
ResellerDay rDay;
ResellerDayHome rdHome = (ResellerDayHome) IDOLookup.getHome(ResellerDay.class);
while (days.hasNext()) {
rDay = (ResellerDay) rdHome.findByPrimaryKey(days.next());
rDay.remove();
}
/*
ResellerDay[] days = (ResellerDay[]) (((is.idega.idegaweb.travel.data.ResellerDayHome)com.idega.data.IDOLookup.getHomeLegacy(ResellerDay.class)).createLegacy()).findAllByColumn(getColumnNameResellerId(), resellerId);
for (int i = 0; i < days.length; i++) {
days[i].remove();
}
*/
}
public void ejbHomeRemoveResellerDays(Reseller reseller, Service service) throws RemoveException {
try {
Collection days = ejbHomeGetDaysOfWeek(Integer.parseInt(reseller.getPrimaryKey().toString()),Integer.parseInt(service.getPrimaryKey().toString()));
if (days != null && !days.isEmpty()) {
Iterator iter = days.iterator();
ResellerDay rDay;
ResellerDayHome rdHome = (ResellerDayHome) IDOLookup.getHome(ResellerDay.class);
while (iter.hasNext()) {
rDay = (ResellerDay) rdHome.findByPrimaryKey(iter.next());
rDay.remove();
}
}
} catch (FinderException f) {
throw new RemoveException(f.getMessage());
} catch (IDOLookupException e) {
throw new RemoveException(e.getMessage());
}
}
/*
public int[] ejbHomeGetResellerDays(Reseller reseller, Service service) throws RemoteException, FinderException{
// return this.idoFindPKsBySQL("select * from "+getResellerDaysTableName()+" where "+getColumnNameResellerId()+" = "+reseller.getPrimaryKey().toString()+" AND "+getColumnNameServiceId()+" = "+service.getPrimaryKey().toString());
// System.out.println("[ResellerDayBMPBean] Service : "+service.getName(1)+", id = "+service.getID());
//String sql = "select * from "+getResellerDaysTableName()+" where "+getColumnNameResellerId()+" = "+reseller.getPrimaryKey().toString()+" AND "+getColumnNameServiceId()+" = "+service.getID();
String sql2 = "select "+getColumnNameDayOfWeek()+" from "+getResellerDaysTableName()+" where "+getColumnNameResellerId()+" = "+reseller.getPrimaryKey().toString()+" AND "+getColumnNameServiceId()+" = "+service.getID();
System.out.println("[ResellerDayBMPBean] Depprad fall... kannski : ejbHomeGetResellerDays");
//return this.idoFindPKsBySQL(sql);
try {
String[] sRepps = SimpleQuerier.executeStringQuery(sql2);
int[] repps = new int[sRepps.length];
for ( int i = 0 ; i < sRepps.length ; i++ ) {
repps[i] = Integer.parseInt(sRepps[i]);
}
return repps;
}catch(Exception e) {
throw new FinderException(e.getMessage());
}
}
*/
public static String getResellerDaysTableName() {return "TB_RESELLER_DAY";}
public static String getColumnNameResellerId() {return "SR_RESELLER_ID";}
public static String getColumnNameServiceId() {return "TB_SERVICE_ID";}
public static String getColumnNameDayOfWeek() {return "DAY_OF_WEEK";}
}