KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > apache > ojb > broker > accesslayer > SqlBasedRsIterator


1 package org.apache.ojb.broker.accesslayer;
2
3 /* Copyright 2002-2005 The Apache Software Foundation
4  *
5  * Licensed under the Apache License, Version 2.0 (the "License");
6  * you may not use this file except in compliance with the License.
7  * You may obtain a copy of the License at
8  *
9  * http://www.apache.org/licenses/LICENSE-2.0
10  *
11  * Unless required by applicable law or agreed to in writing, software
12  * distributed under the License is distributed on an "AS IS" BASIS,
13  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14  * See the License for the specific language governing permissions and
15  * limitations under the License.
16  */

17
18 import org.apache.ojb.broker.Identity;
19 import org.apache.ojb.broker.PersistenceBrokerException;
20 import org.apache.ojb.broker.core.PersistenceBrokerImpl;
21
22 /**
23  * RsIterator based on SQL-Statement
24  *
25  * @author <a HREF="mailto:jbraeuchi@hotmail.com">Jakob Braeuchi</a>
26  * @version $Id: SqlBasedRsIterator.java,v 1.23.2.1 2005/12/21 22:22:58 tomdz Exp $
27  */

28 public class SqlBasedRsIterator extends RsIterator
29 {
30     /**
31      * SqlBasedRsIterator constructor.
32      */

33     public SqlBasedRsIterator(RsQueryObject queryObject, PersistenceBrokerImpl broker)
34             throws PersistenceBrokerException
35     {
36         super(queryObject, broker);
37         if(!queryObject.isSQLBased())
38         {
39             throw new PersistenceBrokerException("Given query is not a QueryBySQL object");
40         }
41     }
42
43     /**
44      * returns a proxy or a fully materialized Object from the current row of the
45      * underlying resultset.
46      */

47     protected Object JavaDoc getObjectFromResultSet() throws PersistenceBrokerException
48     {
49
50         try
51         {
52             // if all primitive attributes of the object are contained in the ResultSet
53
// the fast direct mapping can be used
54
return super.getObjectFromResultSet();
55         }
56                 // if the full loading failed we assume that at least PK attributes are contained
57
// in the ResultSet and perform a slower Identity based loading...
58
// This may of course also fail and can throw another PersistenceBrokerException
59
catch (PersistenceBrokerException e)
60         {
61             Identity oid = getIdentityFromResultSet();
62             return getBroker().getObjectByIdentity(oid);
63         }
64
65     }
66 }
67
Popular Tags