/*
* Created on Jan 24, 2004
*
*/
package com.idega.block.building.data;
import java.util.Collection;
import javax.ejb.FinderException;
import com.idega.data.GenericView;
import com.idega.data.query.MatchCriteria;
import com.idega.data.query.SelectQuery;
import com.idega.data.query.Table;
import com.idega.data.query.WildCardColumn;
/**
* ApartmentViewBMPBean
*
* @author aron
* @version 1.0
*/
public class ApartmentViewBMPBean extends GenericView implements ApartmentView {
protected static final String APARTMENT_VIEW = "V_APARTMENTS";
protected static final String COMPLEX_ID = "COMPLEX_ID";
protected static final String COMPLEX_NAME = "COMPLEX_KEY";
protected static final String BUILDING_ID = "BUILDING_ID";
protected static final String BUILDING_NAME = "BUILDING_NAME";
protected static final String FLOOR_ID = "FLOOR_ID";
protected static final String FLOOR_NAME = "FLOOR_NAME";
protected static final String APARTMENT_ID = "APARTMENT_ID";
protected static final String APARTMENT_NAME = "APARTMENT_NAME";
protected static final String TYPE_ID = "TYPE_ID";
protected static final String TYPE_NAME = "TYPE_NAME";
protected static final String CATEGORY_ID = "CATEGORY_ID";
protected static final String CATEGORY_NAME = "CATEGORY_NAME";
protected static final String COLUMN_SUBCATEGORY = "subcategory_id";
/*
* (non-Javadoc)
*
* @see com.idega.data.GenericEntity#getEntityName()
*/
public String getEntityName() {
return APARTMENT_VIEW;
}
/*
* (non-Javadoc)
*
* @see com.idega.data.GenericEntity#getIDColumnName()
*/
public String getIDColumnName() {
return APARTMENT_ID;
}
/*
* (non-Javadoc)
*
* @see com.idega.data.GenericEntity#initializeAttributes()
*/
public void initializeAttributes() {
addAttribute(COMPLEX_ID, "Complex id", true, true, Integer.class,
ONE_TO_ONE, Complex.class);
addAttribute(COMPLEX_NAME, "Complex name", String.class);
addAttribute(BUILDING_ID, "Building id", true, true, Integer.class,
ONE_TO_ONE, Building.class);
addAttribute(BUILDING_NAME, "Building name", String.class);
addAttribute(FLOOR_ID, "Floor id", true, true, Integer.class,
ONE_TO_ONE, Floor.class);
addAttribute(FLOOR_NAME, "Floor name", String.class);
addAttribute(APARTMENT_ID, "Apartment id", true, true, Integer.class,
ONE_TO_ONE, Apartment.class);
addAttribute(APARTMENT_NAME, "Apartment name", String.class);
addAttribute(CATEGORY_ID, "Category id", true, true, Integer.class,
ONE_TO_ONE, ApartmentCategory.class);
addAttribute(CATEGORY_NAME, "Category name", String.class);
addAttribute(TYPE_ID, "Type id", true, true, Integer.class, ONE_TO_ONE,
ApartmentType.class);
addAttribute(TYPE_NAME, "Type name", String.class);
addManyToOneRelationship(COLUMN_SUBCATEGORY, ApartmentSubcategory.class);
setAsPrimaryKey(APARTMENT_ID, true);
}
/*
* (non-Javadoc)
*
* @see com.idega.data.IDOView#getCreationSQL()
*/
public String getCreationSQL() {
StringBuffer sql = new StringBuffer();
sql.append(" CREATE VIEW ").append(getViewName()).append(" ( ");
sql.append(COMPLEX_ID).append(", ");
sql.append(COMPLEX_NAME).append(", ");
sql.append(BUILDING_ID).append(", ");
sql.append(BUILDING_NAME).append(", ");
sql.append(FLOOR_ID).append(", ");
sql.append(FLOOR_NAME).append(", ");
sql.append(APARTMENT_ID).append(", ");
sql.append(APARTMENT_NAME).append(", ");
sql.append(CATEGORY_ID).append(", ");
sql.append(CATEGORY_NAME).append(", ");
sql.append(TYPE_ID).append(", ");
sql.append(TYPE_NAME).append(", ");
sql.append(COLUMN_SUBCATEGORY);
sql.append(" ) AS ");
sql
.append(" select c.bu_complex_id,c.name,b.bu_building_id, b.name,f.bu_floor_id,f.name,a.bu_apartment_id,a.name, y.bu_aprt_cat_id,y.name, t.bu_aprt_type_id,t.name, s.bu_aprt_sub_cat_id ");
sql
.append(" from bu_complex c, bu_building b, bu_floor f, bu_apartment a, bu_aprt_cat y, bu_aprt_type t, bu_aprt_sub_cat s ");
sql.append(" where c.bu_complex_id = b.bu_complex_id ");
sql.append(" and b.bu_building_id = f.bu_building_id ");
sql.append(" and f.bu_floor_id = a.bu_floor_id ");
sql.append(" and a.bu_aprt_type_id = t.bu_aprt_type_id ");
sql.append(" and t.bu_aprt_subcat = s.bu_aprt_sub_cat_id ");
sql.append(" and s.aprt_cat = y.bu_aprt_cat_id ");
return sql.toString();
}
public Integer getComplexID() {
return getIntegerColumnValue(COMPLEX_ID);
}
public Complex getComplex() {
return (Complex) getColumnValue(COMPLEX_ID);
}
public Integer getBuildingID() {
return getIntegerColumnValue(BUILDING_ID);
}
public Building getBuilding() {
return (Building) getColumnValue(BUILDING_ID);
}
public Integer getFloorID() {
return getIntegerColumnValue(FLOOR_ID);
}
public Floor getFloor() {
return (Floor) getColumnValue(FLOOR_ID);
}
public Integer getApartmentID() {
return getIntegerColumnValue(APARTMENT_ID);
}
public Apartment getApartment() {
return (Apartment) super.getColumnValue(APARTMENT_ID);
}
public Integer getCategoryID() {
return getIntegerColumnValue(CATEGORY_ID);
}
public ApartmentCategory getCategory() {
return (ApartmentCategory) getColumnValue(CATEGORY_ID);
}
public Integer getTypeID() {
return getIntegerColumnValue(TYPE_ID);
}
public ApartmentType getType() {
return (ApartmentType) getColumnValue(TYPE_ID);
}
public String getComplexName() {
return getStringColumnValue(COMPLEX_NAME);
}
public String getBuildingName() {
return getStringColumnValue(BUILDING_NAME);
}
public String getFloorName() {
return getStringColumnValue(FLOOR_NAME);
}
public String getApartmentName() {
return getStringColumnValue(APARTMENT_NAME);
}
public String getCategoryName() {
return getStringColumnValue(CATEGORY_NAME);
}
public String getTypeName() {
return getStringColumnValue(TYPE_NAME);
}
public ApartmentSubcategory getSubcategory() {
return (ApartmentSubcategory) getColumnValue(COLUMN_SUBCATEGORY);
}
public int getSubcategoryID() {
return getIntColumnValue(COLUMN_SUBCATEGORY);
}
public Collection ejbFindByComplex(Integer complexID)
throws FinderException {
return idoFindPKsByQuery(super.idoQueryGetSelect().appendWhereEquals(
COMPLEX_ID, complexID));
}
public Collection ejbFindByBuilding(Integer buildingID)
throws FinderException {
return idoFindPKsByQuery(super.idoQueryGetSelect().appendWhereEquals(
BUILDING_ID, buildingID));
}
public Collection ejbFindByFloor(Integer floorID) throws FinderException {
return idoFindPKsByQuery(super.idoQueryGetSelect().appendWhereEquals(
FLOOR_ID, floorID));
}
public Collection ejbFindByCategory(Integer categoryID)
throws FinderException {
return idoFindPKsByQuery(super.idoQueryGetSelect().appendWhereEquals(
CATEGORY_ID, categoryID));
}
public Collection ejbFindByType(Integer typeID) throws FinderException {
return idoFindPKsByQuery(super.idoQueryGetSelect().appendWhereEquals(
TYPE_ID, typeID));
}
public Collection ejbFindBySubcategory(Integer subcategoryID)
throws FinderException {
Table t = new Table(this);
SelectQuery query = new SelectQuery(t);
query.addColumn(new WildCardColumn());
query.addCriteria(new MatchCriteria(t, COLUMN_SUBCATEGORY, MatchCriteria.EQUALS, subcategoryID));
query.addOrder(t, BUILDING_NAME, true);
query.addOrder(t, APARTMENT_NAME, true);
return idoFindPKsByQuery(query);
}
public String getApartmentString(String delimiter) {
StringBuffer S = new StringBuffer();
S.append(getApartmentName());
S.append(delimiter);
S.append(getFloorName());
S.append(delimiter);
S.append(getBuildingName());
S.append(delimiter);
S.append(getComplexName());
return S.toString();
}
public Collection ejbFindByApartmentName(String name)
throws FinderException {
return idoFindPKsByQuery(idoQueryGetSelect().appendWhereEquals(
APARTMENT_NAME, name));
}
public Collection ejbFindAll() throws FinderException {
return idoFindAllIDsBySQL();
}
}