View Javadoc

1   // Created on 05.12.2003
2   package com.pnpconsult.zeiterfassung.actions;
3   
4   import java.io.Serializable;
5   
6   import net.sf.hibernate.HibernateException;
7   
8   import org.apache.commons.logging.Log;
9   import org.apache.commons.logging.LogFactory;
10  import org.apache.struts.action.ActionForm;
11  
12  import com.pnpconsult.zeiterfassung.helper.ArchivableObjectManager;
13  import com.pnpconsult.zeiterfassung.helper.ObjectSupport;
14  
15  /***
16   * @author <a href="mailto:powerpete@users.sf.net">M. Petersen </a>
17   * @version $Id: EditForm.java,v 1.7 2004/06/24 20:54:20 powerpete Exp $
18   */
19  public abstract class EditForm extends ActionForm
20  {
21      private static final Log LOG = LogFactory.getLog(EditForm.class);
22  
23      protected boolean isNew;
24  
25      public boolean isNew()
26      {
27          return isNew;
28      }
29  
30      public void setNew(boolean newValue)
31      {
32          this.isNew = newValue;
33      }
34  
35      protected abstract void writeToDataObject(Object obj);
36  
37      protected abstract void readFromDataObject(Object obj);
38  
39      protected abstract Object newDataObject();
40  
41      protected abstract Class dataObjectType();
42  
43      protected abstract Serializable dataObjectKey();
44  
45      public void changeArchived()
46      {
47          Serializable key = dataObjectKey();
48          Class type = dataObjectType();
49          try
50          {
51              new ArchivableObjectManager().changeArchived(type, key);
52          }
53          catch (HibernateException e)
54          {
55              LOG.fatal("Error changing archived flag of object of " + type
56                  + " with key " + key, e);
57          }
58      }
59  
60      public void load()
61      {
62          Class type = dataObjectType();
63          Serializable key = dataObjectKey();
64          try
65          {
66              readFromDataObject(new ObjectSupport().load(type, key));
67          }
68          catch (HibernateException e)
69          {
70              LOG.fatal("Error loading object of class " + type + " with key "
71                  + key, e);
72          }
73      }
74  
75      public void update()
76      {
77          Object obj = null;
78          Class type = dataObjectType();
79          Serializable key = dataObjectKey();
80          ObjectSupport support = new ObjectSupport();
81          try
82          {
83              obj = support.load(type, key);
84              writeToDataObject(obj);
85              support.update(obj);
86          }
87          catch (HibernateException e)
88          {
89              LOG.fatal("Error updating object of class " + type.getName()
90                  + " with key " + key, e);
91          }
92      }
93  
94      /***
95       *  
96       */
97      public void save()
98      {
99          try
100         {
101             Object obj = newDataObject();
102             writeToDataObject(obj);
103             new ObjectSupport().save(obj, dataObjectKey());
104         }
105         catch (HibernateException e)
106         {
107             LOG.fatal("Error saving object of class " + dataObjectType()
108                 + " with key " + dataObjectKey(), e);
109         }
110     }
111 }