Clover Coverage Report - perfectjpattern(Aggregated)
Coverage timestamp: Sat Feb 28 2009 14:35:07 CET
../../../../../img/srcFileCovDistChart10.png 0% of files have more coverage
5   101   5   1.25
0   42   1   4
4     1.25  
1    
10% of code in this file is excluded from these metrics.
 
  HibernateQueryAdapter       Line # 38 5 10% 5 0 100% 1.0
 
  (4)
 
1    //----------------------------------------------------------------------
2    //
3    // PerfectJPattern: "Design patterns are good but components are better!"
4    // HibernateQueryAdapter.java Copyright (c) 2009 Giovanni Azua Garcia
5    // bravegag@hotmail.com
6    //
7    // This program is free software; you can redistribute it and/or
8    // modify it under the terms of the GNU General Public License
9    // as published by the Free Software Foundation; either version 3
10    // of the License, or (at your option) any later version.
11    //
12    // This program is distributed in the hope that it will be useful,
13    // but WITHOUT ANY WARRANTY; without even the implied warranty of
14    // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15    // GNU General Public License for more details.
16    //
17    // You should have received a copy of the GNU General Public License
18    // along with this program; if not, see <http://www.gnu.org/licenses/>.
19    //
20    //----------------------------------------------------------------------
21    package org.perfectjpattern.jee.integration.dao;
22   
23    import java.lang.reflect.*;
24    import java.util.*;
25   
26    import org.hibernate.*;
27    import org.perfectjpattern.core.structural.adapter.*;
28    import org.perfectjpattern.jee.api.integration.dao.*;
29   
30    /**
31    * Adapts Hibernate's {@link Query} to the JPA implementation-free
32    * PerfectJPattern's {@link IQuery} definition
33    *
34    * @author <a href="mailto:bravegag@hotmail.com">Giovanni Azua</a>
35    * @version $Revision: 1.0 $Date: Feb 18, 2009 11:54:49 AM $
36    */
37    public
 
38    class HibernateQueryAdapter
39    extends Adapter<IQuery, Query>
40    {
41    //------------------------------------------------------------------------
42    // public
43    //------------------------------------------------------------------------
44    /**
45    * Constructs a {@link HibernateQueryAdapter} from the Adaptee
46    * {@link Query} instance
47    *
48    * @param anAdaptee Adaptee Hibernate Query
49    * @throws IllegalArgumentException
50    */
 
51  14 toggle public
52    HibernateQueryAdapter(Query anAdaptee)
53    throws IllegalArgumentException
54    {
55  14 super(IQuery.class, anAdaptee);
56    }
57   
58    //------------------------------------------------------------------------
59    // protected
60    //------------------------------------------------------------------------
61    /**
62    * {@inheritDoc}
63    */
 
64  5 toggle @Override
65    protected Object
66    invokeUnderlying(Method aMethod, Object[] anArguments)
67    throws Throwable
68    {
69  5 try
70    {
71  5 return super.invokeUnderlying(aMethod, anArguments);
72    }
73    // CHECKSTYLE:OFF
74    catch (Throwable anException)
75    // CHECKSTYLE:ON
76    {
77    // make sure that Exceptions are properly chained
78    throw new DaoException(anException);
79    }
80    }
81   
82    //------------------------------------------------------------------------
 
83  3 toggle @SuppressWarnings("unchecked")
84    public <E> List<E>
85    getResultList()
86    {
87  3 return (List<E>) getUnderlying().list();
88    }
89   
90    //------------------------------------------------------------------------
91    /**
92    * Returns the query result as a single result
93    *
94    * @return query result as a single result
95    */
 
96  6 toggle public Object
97    getSingleResult()
98    {
99  6 return getUnderlying().uniqueResult();
100    }
101    }