package oes; import java.util.Collection; import java.util.ArrayList; import org.exolab.castor.jdo.Database; import org.exolab.castor.jdo.Persistent; import org.exolab.castor.jdo.PersistenceException; import org.exolab.castor.jdo.Query; import org.exolab.castor.jdo.QueryResults; import org.exolab.castor.mapping.AccessMode; public class Category implements Persistent { private Database _db; private int _categoryId; private String _shortName; private String _description; private Collection _products; public int getCategoryId() { return _categoryId; } public void setCategoryId(int id) { _categoryId = id; } public String getShortName() { return _shortName; } public void setShortName(String shortName) { shortName = shortName.trim(); if (shortName.length() == 0) throw new IllegalArgumentException( "Argument 'shortName' is an empty string"); _shortName = shortName; } public String getDescription() { return _description; } public void setDescription(String description) { description = description.trim(); if (description.length() == 0) throw new IllegalArgumentException( "Argument 'description' is an empty string"); _description = description; } public Collection getProducts() throws PersistenceException { Query qry; QueryResults res; if (_products == null) { _products = new ArrayList(); qry = _db .getOQLQuery("SELECT p FROM Product p WHERE p.category=$1"); qry.bind(_categoryId); res = qry.execute(); while (res.hasMore()) _products.add(res.next()); } return _products; } public void jdoPersistent(Database db) { _db = db; } public void jdoTransient() { _db = null; _products = null; } public Class jdoLoad(AccessMode accessMode) { return null; } public void jdoBeforeCreate(Database db) { } public void jdoAfterCreate() { } public void jdoStore(boolean modified) { } public void jdoBeforeRemove() { } public void jdoAfterRemove() { } public void jdoUpdate() { } public void jdoModify() throws Exception { } }