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/03/15 16:42:27 UTC

cvs commit: db-ojb/src/java/org/apache/ojb/broker/accesslayer JdbcAccessImpl.java RsIterator.java

brj         2003/03/15 07:42:27

  Modified:    src/java/org/apache/ojb/broker/query QueryBySQL.java
                        QueryByCriteria.java Query.java Criteria.java
                        AbstractQueryImpl.java QueryByIdentity.java
               src/java/org/apache/ojb/broker/accesslayer
                        JdbcAccessImpl.java RsIterator.java
  Log:
  Query refactoring
  
  Revision  Changes    Path
  1.5       +9 -81     db-ojb/src/java/org/apache/ojb/broker/query/QueryBySQL.java
  
  Index: QueryBySQL.java
  ===================================================================
  RCS file: /home/cvs/db-ojb/src/java/org/apache/ojb/broker/query/QueryBySQL.java,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- QueryBySQL.java	14 Mar 2003 16:49:56 -0000	1.4
  +++ QueryBySQL.java	15 Mar 2003 15:42:26 -0000	1.5
  @@ -1,6 +1,5 @@
   package org.apache.ojb.broker.query;
   
  -import java.util.List;
   
   /* ====================================================================
    * The Apache Software License, Version 1.1
  @@ -57,98 +56,27 @@
    */
   
   /**
  - * @version 	1.0
  - * @author 	Jakob Braeuchi
  + * @author <a href="mailto:jbraeuchi@hotmail.com">Jakob Braeuchi</a>
  + * @version $Id$
    */
  -public class QueryBySQL extends AbstractQueryImpl implements Query
  +public class QueryBySQL extends AbstractQueryImpl
   {
  -	private String sql;
  -	private Class clazz;
  -
  -	/**
  -	 * Gets the sql.
  -	 * @return Returns a String
  -	 */
  +	private String m_sql;
   
   	public QueryBySQL(Class targetClass, String anSQLStatement)
   	{
  -		this.clazz = targetClass;
  -		this.sql = anSQLStatement;
  +		super(targetClass);
  +		m_sql = anSQLStatement;
   	}
   
   	public String getSql()
   	{
  -		return sql;
  -	}
  -
  -	/**
  -	 * Sets the sql.
  -	 * @param sql The sql to set
  -	 */
  -	public void setSql(String sql)
  -	{
  -		this.sql = sql;
  -	}
  -
  -	/*
  -	 * @see Query#getCriteria()
  -	 */
  -	public Criteria getCriteria()
  -	{
  -		return null;
  -	}
  -
  -    /* (non-Javadoc)
  -     * @see org.apache.ojb.broker.query.Query#getHavingCriteria()
  -     */
  -    public Criteria getHavingCriteria()
  -    {
  -        return null;
  -    }
  -
  -	/*
  -	 * @see Query#getExampleObject()
  -	 */
  -	public Object getExampleObject()
  -	{
  -		return null;
  -	}
  -
  -	/*
  -	 * @see Query#getSearchClass()
  -	 */
  -	public Class getSearchClass()
  -	{
  -		return clazz;
  -	}
  -
  -	/*
  -	 * @see Query#isDistinct()
  -	 */
  -	public boolean isDistinct()
  -	{
  -		return false;
  -	}
  -
  -	/* (non-Javadoc)
  -	 * @see org.apache.ojb.broker.query.Query#getGroupBy()
  -	 */
  -	public List getGroupBy()
  -	{
  -		return null;
  -	}
  -
  -	/* (non-Javadoc)
  -	 * @see org.apache.ojb.broker.query.Query#getOrderBy()
  -	 */
  -	public List getOrderBy()
  -	{
  -		return null;
  +		return m_sql;
   	}
   
  -    public String toString()
  +	public String toString()
       {
  -        return "Query from " + clazz + " sql= " + sql;
  +        return "Query from " + getSearchClass() + " sql= " + m_sql;
       }
   
   }
  
  
  
  1.9       +22 -38    db-ojb/src/java/org/apache/ojb/broker/query/QueryByCriteria.java
  
  Index: QueryByCriteria.java
  ===================================================================
  RCS file: /home/cvs/db-ojb/src/java/org/apache/ojb/broker/query/QueryByCriteria.java,v
  retrieving revision 1.8
  retrieving revision 1.9
  diff -u -r1.8 -r1.9
  --- QueryByCriteria.java	14 Mar 2003 16:49:56 -0000	1.8
  +++ QueryByCriteria.java	15 Mar 2003 15:42:26 -0000	1.9
  @@ -79,11 +79,10 @@
    *
    * Creation date: (24.01.2001 21:45:46)
    * @author: Thomas Mahler
  - *
  + * @version $Id$
    */
  -public class QueryByCriteria extends AbstractQueryImpl implements Query
  +public class QueryByCriteria extends AbstractQueryImpl 
   {
  -    private Class m_clazz;
       private Criteria m_criteria;
       private boolean m_distinct = false;
       private HashMap m_pathClasses;
  @@ -95,7 +94,8 @@
        */
       public QueryByCriteria(Class targetClass, Criteria whereCriteria, Criteria havingCriteria, boolean distinct)
       {
  -        this.m_clazz = targetClass;
  +        super (targetClass);
  +        
           this.m_criteria = whereCriteria;
           this.m_havingCriteria = havingCriteria;
           this.m_distinct = distinct;
  @@ -214,13 +214,8 @@
           return (Class) getPathClasses().get(aPath);
       }
   
  -    /**
  -     * Method declaration
  -     *
  -     *
  -     * @return
  -     *
  -     *
  +    /* (non-Javadoc)
  +     * @see org.apache.ojb.broker.query.Query#getCriteria()
        */
       public Criteria getCriteria()
       {
  @@ -236,39 +231,13 @@
       }
       
       /**
  -     * Method declaration
  -     *
  -     *
  -     * @return
  -     *
  -     *
  -     */
  -    public java.lang.Object getExampleObject()
  -    {
  -        return null;
  -    }
  -
  -    /**
  -     * Method declaration
  -     *
  -     *
  -     * @return
  -     *
  -     *
  -     */
  -    public Class getSearchClass()
  -    {
  -        return m_clazz;
  -    }
  -
  -    /**
        * Insert the method's description here.
        * Creation date: (07.02.2001 22:01:55)
        * @return java.lang.String
        */
       public String toString()
       {
  -        return "Query from " + m_clazz + " where " + m_criteria;
  +        return "Query from " + getSearchClass() + " where " + m_criteria;
       }
   
       /**
  @@ -339,6 +308,21 @@
           if (getCriteria() != null)
           {
               return getCriteria().getOrderby();
  +        }
  +        else
  +        {
  +            return null;
  +        }
  +	}
  +
  +	/* (non-Javadoc)
  +	 * @see org.apache.ojb.broker.query.Query#getPrefetchedRelationships()
  +	 */
  +	public List getPrefetchedRelationships()
  +	{
  +        if (getCriteria() != null)
  +        {
  +            return getCriteria().getPrefetchedRelationships();
           }
           else
           {
  
  
  
  1.9       +11 -5     db-ojb/src/java/org/apache/ojb/broker/query/Query.java
  
  Index: Query.java
  ===================================================================
  RCS file: /home/cvs/db-ojb/src/java/org/apache/ojb/broker/query/Query.java,v
  retrieving revision 1.8
  retrieving revision 1.9
  diff -u -r1.8 -r1.9
  --- Query.java	14 Mar 2003 16:49:56 -0000	1.8
  +++ Query.java	15 Mar 2003 15:42:26 -0000	1.9
  @@ -115,15 +115,15 @@
   
   	/**
   	 * Answer the orderBy of all Criteria and Sub Criteria the elements are of
  -	 * class Criteria. FieldHelper
  -	 * @return List of Criteria.FieldHelper
  +	 * class FieldHelper
  +	 * @return List of FieldHelper
   	 */
   	public List getOrderBy();
   
   	/**
   	 * Gets the groupby for ReportQueries of all Criteria and Sub Criteria
  -	 * the elements are of class Criteria. FieldHelper
  -	 * @return List of Criteria.FieldHelper
  +	 * the elements are of class FieldHelper
  +	 * @return List of FieldHelper
   	 */
   	public List getGroupBy();
   
  @@ -153,6 +153,12 @@
   	 */
   	void setEndAtIndex(int endAtIndex);
   
  +    /**
  +     * Returns the names of Relationships to be prefetched
  +     * @return List of Strings
  +     */
  +    public List getPrefetchedRelationships();
  +    
   	void fullSize(int size);
   	int fullSize();
   
  
  
  
  1.24      +9 -9      db-ojb/src/java/org/apache/ojb/broker/query/Criteria.java
  
  Index: Criteria.java
  ===================================================================
  RCS file: /home/cvs/db-ojb/src/java/org/apache/ojb/broker/query/Criteria.java,v
  retrieving revision 1.23
  retrieving revision 1.24
  diff -u -r1.23 -r1.24
  --- Criteria.java	14 Mar 2003 16:40:32 -0000	1.23
  +++ Criteria.java	15 Mar 2003 15:42:26 -0000	1.24
  @@ -573,11 +573,11 @@
   	}
   
   	/**
  -	 * Answer the orderBy of all Criteria and Sub Criteria the elements are of
  -	 * class Criteria. FieldHelper
  -	 * @return Collection
  +	 * Answer the orderBy of all Criteria and Sub Criteria 
  +     * the elements are of class Criteria.FieldHelper
  +     * @return List
   	 */
  -	public List getOrderby()
  +	List getOrderby()
   	{
   		List result = _getOrderby();
   		Iterator iter = getCriteria().iterator();
  @@ -818,10 +818,10 @@
   
   	/**
   	 * Gets the groupby for ReportQueries of all Criteria and Sub Criteria
  -	 * the elements are of class Criteria. FieldHelper
  -	 * @return List of Criteria.FieldHelper
  +	 * the elements are of class FieldHelper
  +	 * @return List of FieldHelper
   	 */
  -	public List getGroupby()
  +	List getGroupby()
   	{
   		List result = _getGroupby();
   		Iterator iter = getCriteria().iterator();
  @@ -889,7 +889,7 @@
   	 * Returns the prefetchedRelationships.
   	 * @return List
   	 */
  -	public List getPrefetchedRelationships()
  +	List getPrefetchedRelationships()
   	{
   		return prefetchedRelationships;
   	}
  
  
  
  1.5       +88 -3     db-ojb/src/java/org/apache/ojb/broker/query/AbstractQueryImpl.java
  
  Index: AbstractQueryImpl.java
  ===================================================================
  RCS file: /home/cvs/db-ojb/src/java/org/apache/ojb/broker/query/AbstractQueryImpl.java,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- AbstractQueryImpl.java	5 Jan 2003 14:19:55 -0000	1.4
  +++ AbstractQueryImpl.java	15 Mar 2003 15:42:26 -0000	1.5
  @@ -1,6 +1,7 @@
   package org.apache.ojb.broker.query;
   
   import java.io.Serializable;
  +import java.util.List;
   
   /* ====================================================================
    * The Apache Software License, Version 1.1
  @@ -56,16 +57,34 @@
    * <http://www.apache.org/>.
    */
   
  -public abstract class AbstractQueryImpl implements Serializable
  +/**
  + * Abstract implemenation of Query interface
  + * 
  + * @author ???
  + * @version $Id$
  + */
  +public abstract class AbstractQueryImpl implements Query, Serializable
   {
   	private int m_startAtIndex = Query.NO_START_AT_INDEX;
   	private int m_endAtIndex = Query.NO_END_AT_INDEX;
   	private int m_fullSize = 0;
  +    private Class m_clazz;
  +
  +    public AbstractQueryImpl()
  +    {
  +    }
  +    
  +    public AbstractQueryImpl(Class aSearchClass)
  +    {
  +        m_clazz = aSearchClass;
  +    }
  +    
   	public int getStartAtIndex()
   	{
   		return m_startAtIndex;
   	}
  -	public void setStartAtIndex(int startAtIndex)
  +	
  +    public void setStartAtIndex(int startAtIndex)
   	{
   		m_startAtIndex = startAtIndex;
   	}
  @@ -86,5 +105,71 @@
   	{
   		return m_fullSize;
   	}
  -	
  +
  +    /*
  +     * @see Query#getSearchClass()
  +     */
  +    public Class getSearchClass()
  +    {
  +        return m_clazz;
  +    }
  +    
  +    /* (non-Javadoc)
  +     * @see org.apache.ojb.broker.query.Query#getGroupBy()
  +     */
  +    public List getGroupBy()
  +    {
  +        return null;
  +    }
  +
  +    /* (non-Javadoc)
  +     * @see org.apache.ojb.broker.query.Query#getOrderBy()
  +     */
  +    public List getOrderBy()
  +    {
  +        return null;
  +    }
  +
  +    /* (non-Javadoc)
  +     * @see org.apache.ojb.broker.query.Query#getPrefetchedRelationships()
  +     */
  +    public List getPrefetchedRelationships()
  +    {
  +        return null;
  +    }
  +    
  +
  +
  +	/* (non-Javadoc)
  +	 * @see org.apache.ojb.broker.query.Query#getCriteria()
  +	 */
  +	public Criteria getCriteria()
  +	{
  +		return null;
  +	}
  +
  +	/* (non-Javadoc)
  +	 * @see org.apache.ojb.broker.query.Query#getExampleObject()
  +	 */
  +	public Object getExampleObject()
  +	{
  +		return null;
  +	}
  +
  +	/* (non-Javadoc)
  +	 * @see org.apache.ojb.broker.query.Query#getHavingCriteria()
  +	 */
  +	public Criteria getHavingCriteria()
  +	{
  +		return null;
  +	}
  +
  +	/* (non-Javadoc)
  +	 * @see org.apache.ojb.broker.query.Query#isDistinct()
  +	 */
  +	public boolean isDistinct()
  +	{
  +		return false;
  +	}
  +
   }
  
  
  
  1.6       +2 -45     db-ojb/src/java/org/apache/ojb/broker/query/QueryByIdentity.java
  
  Index: QueryByIdentity.java
  ===================================================================
  RCS file: /home/cvs/db-ojb/src/java/org/apache/ojb/broker/query/QueryByIdentity.java,v
  retrieving revision 1.5
  retrieving revision 1.6
  diff -u -r1.5 -r1.6
  --- QueryByIdentity.java	14 Mar 2003 16:49:56 -0000	1.5
  +++ QueryByIdentity.java	15 Mar 2003 15:42:26 -0000	1.6
  @@ -54,8 +54,6 @@
    * <http://www.apache.org/>.
    */
   
  -import java.util.List;
  -
   import org.apache.ojb.broker.Identity;
   
   /**
  @@ -80,7 +78,7 @@
    * @author <a href="mailto:thma@apache.org">Thomas Mahler<a>
    * @version $Id$
    */
  -public class QueryByIdentity extends AbstractQueryImpl implements Query
  +public class QueryByIdentity extends AbstractQueryImpl 
   {
   	private Object m_exampleObjectOrIdentity;
   
  @@ -93,23 +91,6 @@
   	}
   
   	/**
  -	 * no Criteria available
  -	 * @return null
  -	 */
  -	public Criteria getCriteria()
  -	{
  -		return null;
  -	}
  -
  -    /* (non-Javadoc)
  -     * @see org.apache.ojb.broker.query.Query#getHavingCriteria()
  -     */
  -    public Criteria getHavingCriteria()
  -    {
  -        return null;
  -    }
  -
  -	/**
   	 * Answer the example Object
   	 * @return the example Object or an Identity
   	 */
  @@ -136,30 +117,6 @@
   		{
   			return obj.getClass();
   		}
  -	}
  -
  -	/*
  -	 * @see Query#isDistinct()
  -	 */
  -	public boolean isDistinct()
  -	{
  -		return false;
  -	}
  -
  -	/* (non-Javadoc)
  -	 * @see org.apache.ojb.broker.query.Query#getGroupBy()
  -	 */
  -	public List getGroupBy()
  -	{
  -		return null;
  -	}
  -
  -	/* (non-Javadoc)
  -	 * @see org.apache.ojb.broker.query.Query#getOrderBy()
  -	 */
  -	public List getOrderBy()
  -	{
  -		return null;
   	}
   
   }
  
  
  
  1.8       +3 -3      db-ojb/src/java/org/apache/ojb/broker/accesslayer/JdbcAccessImpl.java
  
  Index: JdbcAccessImpl.java
  ===================================================================
  RCS file: /home/cvs/db-ojb/src/java/org/apache/ojb/broker/accesslayer/JdbcAccessImpl.java,v
  retrieving revision 1.7
  retrieving revision 1.8
  diff -u -r1.7 -r1.8
  --- JdbcAccessImpl.java	10 Mar 2003 20:38:09 -0000	1.7
  +++ JdbcAccessImpl.java	15 Mar 2003 15:42:27 -0000	1.8
  @@ -243,8 +243,8 @@
   		 * OR if the prefetching of relationships is being used.
   		 */
   		if (query != null &&
  -			query.getCriteria() != null &&
  -			!query.getCriteria().getPrefetchedRelationships().isEmpty())
  +			query.getPrefetchedRelationships() != null &&
  +			!query.getPrefetchedRelationships().isEmpty())
   		{
   			scrollable = true;
   		}
  
  
  
  1.32      +4 -4      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.31
  retrieving revision 1.32
  diff -u -r1.31 -r1.32
  --- RsIterator.java	10 Mar 2003 06:07:20 -0000	1.31
  +++ RsIterator.java	15 Mar 2003 15:42:27 -0000	1.32
  @@ -283,8 +283,8 @@
           RelationshipPrefetcher[] prefetchers;
   
           if (query == null ||
  -                query.getCriteria() == null ||
  -                query.getCriteria().getPrefetchedRelationships().isEmpty())
  +            query.getPrefetchedRelationships() == null ||
  +            query.getPrefetchedRelationships().isEmpty())
           {
               return;
           }
  @@ -298,7 +298,7 @@
           // prevent releasing of DBResources
           inBatchedMode = true;
   
  -        prefetchedRel = query.getCriteria().getPrefetchedRelationships();
  +        prefetchedRel = query.getPrefetchedRelationships();
           prefetchers = new RelationshipPrefetcher[prefetchedRel.size()];
   
           // disable auto retrieve for all prefetched relationships