home *** CD-ROM | disk | FTP | other *** search
/ PC Professionell 2004 December / PCpro_2004_12.ISO / files / webserver / xampp / xampp-cocoon-addon-1.4.9-installer.exe / PersistenceFlow.class (.txt) < prev    next >
Encoding:
Java Class File  |  2004-07-12  |  4.5 KB  |  84 lines

  1. package org.apache.cocoon.samples.flow.java;
  2.  
  3. import java.util.ArrayList;
  4. import java.util.Collections;
  5. import java.util.Iterator;
  6. import org.apache.cocoon.components.flow.java.AbstractContinuable;
  7. import org.apache.cocoon.components.flow.java.VarMap;
  8. import org.apache.cocoon.forms.binding.BindingException;
  9. import org.apache.cocoon.forms.flow.java.FormInstance;
  10. import org.apache.cocoon.ojb.broker.components.PBFactory;
  11. import org.apache.cocoon.ojb.samples.bean.Employee;
  12. import org.apache.ojb.broker.Identity;
  13. import org.apache.ojb.broker.PersistenceBroker;
  14. import org.apache.ojb.broker.query.Criteria;
  15. import org.apache.ojb.broker.query.QueryByCriteria;
  16.  
  17. public class PersistenceFlow extends AbstractContinuable {
  18.    private transient PersistenceBroker broker = null;
  19.  
  20.    public PersistenceFlow() {
  21.       PBFactory factory = (PBFactory)this.getComponent(PBFactory.ROLE);
  22.       this.broker = factory.defaultPersistenceBroker();
  23.       this.releaseComponent(factory);
  24.    }
  25.  
  26.    public void doInsertEmployee() throws BindingException {
  27.       Employee employee = new Employee();
  28.       employee.setId(1);
  29.       FormInstance form = new FormInstance("forms/employee.xml");
  30.       form.createBinding("forms/employee-binding.xml");
  31.       form.load(employee);
  32.       form.show("form/employee");
  33.       form.save(employee);
  34.       this.broker.store(employee);
  35.       this.doShowEmployee();
  36.    }
  37.  
  38.    public void doUpdateEmployee() throws BindingException {
  39.       int id = 1;
  40.       if (this.getRequest().getParameter("id") != null) {
  41.          id = Integer.parseInt(this.getRequest().getParameter("id"));
  42.          Employee employee = new Employee();
  43.          employee.setId(id);
  44.          employee = (Employee)this.broker.getObjectByIdentity(new Identity(employee, this.broker));
  45.          FormInstance form = new FormInstance("forms/employee.xml");
  46.          form.createBinding("forms/employee-binding.xml");
  47.          form.load(employee);
  48.          form.show("form/employee");
  49.          form.save(employee);
  50.          this.broker.store(employee);
  51.          this.doShowEmployee();
  52.       } else {
  53.          throw new IllegalStateException("No parameter 'id'");
  54.       }
  55.    }
  56.  
  57.    public void doRemoveEmployee() {
  58.       int id = 1;
  59.       if (this.getRequest().getParameter("id") != null) {
  60.          id = Integer.parseInt(this.getRequest().getParameter("id"));
  61.          Employee employee = new Employee();
  62.          employee.setId(id);
  63.          employee = (Employee)this.broker.getObjectByIdentity(new Identity(employee, this.broker));
  64.          this.broker.delete(employee);
  65.          this.doShowEmployee();
  66.       } else {
  67.          throw new IllegalStateException("No parameter 'id'");
  68.       }
  69.    }
  70.  
  71.    public void doShowEmployee() {
  72.       ArrayList results = new ArrayList();
  73.       QueryByCriteria query = new QueryByCriteria(Employee.class, new Criteria());
  74.       Iterator i = this.broker.getCollectionByQuery(query).iterator();
  75.  
  76.       while(i.hasNext()) {
  77.          results.add(i.next());
  78.       }
  79.  
  80.       Collections.sort(results, new EmployeeComparator(this));
  81.       this.sendPage("page/employee-result", (new VarMap()).add("employee", results));
  82.    }
  83. }
  84.