home *** CD-ROM | disk | FTP | other *** search
- package org.apache.cocoon.samples.flow.java;
-
- import java.util.ArrayList;
- import java.util.Collections;
- import java.util.Iterator;
- import org.apache.cocoon.components.flow.java.AbstractContinuable;
- import org.apache.cocoon.components.flow.java.VarMap;
- import org.apache.cocoon.forms.binding.BindingException;
- import org.apache.cocoon.forms.flow.java.FormInstance;
- import org.apache.cocoon.ojb.broker.components.PBFactory;
- import org.apache.cocoon.ojb.samples.bean.Employee;
- import org.apache.ojb.broker.Identity;
- import org.apache.ojb.broker.PersistenceBroker;
- import org.apache.ojb.broker.query.Criteria;
- import org.apache.ojb.broker.query.QueryByCriteria;
-
- public class PersistenceFlow extends AbstractContinuable {
- private transient PersistenceBroker broker = null;
-
- public PersistenceFlow() {
- PBFactory factory = (PBFactory)this.getComponent(PBFactory.ROLE);
- this.broker = factory.defaultPersistenceBroker();
- this.releaseComponent(factory);
- }
-
- public void doInsertEmployee() throws BindingException {
- Employee employee = new Employee();
- employee.setId(1);
- FormInstance form = new FormInstance("forms/employee.xml");
- form.createBinding("forms/employee-binding.xml");
- form.load(employee);
- form.show("form/employee");
- form.save(employee);
- this.broker.store(employee);
- this.doShowEmployee();
- }
-
- public void doUpdateEmployee() throws BindingException {
- int id = 1;
- if (this.getRequest().getParameter("id") != null) {
- id = Integer.parseInt(this.getRequest().getParameter("id"));
- Employee employee = new Employee();
- employee.setId(id);
- employee = (Employee)this.broker.getObjectByIdentity(new Identity(employee, this.broker));
- FormInstance form = new FormInstance("forms/employee.xml");
- form.createBinding("forms/employee-binding.xml");
- form.load(employee);
- form.show("form/employee");
- form.save(employee);
- this.broker.store(employee);
- this.doShowEmployee();
- } else {
- throw new IllegalStateException("No parameter 'id'");
- }
- }
-
- public void doRemoveEmployee() {
- int id = 1;
- if (this.getRequest().getParameter("id") != null) {
- id = Integer.parseInt(this.getRequest().getParameter("id"));
- Employee employee = new Employee();
- employee.setId(id);
- employee = (Employee)this.broker.getObjectByIdentity(new Identity(employee, this.broker));
- this.broker.delete(employee);
- this.doShowEmployee();
- } else {
- throw new IllegalStateException("No parameter 'id'");
- }
- }
-
- public void doShowEmployee() {
- ArrayList results = new ArrayList();
- QueryByCriteria query = new QueryByCriteria(Employee.class, new Criteria());
- Iterator i = this.broker.getCollectionByQuery(query).iterator();
-
- while(i.hasNext()) {
- results.add(i.next());
- }
-
- Collections.sort(results, new EmployeeComparator(this));
- this.sendPage("page/employee-result", (new VarMap()).add("employee", results));
- }
- }
-