package com.idega.block.building.data;
import java.util.Collection;
import javax.ejb.FinderException;
import com.idega.block.text.data.TextEntityBMPBean;
import com.idega.core.file.data.ICFile;
import com.idega.data.IDOQuery;
import com.idega.data.IDORelationshipException;
import com.idega.data.query.MatchCriteria;
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 BuildingBMPBean extends TextEntityBMPBean implements Building {
protected final static String ENTITY_NAME = "bu_building";
protected static final String COLUMN_SERIE = "serie";
protected static final String COLUMN_STREET_NUMBER = "street_number";
protected static final String COLUMN_STREET = "street";
protected static final String COLUMN_IMAGE = "ic_image_id";
protected static final String COLUMN_COMPLEX = "bu_complex_id";
protected static final String COLUMN_INFO = "info";
protected static final String COLUMN_NAME = "name";
protected static final String COLUMN_DIVISION = "division";
protected static final String COLUMN_POSTAL_CODE = "postal_code";
protected static final String COLUMN_POSTAL_ADDRESS = "postal_address";
protected static final String COLUMN_LOCKED = "locked";
protected static final String COLUMN_RENTER_NAME = "renter_name";
protected static final String COLUMN_RENTER_ADDRESS = "renter_address";
protected static final String COLUMN_RENTER_ID = "renter_id";
public void initializeAttributes() {
addAttribute(getIDColumnName());
addAttribute(COLUMN_NAME, "Name", String.class);
addAttribute(COLUMN_INFO, "Info", String.class);
setMaxLength(COLUMN_INFO, 4000);
addAttribute(COLUMN_STREET, "Street", String.class);
addAttribute(COLUMN_STREET_NUMBER, "Streetnumber", Integer.class);
addAttribute(COLUMN_SERIE, "Serie", String.class, 2);
addAttribute(COLUMN_DIVISION, "Division", String.class, 2);
addAttribute(COLUMN_POSTAL_CODE, "Postal code", String.class);
addAttribute(COLUMN_POSTAL_ADDRESS, "Postal address", String.class);
addAttribute(COLUMN_LOCKED, "Locked", Boolean.class);
addAttribute(COLUMN_RENTER_NAME, "Renter name", String.class);
addAttribute(COLUMN_RENTER_ADDRESS, "Renter address", String.class);
addAttribute(COLUMN_RENTER_ID, "Renter id", String.class);
addManyToOneRelationship(COLUMN_IMAGE, ICFile.class);
addManyToOneRelationship(COLUMN_COMPLEX, Complex.class);
}
public String getEntityName() {
return ENTITY_NAME;
}
//getters
public String getName() {
return getStringColumnValue(COLUMN_NAME);
}
public String getInfo() {
return getStringColumnValue(COLUMN_INFO);
}
public int getComplexId() {
return getIntColumnValue(COLUMN_COMPLEX);
}
public Complex getComplex() {
return (Complex) getColumnValue(COLUMN_COMPLEX);
}
public int getImageId() {
return getIntColumnValue(COLUMN_IMAGE);
}
public String getStreet() {
return getStringColumnValue(COLUMN_STREET);
}
public String getStreetNumber() {
return getStringColumnValue(COLUMN_STREET_NUMBER);
}
public String getSerie() {
return getStringColumnValue(COLUMN_SERIE);
}
public String getDivision() {
return getStringColumnValue(COLUMN_DIVISION);
}
public String getPostalCode() {
return getStringColumnValue(COLUMN_POSTAL_CODE);
}
public String getPostalAddress() {
return getStringColumnValue(COLUMN_POSTAL_ADDRESS);
}
public boolean getLocked() {
return getBooleanColumnValue(COLUMN_LOCKED, false);
}
public String getRenterName() {
return getStringColumnValue(COLUMN_RENTER_NAME);
}
public String getRenterAddress() {
return getStringColumnValue(COLUMN_RENTER_ADDRESS);
}
public String getRenterID() {
return getStringColumnValue(COLUMN_RENTER_ID);
}
//setters
public void setName(String name) {
setColumn(COLUMN_NAME, name);
}
public void setInfo(String info) {
setColumn(COLUMN_INFO, info);
}
public void setComplexId(int complex_id) {
setColumn(COLUMN_COMPLEX, complex_id);
}
public void setComplex(Complex complex) {
setColumn(COLUMN_COMPLEX, complex);
}
public void setImageId(int image_id) {
setColumn(COLUMN_IMAGE, image_id);
}
public void setImageId(Integer image_id) {
setColumn(COLUMN_IMAGE, image_id);
}
public void setStreet(String street) {
setColumn(COLUMN_STREET, street);
}
public void setStreetNumber(String street_number) {
setColumn(COLUMN_STREET_NUMBER, street_number);
}
public void setSerie(String serie) {
setColumn(COLUMN_SERIE, serie);
}
public void setDivision(String division) {
setColumn(COLUMN_DIVISION, division);
}
public void setPostalCode(String postalCode) {
setColumn(COLUMN_POSTAL_CODE, postalCode);
}
public void setPostalAddress(String postalAddress) {
setColumn(COLUMN_POSTAL_ADDRESS, postalAddress);
}
public void setLocked(boolean locked) {
setColumn(COLUMN_LOCKED, locked);
}
public void setRenterName(String name) {
setColumn(COLUMN_RENTER_NAME, name);
}
public void setRenterAddress(String address) {
setColumn(COLUMN_RENTER_ADDRESS, address);
}
public void setRenterID(String id) {
setColumn(COLUMN_RENTER_ID, id);
}
//ejb
public Collection ejbFindAll() throws FinderException {
return idoFindPKsByQuery(idoQueryGetSelect().appendOrderBy(COLUMN_NAME));
}
public Collection ejbFindAllIncludingLocked() 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 ejbFindByComplex(Integer complexID)
throws FinderException {
IDOQuery query = idoQuery();
query.appendSelectAllFrom(this);
query.appendWhereEquals(COLUMN_COMPLEX, complexID);
query.appendOrderBy(COLUMN_NAME);
return idoFindPKsByQuery(query);
}
public Object ejbFindByComplexAndName(String name, Complex complex) throws FinderException {
IDOQuery query = idoQuery();
query.appendSelectAllFrom(this);
query.appendWhereEquals(COLUMN_COMPLEX, complex);
query.appendAndEqualsQuoted(COLUMN_NAME, name);
return this.idoFindOnePKByQuery(query);
}
public Collection ejbHomeGetImageFilesByComplex(Integer complexID)
throws FinderException {
try {
Table building = new Table(this);
Table file = new Table(ICFile.class);
SelectQuery query = new SelectQuery(file);
query.addColumn(new WildCardColumn(file));
query.addJoin(building, file);
query.addCriteria(new MatchCriteria(building, COLUMN_COMPLEX,
MatchCriteria.EQUALS, complexID.intValue()));
return idoGetRelatedEntitiesBySQL(ICFile.class, query.toString());
} catch (IDORelationshipException e) {
throw new FinderException(e.getMessage());
}
}
public Collection getFloors() {
try {
return super.idoGetRelatedEntities(Floor.class);
} catch (Exception e) {
e.printStackTrace();
throw new RuntimeException("Error in getFloors() : "
+ e.getMessage());
}
}
public Collection ejbFindByComplex(Complex complex) throws FinderException {
return ejbFindByComplex((Integer) complex.getPrimaryKey());
}
}