InventoryMgmtRMIEJB.java
package ejava.examples.ejbwar.inventory.rmi;
import javax.ejb.Stateless;
import javax.inject.Inject;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import ejava.examples.ejbwar.inventory.bo.Categories;
import ejava.examples.ejbwar.inventory.bo.Category;
import ejava.examples.ejbwar.inventory.bo.Product;
import ejava.examples.ejbwar.inventory.bo.Products;
import ejava.examples.ejbwar.inventory.ejb.InventoryMgmtEJB;
/**
* This EJB acts as a remote facade for the InventoryEJB business logic.
*/
@Stateless
public class InventoryMgmtRMIEJB implements InventoryMgmtRemote {
private static final Logger logger = LoggerFactory.getLogger(InventoryMgmtRMIEJB.class);
@Inject
private InventoryMgmtEJB ejb;
@Override
public Categories findCategoryByName(String name, int offset, int limit) {
logger.debug("findCategoryByName({})", name);
return ejb.findCategoryByName(name, offset, limit);
}
@Override
public boolean deleteCategory(int id) {
logger.debug("deleteCategory({})", id);
ejb.deleteCategory(id);
return true;
}
@Override
public Products findProductsByName(String name, int offset, int limit) {
logger.debug("findProductByName({})", name);
return ejb.findProductByName(name, offset, limit);
}
@Override
public boolean deleteProduct(int id) {
logger.debug("deleteProduct({})", id);
Product p = ejb.getProduct(id);
if (p!=null) {
ejb.deleteProduct(p);
}
return true;
}
@Override
public Product createProduct(Product product, String category) {
logger.debug("createProduct({})", product);
return ejb.addProduct(product, category);
}
@Override
public Product getProduct(int id) {
logger.debug(String.format("getProduct(%d)", id));
return ejb.getProduct(id);
}
@Override
public Category getCategory(int id) {
logger.debug("getCategory({})", id);
Category category = ejb.getCategory(id);
//hydrate the object before returning
category.getProducts().size();
return category;
}
@Override
public Product updateProduct(Product product) {
logger.debug("updateProduct({})", product);
return ejb.updateProduct(product);
}
}