package is.idega.idegaweb.travel.service.hotel.data; import java.util.Collection; import javax.ejb.FinderException; import com.idega.block.trade.stockroom.data.Product; import com.idega.block.trade.stockroom.data.Supplier; import com.idega.data.GenericEntity; import com.idega.data.IDOCompositePrimaryKeyException; import com.idega.data.IDORelationshipException; import com.idega.data.query.Column; import com.idega.data.query.InCriteria; import com.idega.data.query.JoinCriteria; import com.idega.data.query.MatchCriteria; import com.idega.data.query.SelectQuery; import com.idega.data.query.Table; /** * @author gimmi */ public class RoomTypeBMPBean extends GenericEntity implements RoomType { public static String COLUMN_NAME = "TYPE_NAME"; private static String COLUMN_VALID = "IS_VALID"; public RoomTypeBMPBean() { super(); } public String getEntityName() { return "TB_ACC_ROOM_TYPE"; } public void initializeAttributes() { addAttribute(getIDColumnName()); addAttribute(COLUMN_NAME, "name", true, true, String.class); addAttribute(COLUMN_VALID, "valid", true, true, Boolean.class); } public String getName() { return getStringColumnValue(COLUMN_NAME); } public void setName(String name) { setColumn(COLUMN_NAME, name); } public boolean getIsValid() { return getBooleanColumnValue(COLUMN_VALID); } public void setIsValid(boolean isValid) { setColumn(COLUMN_VALID, isValid); } public Collection ejbFindAll() throws FinderException { return this.idoFindAllIDsByColumnBySQL(COLUMN_VALID, "Y"); } public Collection ejbFindAllUsedBySuppliers(Collection suppliers) throws IDOCompositePrimaryKeyException, IDORelationshipException, FinderException { Table roomType = new Table(this); Table hotel = new Table(Hotel.class); Table product = new Table(Product.class); Table supplier = new Table(Supplier.class); Column prodCol = new Column(product, product.getEntityDefinition().getPrimaryKeyDefinition().getField().getSQLFieldName()); Column hotelCol = new Column(hotel, hotel.getEntityDefinition().getPrimaryKeyDefinition().getField().getSQLFieldName()); Column suppCol = new Column(supplier, supplier.getEntityDefinition().getPrimaryKeyDefinition().getField().getSQLFieldName()); Column valid = new Column(roomType, COLUMN_VALID); JoinCriteria jc = new JoinCriteria(prodCol, hotelCol); Column pkCol = new Column(roomType, getIDColumnName()); pkCol.setAsDistinct(); SelectQuery query = new SelectQuery(roomType); query.addColumn(pkCol); query.addJoin(roomType, hotel); query.addCriteria(jc); query.addJoin(product, supplier); query.addCriteria(new MatchCriteria(valid, MatchCriteria.EQUALS, true)); query.addCriteria(new InCriteria(suppCol, suppliers)); return idoFindPKsByQuery(query); } }