You are viewing a plain text version of this content. The canonical link for it is here.
Posted to ojb-dev@db.apache.org by br...@apache.org on 2003/11/23 10:50:45 UTC
cvs commit: db-ojb/src/java/org/apache/ojb/broker/accesslayer PagingIterator.java ReportQueryRsIterator.java SqlBasedReportQueryRsIterator.java SqlBasedRsIterator.java RsIterator.java
brj 2003/11/23 01:50:45
Modified: src/java/org/apache/ojb/broker/accesslayer
PagingIterator.java ReportQueryRsIterator.java
SqlBasedReportQueryRsIterator.java
SqlBasedRsIterator.java RsIterator.java
Log:
some refactorings
Revision Changes Path
1.4 +5 -4 db-ojb/src/java/org/apache/ojb/broker/accesslayer/PagingIterator.java
Index: PagingIterator.java
===================================================================
RCS file: /home/cvs/db-ojb/src/java/org/apache/ojb/broker/accesslayer/PagingIterator.java,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- PagingIterator.java 20 Nov 2003 20:59:26 -0000 1.3
+++ PagingIterator.java 23 Nov 2003 09:50:44 -0000 1.4
@@ -139,14 +139,15 @@
m_iterator.releaseDbResources();
}
- /* (non-Javadoc)
- * @see java.util.Iterator#remove()
+ /**
+ * remove is not supported
*/
public void remove()
{
- m_iterator.remove();
+ throw new UnsupportedOperationException("remove not supported by PagingIterator");
}
+
/* (non-Javadoc)
* @see java.util.Iterator#hasNext()
*/
1.7 +3 -3 db-ojb/src/java/org/apache/ojb/broker/accesslayer/ReportQueryRsIterator.java
Index: ReportQueryRsIterator.java
===================================================================
RCS file: /home/cvs/db-ojb/src/java/org/apache/ojb/broker/accesslayer/ReportQueryRsIterator.java,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -r1.6 -r1.7
--- ReportQueryRsIterator.java 14 Nov 2003 18:16:46 -0000 1.6
+++ ReportQueryRsIterator.java 23 Nov 2003 09:50:44 -0000 1.7
@@ -81,7 +81,7 @@
super(queryObject, broker);
try
{
- rsMetaData = super.m_rsAndStmt.m_rs.getMetaData();
+ rsMetaData = getRsAndStmt().m_rs.getMetaData();
columnCount = rsMetaData.getColumnCount();
}
catch (SQLException e)
@@ -103,7 +103,7 @@
try
{
int jdbcType = rsMetaData.getColumnType(i + 1);
- Object item = SqlHelper.getObjectFromColumn(super.m_rsAndStmt.m_rs, jdbcType, i + 1);
+ Object item = SqlHelper.getObjectFromColumn(getRsAndStmt().m_rs, jdbcType, i + 1);
result[i] = item;
}
catch (SQLException e)
1.8 +3 -3 db-ojb/src/java/org/apache/ojb/broker/accesslayer/SqlBasedReportQueryRsIterator.java
Index: SqlBasedReportQueryRsIterator.java
===================================================================
RCS file: /home/cvs/db-ojb/src/java/org/apache/ojb/broker/accesslayer/SqlBasedReportQueryRsIterator.java,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -r1.7 -r1.8
--- SqlBasedReportQueryRsIterator.java 14 Nov 2003 18:16:46 -0000 1.7
+++ SqlBasedReportQueryRsIterator.java 23 Nov 2003 09:50:44 -0000 1.8
@@ -82,7 +82,7 @@
super(queryObject, broker);
try
{
- rsMetaData = m_rsAndStmt.m_rs.getMetaData();
+ rsMetaData = getRsAndStmt().m_rs.getMetaData();
columnCount = rsMetaData.getColumnCount();
}
catch (SQLException e)
@@ -104,7 +104,7 @@
try
{
int jdbcType = rsMetaData.getColumnType(i + 1);
- Object item = SqlHelper.getObjectFromColumn(super.m_rsAndStmt.m_rs, jdbcType, i + 1);
+ Object item = SqlHelper.getObjectFromColumn(getRsAndStmt().m_rs, jdbcType, i + 1);
result[i] = item;
}
catch (SQLException e)
1.21 +2 -2 db-ojb/src/java/org/apache/ojb/broker/accesslayer/SqlBasedRsIterator.java
Index: SqlBasedRsIterator.java
===================================================================
RCS file: /home/cvs/db-ojb/src/java/org/apache/ojb/broker/accesslayer/SqlBasedRsIterator.java,v
retrieving revision 1.20
retrieving revision 1.21
diff -u -r1.20 -r1.21
--- SqlBasedRsIterator.java 23 Nov 2003 09:29:27 -0000 1.20
+++ SqlBasedRsIterator.java 23 Nov 2003 09:50:44 -0000 1.21
@@ -98,7 +98,7 @@
catch (PersistenceBrokerException e)
{
Identity oid = getIdentityFromResultSet();
- return m_broker.getObjectByIdentity(oid);
+ return getBroker().getObjectByIdentity(oid);
}
}
1.49 +190 -91 db-ojb/src/java/org/apache/ojb/broker/accesslayer/RsIterator.java
Index: RsIterator.java
===================================================================
RCS file: /home/cvs/db-ojb/src/java/org/apache/ojb/broker/accesslayer/RsIterator.java,v
retrieving revision 1.48
retrieving revision 1.49
diff -u -r1.48 -r1.49
--- RsIterator.java 23 Nov 2003 09:29:27 -0000 1.48
+++ RsIterator.java 23 Nov 2003 09:50:44 -0000 1.49
@@ -91,89 +91,86 @@
* arminw: to improve performance we only use this instance to fire events
* and set the target object on every use TODO: Find a better solution
*/
- protected PBLifeCycleEvent afterLookupEvent;
+ private PBLifeCycleEvent afterLookupEvent;
- protected ObjectCache cache;
+ private ObjectCache m_cache;
/**
* reference to the PersistenceBroker
*/
- protected PersistenceBrokerImpl m_broker;
+ private PersistenceBrokerImpl m_broker;
/**
* the underlying resultset
*/
- protected ResultSetAndStatement m_rsAndStmt;
+ private ResultSetAndStatement m_rsAndStmt;
/**
* the underlying query object
*/
- protected org.apache.ojb.broker.accesslayer.RsQueryObject queryObject;
+ private org.apache.ojb.broker.accesslayer.RsQueryObject m_queryObject;
/**
* the proxy class to be used or null
*/
- protected Class itemProxyClass;
+ private Class m_itemProxyClass;
/**
* the top-level class of the item objects
*/
- private Class itemTopLevelClass = null;
+ private Class m_itemTopLevelClass = null;
/**
* this container holds the values of the current ro during materialisation
*/
- protected Map m_row = null;
+ private Map m_row = null;
/**
* flag that indicates wether hasNext on m_rs has allready been called
*/
- protected boolean hasCalledCheck = false;
+ private boolean m_hasCalledCheck = false;
/**
* prefetch relationship: inBatchedMode true prevents releasing of
* DbResources IN_LIMIT defines the max number of values of sql (IN) , -1
* for no limits
*/
- protected boolean inBatchedMode = false;
+ private boolean m_inBatchedMode = false;
/**
* return value of the previously called hasNext from m_rs
*/
- protected boolean hasNext = false;
+ private boolean hasNext = false;
private boolean advancedJDBCSupport = false;
private boolean JDBCSupportAssessed = false;
private int m_current_row = 0;
/**
- * Tracks whether or not the resources that are used by this class have
- * been released.
+ * Tracks whether or not the resources that are used by this class have been released.
*/
private boolean resourcesAreReleased = false;
/**
* RsIterator constructor.
*
- * @param queryObject
- * query object
- * @param broker
- * the broker we should use.
+ * @param queryObject query object
+ * @param broker the broker we should use.
*/
public RsIterator(RsQueryObject queryObject, PersistenceBrokerImpl broker)
{
- cache = broker.serviceObjectCache();
- m_row = new HashMap();
- m_broker = broker;
- this.queryObject = queryObject;
+ setCache(broker.serviceObjectCache());
+ setRow(new HashMap());
+ setBroker(broker);
+ setQueryObject(queryObject);
Class classToPrefetch = broker.getClassToPrefetch();
if ((classToPrefetch != null) && classToPrefetch.isAssignableFrom(queryObject.getClassDescriptor().getClassOfObject()))
{
- itemProxyClass = null;
+ setItemProxyClass(null);
}
else
{
- itemProxyClass = queryObject.getClassDescriptor().getProxyClass();
+ setItemProxyClass(queryObject.getClassDescriptor().getProxyClass());
}
/*
@@ -181,9 +178,9 @@
* events and set the target object on every use TODO: Find a better
* solution
*/
- afterLookupEvent = new PBLifeCycleEvent(m_broker, PBLifeCycleEvent.Type.AFTER_LOOKUP);
+ setAfterLookupEvent(new PBLifeCycleEvent(getBroker(), PBLifeCycleEvent.Type.AFTER_LOOKUP));
- m_rsAndStmt = queryObject.performQuery(broker.serviceJdbcAccess());
+ setRsAndStmt(queryObject.performQuery(broker.serviceJdbcAccess()));
/*
* TODO: how does prefetchRelationships handle QueryBySQL instances? Is
* it ok to pass query object?
@@ -197,11 +194,11 @@
protected Class getTopLevelClass()
{
- if (itemTopLevelClass == null)
+ if (m_itemTopLevelClass == null)
{
- itemTopLevelClass = m_broker.getTopLevelClass(queryObject.getClassDescriptor().getClassOfObject());
+ m_itemTopLevelClass = getBroker().getTopLevelClass(getQueryObject().getClassDescriptor().getClassOfObject());
}
- return itemTopLevelClass;
+ return m_itemTopLevelClass;
}
/**
@@ -212,11 +209,11 @@
{
try
{
- if (!hasCalledCheck)
+ if (!isHasCalledCheck())
{
- hasCalledCheck = true;
- hasNext = m_rsAndStmt.m_rs.next();
- if (!hasNext)
+ setHasCalledCheck(true);
+ setHasNext(getRsAndStmt().m_rs.next());
+ if (!getHasNext())
{
releaseDbResources();
}
@@ -224,11 +221,12 @@
}
catch (Exception ex)
{
- hasNext = false;
+ setHasNext(false);
}
if (logger.isDebugEnabled())
- logger.debug("hasNext() -> " + hasNext);
- return hasNext;
+ logger.debug("hasNext() -> " + getHasNext());
+
+ return getHasNext();
}
/**
@@ -239,26 +237,27 @@
{
try
{
- if (!hasCalledCheck)
+ if (!isHasCalledCheck())
{
hasNext();
}
- hasCalledCheck = false;
- if (hasNext)
+ setHasCalledCheck(false);
+ if (getHasNext())
{
Object obj = getObjectFromResultSet();
m_current_row++;
- // Invoke events on PersistenceBrokerAware instances and
- // listeners
+ // Invoke events on PersistenceBrokerAware instances and listeners
// set target object
- afterLookupEvent.setTarget(obj);
- m_broker.fireBrokerEvent(afterLookupEvent);
+ getAfterLookupEvent().setTarget(obj);
+ getBroker().fireBrokerEvent(getAfterLookupEvent());
return obj;
}
else
+ {
throw new NoSuchElementException("inner hasNext was false");
+ }
}
catch (Exception ex)
{
@@ -312,7 +311,7 @@
}
// prevent releasing of DBResources
- inBatchedMode = true;
+ setInBatchedMode(true);
prefetchedRel = query.getPrefetchedRelationships();
prefetchers = new RelationshipPrefetcher[prefetchedRel.size()];
@@ -322,7 +321,7 @@
{
relName = (String) prefetchedRel.get(i);
prefetchers[i] =
- RelationshipPrefetcherFactory.createRelationshipPrefetcher(m_broker, queryObject.getClassDescriptor(), relName);
+ RelationshipPrefetcherFactory.createRelationshipPrefetcher(getBroker(), getQueryObject().getClassDescriptor(), relName);
prefetchers[i].prepareRelationshipSettings();
}
@@ -343,15 +342,15 @@
try
{
- m_rsAndStmt.m_rs.beforeFirst(); // reposition resultset jdbc 2.0
+ getRsAndStmt().m_rs.beforeFirst(); // reposition resultset jdbc 2.0
}
catch (SQLException e)
{
logger.error("beforeFirst failed !", e);
}
- inBatchedMode = false;
- hasCalledCheck = false;
+ setInBatchedMode(false);
+ setHasCalledCheck(false);
}
@@ -362,17 +361,17 @@
{
// fill primary key values from Resultset
FieldDescriptor fld;
- FieldDescriptor[] pkFields = queryObject.getClassDescriptor().getPkFields();
+ FieldDescriptor[] pkFields = getQueryObject().getClassDescriptor().getPkFields();
Object[] pkValues = new Object[pkFields.length];
for (int i = 0; i < pkFields.length; i++)
{
fld = pkFields[i];
- pkValues[i] = m_row.get(fld.getColumnName());
+ pkValues[i] = getRow().get(fld.getColumnName());
}
// return identity object build up from primary keys
- return new Identity(queryObject.getClassDescriptor().getClassOfObject(), getTopLevelClass(), pkValues);
+ return new Identity(getQueryObject().getClassDescriptor().getClassOfObject(), getTopLevelClass(), pkValues);
}
/**
@@ -393,17 +392,17 @@
* itemProxyClass should NOT be a member variable.
*/
- if (itemProxyClass != null)
+ if (getItemProxyClass() != null)
{
// provide m_row with primary key data of current row
- queryObject.getClassDescriptor().getRowReader().readPkValuesFrom(m_rsAndStmt.m_rs, m_row);
+ getQueryObject().getClassDescriptor().getRowReader().readPkValuesFrom(getRsAndStmt().m_rs, getRow());
// assert: m_row is filled with primary key values from db
return getProxyFromResultSet();
}
else
{
// 0. provide m_row with data of current row
- queryObject.getClassDescriptor().getRowReader().readObjectArrayFrom(m_rsAndStmt.m_rs, m_row);
+ getQueryObject().getClassDescriptor().getRowReader().readObjectArrayFrom(getRsAndStmt().m_rs, getRow());
// assert: m_row is filled from db
// 1.read Identity
@@ -411,13 +410,13 @@
Object result = null;
// 2. check if Object is in cache. if so return cached version.
- result = cache.lookup(oid);
+ result = getCache().lookup(oid);
if (result == null)
{
// 3. If Object is not in cache
// materialize Object with primitive attributes filled from
// current row
- result = queryObject.getClassDescriptor().getRowReader().readObjectFrom(m_row);
+ result = getQueryObject().getClassDescriptor().getRowReader().readObjectFrom(getRow());
// result may still be null!
if (result != null)
{
@@ -428,7 +427,7 @@
*/
synchronized (result)
{
- cache.cache(oid, result);
+ getCache().cache(oid, result);
/*
* arminw: move LoadedObjectsRegistry to odmg-layer
*/
@@ -441,25 +440,25 @@
* actual class.
*/
// fill reference and collection attributes
- ClassDescriptor cld = queryObject.getClassDescriptor().getRepository().getDescriptorFor(result.getClass());
+ ClassDescriptor cld = getQueryObject().getClassDescriptor().getRepository().getDescriptorFor(result.getClass());
// don't force loading of reference
final boolean unforced = false;
// Maps ReferenceDescriptors to HashSets of owners
- m_broker.retrieveReferences(result, cld, unforced);
- m_broker.retrieveCollections(result, cld, unforced);
+ getBroker().retrieveReferences(result, cld, unforced);
+ getBroker().retrieveCollections(result, cld, unforced);
}
}
}
else // Object is in cache
{
- ClassDescriptor cld = queryObject.getClassDescriptor().getRepository().getDescriptorFor(result.getClass());
+ ClassDescriptor cld = getQueryObject().getClassDescriptor().getRepository().getDescriptorFor(result.getClass());
// if refresh is required, update the cache instance from the
// db
if (cld.isAlwaysRefresh())
{
- queryObject.getClassDescriptor().getRowReader().refreshObject(result, m_row);
+ getQueryObject().getClassDescriptor().getRowReader().refreshObject(result, getRow());
}
- m_broker.refreshRelationships(result, cld);
+ getBroker().refreshRelationships(result, cld);
}
return result;
@@ -480,7 +479,7 @@
Identity oid = getIdentityFromResultSet();
// 2. return a Proxy instance:
- return VirtualProxy.createProxy(m_broker.getPBKey(), itemProxyClass, oid);
+ return VirtualProxy.createProxy(getBroker().getPBKey(), getItemProxyClass(), oid);
}
/**
@@ -508,9 +507,9 @@
*/
protected int countedSize() throws PersistenceBrokerException
{
- Query countQuery = m_broker.serviceBrokerHelper().getCountQuery(queryObject.getQuery());
+ Query countQuery = getBroker().serviceBrokerHelper().getCountQuery(getQueryObject().getQuery());
ResultSetAndStatement rsStmt;
- ClassDescriptor cld = queryObject.getClassDescriptor();
+ ClassDescriptor cld = getQueryObject().getClassDescriptor();
int count = 0;
// BRJ: do not use broker.getCount() because it's extent-aware
@@ -518,11 +517,11 @@
if (countQuery instanceof QueryBySQL)
{
String countSql = ((QueryBySQL) countQuery).getSql();
- rsStmt = m_broker.serviceJdbcAccess().executeSQL(countSql, cld, Query.NOT_SCROLLABLE);
+ rsStmt = getBroker().serviceJdbcAccess().executeSQL(countSql, cld, Query.NOT_SCROLLABLE);
}
else
{
- rsStmt = m_broker.serviceJdbcAccess().executeQuery(countQuery, cld);
+ rsStmt = getBroker().serviceJdbcAccess().executeQuery(countQuery, cld);
}
try
@@ -554,13 +553,13 @@
boolean forwardOnly = true;
try
{
- forwardOnly = m_rsAndStmt.m_stmt.getResultSetType() == ResultSet.TYPE_FORWARD_ONLY;
+ forwardOnly = getRsAndStmt().m_stmt.getResultSetType() == ResultSet.TYPE_FORWARD_ONLY;
}
catch (SQLException e)
{
}
if (!supportsAdvancedJDBCCursorControl()
- || m_broker.serviceConnectionManager().getSupportedPlatform().useCountForResultsetSize()
+ || getBroker().serviceConnectionManager().getSupportedPlatform().useCountForResultsetSize()
|| forwardOnly)
{
/**
@@ -583,12 +582,12 @@
int whereIAm = 1; // first
try
{
- if (m_rsAndStmt.m_rs != null)
+ if (getRsAndStmt().m_rs != null)
{
- whereIAm = m_rsAndStmt.m_rs.getRow();
- if (m_rsAndStmt.m_rs.last())
+ whereIAm = getRsAndStmt().m_rs.getRow();
+ if (getRsAndStmt().m_rs.last())
{
- retval = m_rsAndStmt.m_rs.getRow();
+ retval = getRsAndStmt().m_rs.getRow();
}
else
{
@@ -597,11 +596,11 @@
// go back from whence I came.
if (whereIAm > 0)
{
- m_rsAndStmt.m_rs.absolute(whereIAm);
+ getRsAndStmt().m_rs.absolute(whereIAm);
}
else
{
- m_rsAndStmt.m_rs.beforeFirst();
+ getRsAndStmt().m_rs.beforeFirst();
}
}
}
@@ -629,11 +628,11 @@
{
try
{
- if (m_rsAndStmt.m_rs != null)
+ if (getRsAndStmt().m_rs != null)
{
- retval = m_rsAndStmt.m_rs.absolute(row);
+ retval = getRsAndStmt().m_rs.absolute(row);
m_current_row = row;
- hasCalledCheck = false;
+ setHasCalledCheck(false);
}
}
catch (SQLException e)
@@ -647,7 +646,7 @@
{
try
{
- while (m_current_row < row && m_rsAndStmt.m_rs.next())
+ while (m_current_row < row && getRsAndStmt().m_rs.next())
{
m_current_row++;
}
@@ -657,16 +656,16 @@
}
else
{
- hasCalledCheck = true;
- hasNext = false;
+ setHasCalledCheck(true);
+ setHasNext(false);
retval = false;
releaseDbResources();
}
}
catch (Exception ex)
{
- hasCalledCheck = true;
- hasNext = false;
+ setHasCalledCheck(true);
+ setHasNext(false);
retval = false;
}
}
@@ -695,9 +694,9 @@
{
try
{
- if (m_rsAndStmt.m_rs != null)
+ if (getRsAndStmt().m_rs != null)
{
- retval = m_rsAndStmt.m_rs.relative(row);
+ retval = getRsAndStmt().m_rs.relative(row);
m_current_row += row;
}
}
@@ -728,13 +727,13 @@
*/
public void releaseDbResources()
{
- if (!inBatchedMode) // resources are reused in batched mode
+ if (!isInBatchedMode()) // resources are reused in batched mode
{
// If we haven't released resources yet, then do so.
if (!this.resourcesAreReleased)
{
this.resourcesAreReleased = true;
- m_broker.serviceStatementManager().closeResources(m_rsAndStmt.m_stmt, m_rsAndStmt.m_rs);
+ getBroker().serviceStatementManager().closeResources(getRsAndStmt().m_stmt, getRsAndStmt().m_rs);
}
}
}
@@ -744,12 +743,12 @@
*/
protected DescriptorRepository getDescriptorRepository()
{
- return m_broker.getDescriptorRepository();
+ return getBroker().getDescriptorRepository();
}
protected JdbcConnectionDescriptor getConnectionDescriptor()
{
- return m_broker.serviceConnectionManager().getConnectionDescriptor();
+ return getBroker().serviceConnectionManager().getConnectionDescriptor();
}
/**
@@ -770,6 +769,106 @@
*/
public ClassDescriptor getClassDescriptor()
{
- return queryObject.getClassDescriptor();
+ return getQueryObject().getClassDescriptor();
+ }
+
+ protected void setBroker(PersistenceBrokerImpl broker)
+ {
+ m_broker = broker;
+ }
+
+ protected PersistenceBrokerImpl getBroker()
+ {
+ return m_broker;
+ }
+
+ protected void setRsAndStmt(ResultSetAndStatement rsAndStmt)
+ {
+ m_rsAndStmt = rsAndStmt;
+ }
+
+ protected ResultSetAndStatement getRsAndStmt()
+ {
+ return m_rsAndStmt;
+ }
+
+ protected void setQueryObject(RsQueryObject queryObject)
+ {
+ this.m_queryObject = queryObject;
+ }
+
+ protected RsQueryObject getQueryObject()
+ {
+ return m_queryObject;
+ }
+
+ protected void setItemProxyClass(Class itemProxyClass)
+ {
+ this.m_itemProxyClass = itemProxyClass;
+ }
+
+ protected Class getItemProxyClass()
+ {
+ return m_itemProxyClass;
+ }
+
+ protected void setRow(Map row)
+ {
+ m_row = row;
+ }
+
+ protected Map getRow()
+ {
+ return m_row;
+ }
+
+ protected void setCache(ObjectCache cache)
+ {
+ this.m_cache = cache;
+ }
+
+ protected ObjectCache getCache()
+ {
+ return m_cache;
+ }
+
+ protected void setAfterLookupEvent(PBLifeCycleEvent afterLookupEvent)
+ {
+ this.afterLookupEvent = afterLookupEvent;
+ }
+
+ protected PBLifeCycleEvent getAfterLookupEvent()
+ {
+ return afterLookupEvent;
+ }
+
+ protected void setHasCalledCheck(boolean hasCalledCheck)
+ {
+ this.m_hasCalledCheck = hasCalledCheck;
+ }
+
+ protected boolean isHasCalledCheck()
+ {
+ return m_hasCalledCheck;
+ }
+
+ protected void setHasNext(boolean hasNext)
+ {
+ this.hasNext = hasNext;
+ }
+
+ protected boolean getHasNext()
+ {
+ return hasNext;
+ }
+
+ protected void setInBatchedMode(boolean inBatchedMode)
+ {
+ this.m_inBatchedMode = inBatchedMode;
+ }
+
+ protected boolean isInBatchedMode()
+ {
+ return m_inBatchedMode;
}
}
---------------------------------------------------------------------
To unsubscribe, e-mail: ojb-dev-unsubscribe@db.apache.org
For additional commands, e-mail: ojb-dev-help@db.apache.org