package oes; import org.exolab.castor.jdo.Database; import org.exolab.castor.jdo.Persistent; import org.exolab.castor.jdo.PersistenceException; import org.exolab.castor.mapping.AccessMode; public class Product implements Persistent { private Database _db; private String _sku; private String _shortName; private String _description; private int _categoryId; private Category _category; private int _priceId; private Price _price; public String getSku() { return _sku; } public void setSku(String sku) { if (sku.length() != 14) throw new IllegalArgumentException( "Argument 'sku' must be 14 characters"); _sku = sku; } 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 int getCategoryId() { if (_category != null) return _category.getCategoryId(); return _categoryId; } public void setCategoryId(int id) { _categoryId = id; _category = null; } public Category getCategory() throws PersistenceException { if (_category != null) return _category; _category = (Category) _db.load(Category.class, new Integer(_categoryId)); return _category; } public void setCategory(Category category) { _category = category; _categoryId = category.getCategoryId(); } public int getPriceId() { if (_price != null) return _price.getPriceId(); return _priceId; } public void setPriceId(int id) { _priceId = id; _price = null; } public Price getPrice() throws PersistenceException { if (_price != null) return _price; _price = (Price) _db.load(Price.class, new Integer(_priceId)); return _price; } public void setPrice(Price price) { _price = price; _priceId = price.getPriceId(); } public void jdoPersistent(Database db) { _db = db; } public void jdoTransient() { _db = null; _price = null; _category = 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 { } }