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 2005/04/07 21:55:11 UTC

cvs commit: db-ojb/src/java/org/apache/ojb/broker/query QueryFactoryNew.java QueryFactoryNewImpl.java QueryFactory.java

brj         2005/04/07 12:55:11

  Modified:    src/java/org/apache/ojb/broker OJB.java ContainerHelper.java
               src/java/org/apache/ojb/broker/query QueryFactory.java
  Added:       src/java/org/apache/ojb/broker/query QueryFactoryNew.java
                        QueryFactoryNewImpl.java
  Log:
  get QueryFactory from OJB
  
  Revision  Changes    Path
  1.10      +17 -5     db-ojb/src/java/org/apache/ojb/broker/OJB.java
  
  Index: OJB.java
  ===================================================================
  RCS file: /home/cvs/db-ojb/src/java/org/apache/ojb/broker/OJB.java,v
  retrieving revision 1.9
  retrieving revision 1.10
  diff -u -r1.9 -r1.10
  --- OJB.java	2 Apr 2005 09:44:39 -0000	1.9
  +++ OJB.java	7 Apr 2005 19:55:11 -0000	1.10
  @@ -33,6 +33,7 @@
   import org.apache.ojb.broker.metadata.PersistenceConfigurationDescriptor;
   import org.apache.ojb.broker.metadata.fieldaccess.PersistentField;
   import org.apache.ojb.broker.metadata.fieldaccess.PersistentFieldFactory;
  +import org.apache.ojb.broker.query.QueryFactoryNew;
   import org.apache.ojb.broker.util.BrokerHelper;
   import org.apache.ojb.broker.util.ObjectModification;
   import org.apache.ojb.broker.util.logging.Logger;
  @@ -68,6 +69,7 @@
       private boolean isInitialized = false;
       private MetadataManager metadataManager;
       private ProxyFactory proxyFactory;
  +    private QueryFactoryNew queryFactory;
       private HashMap configurationMap = new HashMap();
       private Object dummy = new Object();
   
  @@ -126,7 +128,7 @@
           }
   
           // configuring the proxy proxyFactory
  -        proxyFactory = (ProxyFactory)container.getSingletonInstance(ProxyFactory.class);
  +        proxyFactory = (ProxyFactory) container.getSingletonInstance(ProxyFactory.class);
           proxyFactory.setIndirectionHandlerClass(container.getImplementationClass(IndirectionHandler.class));
           proxyFactory.setCollectionProxyClass(container.getImplementationClass(CollectionProxy.class));
           proxyFactory.setListProxyClass(container.getImplementationClass(ListProxy.class));
  @@ -136,8 +138,8 @@
           PersistentFieldFactory fieldFactory = new PersistentFieldFactory(container.getImplementationClass(PersistentField.class), proxyFactory);
           container.setSingletonInstance(PersistentFieldFactory.class, fieldFactory);
           
  -        metadataManager = (MetadataManager)container.getSingletonInstance(MetadataManager.class);
  -        
  +        metadataManager = (MetadataManager) container.getSingletonInstance(MetadataManager.class);
  +        queryFactory = (QueryFactoryNew) container.getSingletonInstance(QueryFactoryNew.class);
           
           isInitialized = true;
       }
  @@ -198,7 +200,17 @@
           initDynamicSystem();
           return proxyFactory;
       }
  -    
  +
  +    /**
  +     * Returns the Query factory.
  +     * @return The Query factory
  +     */
  +    public QueryFactoryNew getQueryFactory()
  +    {
  +        initDynamicSystem();
  +        return queryFactory;
  +    }
  +
       public void shutdown()
       {
           if (!isInitialized)
  
  
  
  1.6       +3 -0      db-ojb/src/java/org/apache/ojb/broker/ContainerHelper.java
  
  Index: ContainerHelper.java
  ===================================================================
  RCS file: /home/cvs/db-ojb/src/java/org/apache/ojb/broker/ContainerHelper.java,v
  retrieving revision 1.5
  retrieving revision 1.6
  diff -u -r1.5 -r1.6
  --- ContainerHelper.java	2 Apr 2005 09:44:39 -0000	1.5
  +++ ContainerHelper.java	7 Apr 2005 19:55:11 -0000	1.6
  @@ -70,6 +70,8 @@
   import org.apache.ojb.broker.metadata.MetadataManager;
   import org.apache.ojb.broker.metadata.fieldaccess.PersistentField;
   import org.apache.ojb.broker.metadata.fieldaccess.PersistentFieldDirectImpl;
  +import org.apache.ojb.broker.query.QueryFactoryNew;
  +import org.apache.ojb.broker.query.QueryFactoryNewImpl;
   import org.apache.ojb.broker.transaction.tm.JBossTransactionManagerFactory;
   import org.apache.ojb.broker.transaction.tm.TransactionManagerFactory;
   import org.apache.ojb.broker.util.ClassHelper;
  @@ -264,6 +266,7 @@
           container.ensureImplementationClass(DMap.class, DMapImpl.class);
           container.ensureImplementationClass(DBag.class, DBagImpl.class);
           container.ensureImplementationClass(DSet.class, DSetImpl.class);
  +        container.ensureImplementationClass(QueryFactoryNew.class, QueryFactoryNewImpl.class);
       }
   
       /**
  
  
  
  1.21      +20 -36    db-ojb/src/java/org/apache/ojb/broker/query/QueryFactory.java
  
  Index: QueryFactory.java
  ===================================================================
  RCS file: /home/cvs/db-ojb/src/java/org/apache/ojb/broker/query/QueryFactory.java,v
  retrieving revision 1.20
  retrieving revision 1.21
  diff -u -r1.20 -r1.21
  --- QueryFactory.java	1 Apr 2005 20:28:08 -0000	1.20
  +++ QueryFactory.java	7 Apr 2005 19:55:11 -0000	1.21
  @@ -1,5 +1,9 @@
   package org.apache.ojb.broker.query;
   
  +import org.apache.ojb.broker.OJB;
  +import org.apache.ojb.broker.PersistenceBrokerFactory;
  +import org.apache.ojb.broker.locking.LockManager;
  +
   /* Copyright 2002-2004 The Apache Software Foundation
    *
    * Licensed under the Apache License, Version 2.0 (the "License");
  @@ -23,6 +27,9 @@
    */
   public final class QueryFactory
   {
  +    // we use the setup'd OJB instance
  +    private static final QueryFactoryNew theFactory = PersistenceBrokerFactory.getOjb().getQueryFactory();
  +    
       /**
        * create a new ReportQueryByMtoNCriteria
        * @param classToSearchFrom
  @@ -32,9 +39,7 @@
        */
       public static ReportQueryByMtoNCriteriaImpl newMtoNReportQuery(Class classToSearchFrom, String[] columns, Criteria criteria, boolean distinct, String indirectionTable)
       {
  -        ReportQueryByMtoNCriteriaImpl query = new ReportQueryByMtoNCriteriaImpl(classToSearchFrom, columns, criteria, distinct);
  -        query.setIndirectionTable(indirectionTable);
  -        return query;
  +        return theFactory.newMtoNReportQuery(classToSearchFrom, columns, criteria, distinct, indirectionTable);
       }
   
       /**
  @@ -46,7 +51,7 @@
        */
       public static ReportQueryByCriteria newReportQuery(Class classToSearchFrom, String[] columns, Criteria criteria, boolean distinct)
       {
  -        return new ReportQueryByCriteriaImpl(classToSearchFrom, columns, criteria, distinct);
  +        return theFactory.newReportQuery(classToSearchFrom, columns, criteria, distinct);
       }
   
       /**
  @@ -58,7 +63,7 @@
        */
       public static ReportQueryByCriteria newReportQuery(Class classToSearchFrom, Criteria criteria, boolean distinct)
       {
  -        return newReportQuery(classToSearchFrom, null, criteria, distinct);
  +        return theFactory.newReportQuery(classToSearchFrom, criteria, distinct);
       }
   
       /**
  @@ -69,7 +74,7 @@
        */
       public static ReportQueryByCriteria newReportQuery(Class classToSearchFrom, Criteria criteria)
       {
  -        return newReportQuery(classToSearchFrom, criteria, false);
  +        return theFactory.newReportQuery(classToSearchFrom, criteria);
       }
   
       /**
  @@ -81,7 +86,7 @@
        */
       public static QueryByCriteria newQuery(Class classToSearchFrom, Criteria criteria, boolean distinct)
       {
  -        return new QueryByCriteriaImpl(classToSearchFrom, criteria, distinct);
  +        return theFactory.newQuery(classToSearchFrom, criteria, distinct);
       }
   
       /**
  @@ -92,7 +97,7 @@
        */
       public static QueryByCriteria newQuery(Class classToSearchFrom, Criteria criteria)
       {
  -        return newQuery(classToSearchFrom, criteria, false);
  +        return theFactory.newQuery(classToSearchFrom, criteria, false);
       }
   
       /**
  @@ -102,7 +107,7 @@
        */
       public static QueryByIdentity newQueryByIdentity(Object object_or_identity)
       {
  -        return new QueryByIdentityImpl(object_or_identity);
  +        return theFactory.newQueryByIdentity(object_or_identity);
       }
   
       /**
  @@ -113,7 +118,7 @@
        */
       public static QueryByExample newQueryByExample(Object example)
       {
  -        return new QueryByExampleImpl(example);
  +        return theFactory.newQueryByExample(example);
       }
   
       /**
  @@ -126,7 +131,7 @@
        */
       public static QueryByMtoNCriteria newQuery(Class classToSearchFrom, String indirectionTable, Criteria criteria, boolean distinct)
       {
  -        return new QueryByMtoNCriteria(classToSearchFrom, indirectionTable, criteria, distinct);
  +        return theFactory.newQuery(classToSearchFrom, indirectionTable, criteria, distinct);
       }
   
       /**
  @@ -138,7 +143,7 @@
        */
       public static QueryByCriteria newQuery(Class classToSearchFrom, String indirectionTable, Criteria criteria)
       {
  -        return new QueryByMtoNCriteria(classToSearchFrom, indirectionTable, criteria);
  +        return theFactory.newQuery(classToSearchFrom, indirectionTable, criteria);
       }
   
       /**
  @@ -149,7 +154,7 @@
        */
       public static QueryBySQL newQuery(Class classToSearchFrom, String anSqlStatement)
       {
  -        return new QueryBySQLImpl(classToSearchFrom, anSqlStatement);
  +        return theFactory.newQuery(classToSearchFrom, anSqlStatement);
       }
   
       /**
  @@ -159,27 +164,6 @@
        */
       public static QueryByCriteria copyQuery(QueryByCriteria aQuery)
       {
  -        if (aQuery instanceof ReportQueryByMtoNCriteriaImpl)
  -        {
  -            return new ReportQueryByMtoNCriteriaImpl((ReportQueryByMtoNCriteriaImpl) aQuery);
  -        }
  -        
  -        if (aQuery instanceof ReportQuery)
  -        {
  -            return new ReportQueryByCriteriaImpl((ReportQueryByCriteriaImpl) aQuery);
  -        }
  -
  -        if (aQuery instanceof QueryByExample)
  -        {
  -            return new QueryByExampleImpl((QueryByExampleImpl) aQuery);
  -        }
  -
  -        if (aQuery instanceof QueryByMtoNCriteria)
  -        {
  -            return new QueryByMtoNCriteria((QueryByMtoNCriteria) aQuery);
  -        }
  -        
  -        return new QueryByCriteriaImpl((QueryByCriteriaImpl) aQuery); 
  +        return theFactory.copyQuery(aQuery);
       }
  -
   }
  
  
  
  1.1                  db-ojb/src/java/org/apache/ojb/broker/query/QueryFactoryNew.java
  
  Index: QueryFactoryNew.java
  ===================================================================
  package org.apache.ojb.broker.query;
  
  /* Copyright 2002-2004 The Apache Software Foundation
   *
   * Licensed under the Apache License, Version 2.0 (the "License");
   * you may not use this file except in compliance with the License.
   * You may obtain a copy of the License at
   *
   *     http://www.apache.org/licenses/LICENSE-2.0
   *
   * Unless required by applicable law or agreed to in writing, software
   * distributed under the License is distributed on an "AS IS" BASIS,
   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
   * See the License for the specific language governing permissions and
   * limitations under the License.
   */
  
  /**
   * Interface for Query-Factories.
   * @author <a href="mailto:jbraeuchi@gmx.ch">Jakob Braeuchi<a>
   * @version $Id: QueryFactoryNew.java,v 1.1 2005/04/07 19:55:11 brj Exp $
   */
  public interface QueryFactoryNew
  {
      /**
       * create a new ReportQueryByMtoNCriteria.
       * @param classToSearchFrom
       * @param criteria
       * @param distinct
       * @return ReportQueryByMtoNCriteria
       */
      ReportQueryByMtoNCriteriaImpl newMtoNReportQuery(Class classToSearchFrom, String[] columns, Criteria criteria, boolean distinct, String indirectionTable);
  
      /**
       * create a new ReportQueryByCriteria.
       * @param classToSearchFrom
       * @param criteria
       * @param distinct
       * @return ReportQueryByCriteria
       */
      ReportQueryByCriteria newReportQuery(Class classToSearchFrom, String[] columns, Criteria criteria, boolean distinct);
  
      /**
       * create a new ReportQueryByCriteria.
       * @param classToSearchFrom
       * @param criteria
       * @param distinct
       * @return ReportQueryByCriteria
       */
      ReportQueryByCriteria newReportQuery(Class classToSearchFrom, Criteria criteria, boolean distinct);
  
      /**
       * create a new ReportQueryByCriteria.
       * @param classToSearchFrom
       * @param criteria
       * @return ReportQueryByCriteria
       */
      ReportQueryByCriteria newReportQuery(Class classToSearchFrom, Criteria criteria);
  
      /**
       * create a new QueryByCriteria.
       * @param classToSearchFrom
       * @param criteria
       * @param distinct
       * @return QueryByCriteria
       */
      QueryByCriteria newQuery(Class classToSearchFrom, Criteria criteria, boolean distinct);
  
      /**
       * create a new QueryByCriteria.
       * @param classToSearchFrom
       * @param criteria
       * @return QueryByCriteria
       */
      QueryByCriteria newQuery(Class classToSearchFrom, Criteria criteria);
  
      /**
       * Return a QueryByIdentity for object_or_identity.
       * @param object_or_identity
       * @return QueryByIdentity
       */
      QueryByIdentity newQueryByIdentity(Object object_or_identity);
  
      /**
       * Return a QueryByCriteria for example.
       * <br>Use with care because building of Query is not foolproof !!!
       * @param example
       * @return QueryByExample
       */
      QueryByExample newQueryByExample(Object example);
  
      /**
       * create a new QueryByMtoNCriteria.
       * @param classToSearchFrom
       * @param indirectionTable
       * @param criteria
       * @param distinct
       * @return QueryByMtoNCriteria
       */
      QueryByMtoNCriteria newQuery(Class classToSearchFrom, String indirectionTable, Criteria criteria, boolean distinct);
  
      /**
       * create a new QueryByCriteria.
       * @param classToSearchFrom
       * @param indirectionTable
       * @param criteria
       * @return QueryByCriteria
       */
      QueryByCriteria newQuery(Class classToSearchFrom, String indirectionTable, Criteria criteria);
  
      /**
       * Factory method for QueryBySQL.
       * @param classToSearchFrom
       * @param anSqlStatement
       * @return QueryBySQL
       */
      QueryBySQL newQuery(Class classToSearchFrom, String anSqlStatement);
  
      /**
       * Return a copy of a QueryByCriteria.
       * @param QueryByCriteria
       * @return QueryByCriteria
       */
      QueryByCriteria copyQuery(QueryByCriteria aQuery);
  }
  
  
  
  1.1                  db-ojb/src/java/org/apache/ojb/broker/query/QueryFactoryNewImpl.java
  
  Index: QueryFactoryNewImpl.java
  ===================================================================
  package org.apache.ojb.broker.query;
  
  /* Copyright 2002-2004 The Apache Software Foundation
   *
   * Licensed under the Apache License, Version 2.0 (the "License");
   * you may not use this file except in compliance with the License.
   * You may obtain a copy of the License at
   *
   *     http://www.apache.org/licenses/LICENSE-2.0
   *
   * Unless required by applicable law or agreed to in writing, software
   * distributed under the License is distributed on an "AS IS" BASIS,
   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
   * See the License for the specific language governing permissions and
   * limitations under the License.
   */
  
  /**
   * Implementation of QueryFactoryNew.
   * @author <a href="mailto:jbraeuchi@gmx.ch">Jakob Braeuchi<a>
   * @version $Id: QueryFactoryNewImpl.java,v 1.1 2005/04/07 19:55:11 brj Exp $
   */
  public class QueryFactoryNewImpl implements QueryFactoryNew
  {
      /**
       * create a new ReportQueryByMtoNCriteria.
       * @param classToSearchFrom
       * @param criteria
       * @param distinct
       * @return ReportQueryByMtoNCriteria
       */
      public ReportQueryByMtoNCriteriaImpl newMtoNReportQuery(Class classToSearchFrom, String[] columns, Criteria criteria, boolean distinct, String indirectionTable)
      {
          ReportQueryByMtoNCriteriaImpl query = new ReportQueryByMtoNCriteriaImpl(classToSearchFrom, columns, criteria, distinct);
          query.setIndirectionTable(indirectionTable);
          return query;
      }
  
      /**
       * create a new ReportQueryByCriteria.
       * @param classToSearchFrom
       * @param criteria
       * @param distinct
       * @return ReportQueryByCriteria
       */
      public ReportQueryByCriteria newReportQuery(Class classToSearchFrom, String[] columns, Criteria criteria, boolean distinct)
      {
          return new ReportQueryByCriteriaImpl(classToSearchFrom, columns, criteria, distinct);
      }
  
      /**
       * create a new ReportQueryByCriteria.
       * @param classToSearchFrom
       * @param criteria
       * @param distinct
       * @return ReportQueryByCriteria
       */
      public ReportQueryByCriteria newReportQuery(Class classToSearchFrom, Criteria criteria, boolean distinct)
      {
          return newReportQuery(classToSearchFrom, null, criteria, distinct);
      }
  
      /**
       * create a new ReportQueryByCriteria.
       * @param classToSearchFrom
       * @param criteria
       * @return ReportQueryByCriteria
       */
      public ReportQueryByCriteria newReportQuery(Class classToSearchFrom, Criteria criteria)
      {
          return newReportQuery(classToSearchFrom, criteria, false);
      }
  
      /**
       * create a new QueryByCriteria.
       * @param classToSearchFrom
       * @param criteria
       * @param distinct
       * @return QueryByCriteria
       */
      public QueryByCriteria newQuery(Class classToSearchFrom, Criteria criteria, boolean distinct)
      {
          return new QueryByCriteriaImpl(classToSearchFrom, criteria, distinct);
      }
  
      /**
       * create a new QueryByCriteria.
       * @param classToSearchFrom
       * @param criteria
       * @return QueryByCriteria
       */
      public QueryByCriteria newQuery(Class classToSearchFrom, Criteria criteria)
      {
          return newQuery(classToSearchFrom, criteria, false);
      }
  
      /**
       * Return a QueryByIdentity for object_or_identity.
       * @param object_or_identity
       * @return QueryByIdentity
       */
      public QueryByIdentity newQueryByIdentity(Object object_or_identity)
      {
          return new QueryByIdentityImpl(object_or_identity);
      }
  
      /**
       * Return a QueryByCriteria for example.
       * <br>Use with care because building of Query is not foolproof !!!
       * @param example
       * @return QueryByExample
       */
      public QueryByExample newQueryByExample(Object example)
      {
          return new QueryByExampleImpl(example);
      }
  
      /**
       * create a new QueryByMtoNCriteria.
       * @param classToSearchFrom
       * @param indirectionTable
       * @param criteria
       * @param distinct
       * @return QueryByMtoNCriteria
       */
      public QueryByMtoNCriteria newQuery(Class classToSearchFrom, String indirectionTable, Criteria criteria, boolean distinct)
      {
          return new QueryByMtoNCriteria(classToSearchFrom, indirectionTable, criteria, distinct);
      }
  
      /**
       * create a new QueryByCriteria.
       * @param classToSearchFrom
       * @param indirectionTable
       * @param criteria
       * @return QueryByCriteria
       */
      public QueryByCriteria newQuery(Class classToSearchFrom, String indirectionTable, Criteria criteria)
      {
          return new QueryByMtoNCriteria(classToSearchFrom, indirectionTable, criteria);
      }
  
      /**
       * Factory method for QueryBySQL.
       * @param classToSearchFrom
       * @param anSqlStatement
       * @return QueryBySQL
       */
      public QueryBySQL newQuery(Class classToSearchFrom, String anSqlStatement)
      {
          return new QueryBySQLImpl(classToSearchFrom, anSqlStatement);
      }
  
      /**
       * Return a copy of a QueryByCriteria.
       * @param QueryByCriteria
       * @return QueryByCriteria
       */
      public QueryByCriteria copyQuery(QueryByCriteria aQuery)
      {
          if (aQuery instanceof ReportQueryByMtoNCriteriaImpl)
          {
              return new ReportQueryByMtoNCriteriaImpl((ReportQueryByMtoNCriteriaImpl) aQuery);
          }
          
          if (aQuery instanceof ReportQuery)
          {
              return new ReportQueryByCriteriaImpl((ReportQueryByCriteriaImpl) aQuery);
          }
  
          if (aQuery instanceof QueryByExample)
          {
              return new QueryByExampleImpl((QueryByExampleImpl) aQuery);
          }
  
          if (aQuery instanceof QueryByMtoNCriteria)
          {
              return new QueryByMtoNCriteria((QueryByMtoNCriteria) aQuery);
          }
          
          return new QueryByCriteriaImpl((QueryByCriteriaImpl) aQuery); 
      }
  
  }
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: ojb-dev-unsubscribe@db.apache.org
For additional commands, e-mail: ojb-dev-help@db.apache.org