Coverage Report - org.trails.page.HibernateEditPage
 
Classes in this File Line Coverage Branch Coverage Complexity
HibernateEditPage
50% 
100% 
0
 
 1  0
 package org.trails.page;
 2  
 
 3  
 import org.apache.tapestry.annotations.Bean;
 4  
 import org.apache.tapestry.annotations.Lifecycle;
 5  
 import org.apache.tapestry.annotations.InjectObject;
 6  
 import org.hibernate.validator.InvalidStateException;
 7  
 import org.trails.persistence.HibernatePersistenceService;
 8  
 import org.trails.persistence.PersistenceException;
 9  
 import org.trails.validation.HibernateValidationDelegate;
 10  
 
 11  4
 public abstract class HibernateEditPage extends EditPage
 12  
 {
 13  
 
 14  
         @Bean(lifecycle = Lifecycle.REQUEST)
 15  
         public abstract HibernateValidationDelegate getHibernateValidationDelegate();
 16  
 
 17  
         /**
 18  
          * @todo: remove when the components reuse issue goes away.
 19  
          */
 20  
         public HibernateValidationDelegate getDelegate()
 21  
         {
 22  8
                 return getHibernateValidationDelegate();
 23  
         }
 24  
 
 25  
         @InjectObject("service:trails.hibernate.PersistenceService")
 26  
         public abstract HibernatePersistenceService getHibernatePersistenceService();
 27  
 
 28  
         /**
 29  
          * @todo: remove when the components reuse issue goes away.
 30  
          */
 31  
         public HibernatePersistenceService getPersistenceService()
 32  
         {
 33  4
                 return getHibernatePersistenceService();
 34  
         }
 35  
 
 36  
         @Override
 37  
         protected boolean save()
 38  
         {
 39  4
                 if (!getDelegate().getHasErrors())
 40  
                 {
 41  
                         try
 42  
                         {
 43  4
                                 if (isReferencedByParentPage() && isModelNew())
 44  
                                 {
 45  0
                                         setModel(getPersistenceService().saveCollectionElement(
 46  0
                                                         getAssociationDescriptor().getAddExpression(), getModel(), getParent()));
 47  0
                                         setModelNew(false);
 48  
                                 } else
 49  
                                 {
 50  4
                                         setModel(getPersistenceService().save(getModel()));
 51  
                                 }
 52  
 
 53  0
                         } catch (PersistenceException pe)
 54  
                         {
 55  0
                                 getDelegate().record(pe);
 56  0
                                 return false;
 57  4
                         } catch (InvalidStateException ivex)
 58  
                         {
 59  4
                                 getDelegate().record(getClassDescriptor(), ivex);
 60  4
                                 return false;
 61  
                         }
 62  0
                         return true;
 63  
                 }
 64  0
                 return false;
 65  
         }
 66  
 }