package com.idega.block.trade.stockroom.data; import java.util.Collection; import javax.ejb.FinderException; import com.idega.data.GenericEntity; import com.idega.data.IDOAddRelationshipException; import com.idega.data.IDORelationshipException; import com.idega.data.IDORemoveRelationshipException; import com.idega.data.query.Column; import com.idega.data.query.MatchCriteria; import com.idega.data.query.SelectQuery; import com.idega.data.query.Table; import com.idega.data.query.WildCardColumn; /** * @author gimmi */ public class SupplyPoolBMPBean extends GenericEntity implements SupplyPool{ private static final String TABLENAME = "SR_SUPPLY_POOL"; static final String COLUMN_NAME = "POOL_NAME"; static final String COLUMN_DESCRIPTION = "POOL_DESCRIPTION"; static final String COLUMN_SUPPLIER_ID = "SR_SUPPLIER_ID"; static final String COLUMN_IS_DELETED = "IS_DELETED"; public String getEntityName() { return TABLENAME; } public void initializeAttributes() { addAttribute(getIDColumnName()); addAttribute(COLUMN_NAME, "nafn", true, true, String.class); addAttribute(COLUMN_DESCRIPTION, "l�sing", true, true, String.class); addAttribute(COLUMN_IS_DELETED, "valid", true, true, Boolean.class); this.addManyToManyRelationShip(Product.class); this.addManyToOneRelationship(COLUMN_SUPPLIER_ID, Supplier.class); } public void setDefaultValues() { setColumn(COLUMN_IS_DELETED, false); } public void setName(String name) { setColumn(COLUMN_NAME, name); } public String getName() { return getStringColumnValue(COLUMN_NAME); } public void setDescription(String description) { setColumn(COLUMN_DESCRIPTION, description); } public String getDescription() { return getStringColumnValue(COLUMN_DESCRIPTION); } public void setSupplier(Supplier supplier) { setColumn(COLUMN_SUPPLIER_ID, supplier); } public void setSupplierID(int supplierID) { setColumn(COLUMN_SUPPLIER_ID, supplierID); } public Supplier getSupplier() { return (Supplier) getColumnValue(COLUMN_SUPPLIER_ID); } public int getSupplierID() { return getIntColumnValue(COLUMN_SUPPLIER_ID); } public void addProduct(Product product) throws IDOAddRelationshipException { this.idoAddTo(product); } public void removeProduct(Product product) throws IDORemoveRelationshipException { this.idoRemoveFrom(product); } public Collection ejbFindAll() throws FinderException { Table table = new Table(this); Column column = new Column(table, COLUMN_IS_DELETED); SelectQuery query = new SelectQuery(table); query.addColumn(new WildCardColumn(table)); query.addCriteria(new MatchCriteria(column, MatchCriteria.NOTEQUALS, true)); return this.idoFindPKsByQuery(query); } public Collection ejbFindBySupplier(Supplier supplier) throws FinderException { Table table = new Table(this); Column column = new Column(table, COLUMN_IS_DELETED); Column suppID = new Column(table, COLUMN_SUPPLIER_ID); SelectQuery query = new SelectQuery(table); query.addColumn(new WildCardColumn(table)); query.addCriteria(new MatchCriteria(column, MatchCriteria.NOTEQUALS, true)); query.addCriteria(new MatchCriteria(suppID, MatchCriteria.EQUALS, supplier)); return this.idoFindPKsByQuery(query); } public Object ejbFindByProduct(Product product) throws IDORelationshipException, FinderException { return ejbFindByProduct(product.getPrimaryKey()); } public Object ejbFindByProduct(Object productPK) throws IDORelationshipException, FinderException { Table table = new Table(this); Table productTable = new Table(Product.class); Column column = new Column(table, COLUMN_IS_DELETED); Column productID = new Column(productTable, ProductBMPBean.getIdColumnName()); SelectQuery query = new SelectQuery(table); query.addManyToManyJoin(table, productTable); query.addColumn(new WildCardColumn(table)); query.addCriteria(new MatchCriteria(column, MatchCriteria.NOTEQUALS, true)); query.addCriteria(new MatchCriteria(productID, MatchCriteria.EQUALS, productPK)); return this.idoFindOnePKByQuery(query); } public void remove() { setColumn(COLUMN_IS_DELETED, true); try { this.idoRemoveFrom(Product.class); } catch (IDORemoveRelationshipException e) { e.printStackTrace(); } store(); } }