package com.idega.block.building.data;
import java.util.Collection;
import javax.ejb.FinderException;
import com.idega.data.IDOQuery;
import com.idega.data.IDORelationshipException;
import com.idega.data.query.Column;
import com.idega.data.query.MatchCriteria;
import com.idega.data.query.OR;
import com.idega.data.query.Order;
import com.idega.data.query.SelectQuery;
import com.idega.data.query.Table;
import com.idega.data.query.WildCardColumn;
/**
* Title: Description: Copyright: Copyright (c) 2001 Company: idega multimedia
*
* @author <a href="mailto:aron@idega.is">Aron Birkir</a>
* @version 1.0
*/
public class ApartmentTypeBMPBean extends
com.idega.block.text.data.TextEntityBMPBean implements ApartmentType {
protected static final String ENTITY_NAME = "BU_APRT_TYPE";
protected static final String COLUMN_FURNITURE = "furniture";
protected static final String COLUMN_RENT = "rent";
protected static final String COLUMN_LOFT = "loft";
protected static final String COLUMN_STUDY = "study";
protected static final String COLUMN_BALCONY = "balcony";
protected static final String COLUMN_STORAGE = "storage";
protected static final String COLUMN_BATHROOM = "bathroom";
protected static final String COLUMN_KITCHEN = "kitchen";
protected static final String COLUMN_AREA = "area";
protected static final String COLUMN_ROOM_COUNT = "room_count";
protected static final String COLUMN_PLAN = "plan_id";
protected static final String COLUMN_IMAGE = "ic_image_id";
protected static final String COLUMN_EXTRA_INFO = "extra_info";
protected static final String COLUMN_INFO = "info";
protected static final String COLUMN_NAME = "name";
protected static final String COLUMN_ABBREVIATION = "ABBREV";
protected static final String COLUMN_APARTMENT_SUBCATEGORY = "bu_aprt_subcat";
protected static final String COLUMN_LOCKED = "locked";
protected static final String COLUMN_CONTRACT_TEXT = "contract_text";
public void initializeAttributes() {
addAttribute(getIDColumnName());
addAttribute(COLUMN_NAME, "Name", String.class);
addAttribute(COLUMN_INFO, "Info", String.class, 4000);
addAttribute(COLUMN_ABBREVIATION, "Abbreviation", String.class, 10);
addAttribute(COLUMN_EXTRA_INFO, "Extra_Info", String.class, 4000);
addAttribute(COLUMN_IMAGE, "Photo", Integer.class);
addAttribute(COLUMN_PLAN, "Plan", Integer.class);
addAttribute(COLUMN_ROOM_COUNT, "Room Count", Integer.class);
addAttribute(COLUMN_AREA, "Area", Double.class);
addAttribute(COLUMN_KITCHEN, "Kitchen", Boolean.class);
addAttribute(COLUMN_BATHROOM, "Bath", Boolean.class);
addAttribute(COLUMN_STORAGE, "Storage", Boolean.class);
addAttribute(COLUMN_BALCONY, "Balcony", Boolean.class);
addAttribute(COLUMN_STUDY, "Study", Boolean.class);
addAttribute(COLUMN_LOFT, "Loft", Boolean.class);
addAttribute(COLUMN_RENT, "Rent", Integer.class);
addAttribute(COLUMN_FURNITURE, "Furniture", Boolean.class);
addAttribute(COLUMN_LOCKED, "Locked", Boolean.class);
addAttribute(COLUMN_CONTRACT_TEXT, "Contract text", String.class);
addManyToOneRelationship(COLUMN_APARTMENT_SUBCATEGORY,
ApartmentSubcategory.class);
}
public String getEntityName() {
return ENTITY_NAME;
}
// getters
public String getName() {
return getStringColumnValue(COLUMN_NAME);
}
public int getApartmentSubcategoryID() {
return getIntColumnValue(COLUMN_APARTMENT_SUBCATEGORY);
}
public ApartmentSubcategory getApartmentSubcategory() {
return (ApartmentSubcategory) getColumnValue(COLUMN_APARTMENT_SUBCATEGORY);
}
public String getInfo() {
return getStringColumnValue(COLUMN_INFO);
}
public String getAbbreviation() {
return getStringColumnValue(COLUMN_ABBREVIATION);
}
public String getExtraInfo() {
return getStringColumnValue(COLUMN_EXTRA_INFO);
}
public int getImageId() {
return getIntColumnValue(COLUMN_IMAGE);
}
public int getFloorPlanId() {
return getIntColumnValue(COLUMN_PLAN);
}
public int getRoomCount() {
return getIntColumnValue(COLUMN_ROOM_COUNT);
}
public double getArea() {
return getDoubleColumnValue(COLUMN_AREA);
}
public int getRent() {
return getIntColumnValue(COLUMN_RENT);
}
public boolean getKitchen() {
return getBooleanColumnValue(COLUMN_KITCHEN);
}
public boolean getBathRoom() {
return getBooleanColumnValue(COLUMN_BATHROOM);
}
public boolean getStorage() {
return getBooleanColumnValue(COLUMN_STORAGE);
}
public boolean getBalcony() {
return getBooleanColumnValue(COLUMN_BALCONY);
}
public boolean getStudy() {
return getBooleanColumnValue(COLUMN_STUDY);
}
public boolean getLoft() {
return getBooleanColumnValue(COLUMN_LOFT);
}
public boolean getFurniture() {
return getBooleanColumnValue(COLUMN_FURNITURE);
}
public Collection getApartments() {
try {
return super.idoGetRelatedEntities(Apartment.class);
} catch (Exception e) {
e.printStackTrace();
throw new RuntimeException("Error in getApartments() : "
+ e.getMessage());
}
}
public boolean getLocked() {
return getBooleanColumnValue(COLUMN_LOCKED, false);
}
public String getContractText() {
return getStringColumnValue(COLUMN_CONTRACT_TEXT);
}
// setters
public void setName(String name) {
setColumn(COLUMN_NAME, name);
}
public void setApartmentSubcategoryID(int categoryID) {
setColumn(COLUMN_APARTMENT_SUBCATEGORY, categoryID);
}
public void setApartmentSubcategory(Integer categoryID) {
setColumn(COLUMN_APARTMENT_SUBCATEGORY, categoryID);
}
public void setApartmentSubcategory(ApartmentSubcategory category) {
setColumn(COLUMN_APARTMENT_SUBCATEGORY, category);
}
public void setInfo(String info) {
setColumn(COLUMN_INFO, info);
}
public void setAbbreviation(String abbreviation) {
setColumn(COLUMN_ABBREVIATION, abbreviation);
}
public void setExtraInfo(String info) {
setColumn(COLUMN_EXTRA_INFO, info);
}
public void setImageId(int image_id) {
setColumn(COLUMN_IMAGE, image_id);
}
public void setImageId(Integer image_id) {
setColumn(COLUMN_IMAGE, image_id);
}
public void setFloorPlanId(int floorplan_id) {
setColumn(COLUMN_PLAN, floorplan_id);
}
public void setFloorPlanId(Integer floorplan_id) {
setColumn(COLUMN_PLAN, floorplan_id);
}
public void setRoomCount(int room_count) {
setColumn(COLUMN_ROOM_COUNT, room_count);
}
public void setRoomCount(Integer room_count) {
setColumn(COLUMN_ROOM_COUNT, room_count);
}
public void setArea(double area) {
setColumn(COLUMN_AREA, area);
}
public void setArea(Double area) {
setColumn(COLUMN_AREA, area);
}
public void setRent(int rent) {
setColumn(COLUMN_RENT, rent);
}
public void setRent(Integer rent) {
setColumn(COLUMN_RENT, rent);
}
public void setKitchen(boolean kitchen) {
setColumn(COLUMN_KITCHEN, kitchen);
}
public void setBathRoom(boolean bathroom) {
setColumn(COLUMN_BATHROOM, bathroom);
}
public void setStorage(boolean storage) {
setColumn(COLUMN_STORAGE, storage);
}
public void setBalcony(boolean balcony) {
setColumn(COLUMN_BALCONY, balcony);
}
public void setStudy(boolean study) {
setColumn(COLUMN_STUDY, study);
}
public void setLoft(boolean loft) {
setColumn(COLUMN_LOFT, loft);
}
public void setFurniture(boolean furniture) {
setColumn(COLUMN_FURNITURE, furniture);
}
public void setLocked(boolean locked) {
setColumn(COLUMN_LOCKED, locked);
}
public void setContractText(String contractText) {
setColumn(COLUMN_CONTRACT_TEXT, contractText);
}
// ejb
public Collection ejbFindAll() throws FinderException {
IDOQuery query = idoQuery();
query.appendSelectAllFrom(this);
query.appendWhere();
query.appendLeftParenthesis();
query.append(COLUMN_LOCKED);
query.append(" is null");
query.appendOr();
query.appendEquals(COLUMN_LOCKED, false);
query.appendRightParenthesis();
query.appendOrderBy(COLUMN_NAME);
return this.idoFindPKsByQuery(query);
}
public Collection ejbFindAllIncludingLocked() throws FinderException {
return super.idoFindAllIDsBySQL();
}
public Collection ejbFindByBuilding(Integer buildingID)
throws FinderException {
try {
Table type = new Table(this, "p");
Table apartment = new Table(Apartment.class, "a");
Table floor = new Table(Floor.class, "f");
SelectQuery query = new SelectQuery(type);
query.setAsDistinct(true);
query.addColumn(new WildCardColumn(type));
query.addJoin(type, apartment);
query.addJoin(floor, apartment);
query.addCriteria(new MatchCriteria(new Column(floor,
FloorBMPBean.COLUMN_BUILDING), MatchCriteria.EQUALS,
buildingID.intValue()));
query.addCriteria(new OR(new MatchCriteria(new Column(type,
COLUMN_LOCKED), MatchCriteria.EQUALS, false),
new MatchCriteria(type.getColumn(COLUMN_LOCKED))));
query.addOrder(new Order(new Column(type, COLUMN_NAME), true));
return idoFindPKsBySQL(query.toString());
} catch (IDORelationshipException e) {
throw new FinderException(e.getMessage());
}
}
public Collection ejbFindBySubcategory(Integer categoryID)
throws FinderException {
Table type = new Table(this);
SelectQuery query = new SelectQuery(type);
query.addColumn(new WildCardColumn(type));
query.addCriteria(new MatchCriteria(type, COLUMN_APARTMENT_SUBCATEGORY,
MatchCriteria.EQUALS, categoryID.intValue()));
query.addCriteria(new OR(new MatchCriteria(new Column(type,
COLUMN_LOCKED), MatchCriteria.EQUALS, false),
new MatchCriteria(type.getColumn(COLUMN_LOCKED))));
query.addOrder(new Order(new Column(type, COLUMN_NAME), true));
return idoFindPKsBySQL(query.toString());
}
public Object ejbFindBySubcategoryAndAbbrevation(String abbrevation, ApartmentSubcategory subCategory)
throws FinderException {
Table type = new Table(this);
SelectQuery query = new SelectQuery(type);
query.addColumn(new WildCardColumn(type));
query.addCriteria(new MatchCriteria(type, COLUMN_APARTMENT_SUBCATEGORY,
MatchCriteria.EQUALS, subCategory));
query.addCriteria(new MatchCriteria(type, COLUMN_ABBREVIATION,
MatchCriteria.EQUALS, abbrevation));
return idoFindOnePKByQuery(query);
}
public Collection ejbFindByComplex(Integer complexID)
throws FinderException {
Table type = new Table(this, "p");
Table apartment = new Table(Apartment.class, "a");
Table floor = new Table(Floor.class, "f");
Table building = new Table(Building.class, "b");
SelectQuery query = new SelectQuery(type);
query.setAsDistinct(true);
query.addColumn(new WildCardColumn(type));
try {
query.addJoin(apartment, type);
query.addJoin(apartment, floor);
query.addJoin(floor, building);
} catch (IDORelationshipException e) {
throw new FinderException(e.getMessage());
}
query.addCriteria(new MatchCriteria(new Column(building,
BuildingBMPBean.COLUMN_COMPLEX), MatchCriteria.EQUALS,
complexID.intValue()));
// query.addCriteria(new MatchCriteria(new Column(type,
// COLUMN_LOCKED), MatchCriteria.NOTEQUALS,
// true));
query.addCriteria(new OR(new MatchCriteria(new Column(type,
COLUMN_LOCKED), MatchCriteria.EQUALS, false),
new MatchCriteria(type.getColumn(COLUMN_LOCKED))));
query.addOrder(new Order(new Column(type, COLUMN_NAME), true));
System.out.println("sql = " + query.toString());
return idoFindPKsBySQL(query.toString());
}
}