001    package org.apache.ojb.broker;
002    
003    /* Copyright 2002-2005 The Apache Software Foundation
004     *
005     * Licensed under the Apache License, Version 2.0 (the "License");
006     * you may not use this file except in compliance with the License.
007     * You may obtain a copy of the License at
008     *
009     *     http://www.apache.org/licenses/LICENSE-2.0
010     *
011     * Unless required by applicable law or agreed to in writing, software
012     * distributed under the License is distributed on an "AS IS" BASIS,
013     * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
014     * See the License for the specific language governing permissions and
015     * limitations under the License.
016     */
017    
018    import org.apache.ojb.broker.core.PersistenceBrokerFactoryFactory;
019    import org.apache.ojb.broker.util.configuration.Configurator;
020    import org.apache.ojb.broker.util.configuration.impl.OjbConfigurator;
021    import org.apache.ojb.broker.metadata.MetadataManager;
022    
023    /**
024     * Convenience factory class that produces {@link PersistenceBroker} instances.
025     *
026     * @see org.apache.ojb.broker.core.PersistenceBrokerFactoryFactory
027     * @see org.apache.ojb.broker.core.PersistenceBrokerFactoryIF
028     * @author Thomas Mahler
029     * @version $Id: PersistenceBrokerFactory.java,v 1.1 2007-08-24 22:17:36 ewestfal Exp $
030     */
031    public class PersistenceBrokerFactory
032    {
033        /**
034         * Returns the {@link org.apache.ojb.broker.util.configuration.Configurator}
035         * object.
036         *
037         * @return The configurator
038         */
039        public static Configurator getConfigurator()
040        {
041            return OjbConfigurator.getInstance();
042        }
043    
044        /**
045         * Sets the key that specifies the default persistence manager.
046         * 
047         * @param key The default broker key
048         * @see org.apache.ojb.broker.core.PersistenceBrokerFactoryIF#setDefaultKey
049         */
050        public static void setDefaultKey(PBKey key)
051        {
052            MetadataManager.getInstance().setDefaultPBKey(key);
053        }
054    
055        /**
056         * Returns the key that specifies the default persistence manager.
057         * 
058         * @return The default broker key
059         * @see org.apache.ojb.broker.core.PersistenceBrokerFactoryIF#getDefaultKey
060         */
061        public static PBKey getDefaultKey()
062        {
063            return MetadataManager.getInstance().getDefaultPBKey();
064        }
065    
066        /**
067         * Creates a default broker instance for the default broker key.
068         * 
069         * @return The persistence broker
070         * @see org.apache.ojb.broker.core.PersistenceBrokerFactoryIF#defaultPersistenceBroker
071         */
072        public static PersistenceBroker defaultPersistenceBroker() throws PBFactoryException
073        {
074            return PersistenceBrokerFactoryFactory.instance().
075                    defaultPersistenceBroker();
076        }
077    
078        /**
079         * Creates a new broker instance.
080         * 
081         * @param jcdAlias The jdbc connection descriptor name as defined in the repository
082         * @param user     The user name to be used for connecting to the database
083         * @param password The password to be used for connecting to the database
084         * @return The persistence broker
085         * @see org.apache.ojb.broker.core.PersistenceBrokerFactoryIF#createPersistenceBroker(java.lang.String, java.lang.String, java.lang.String)
086         */
087        public static PersistenceBroker createPersistenceBroker(String jcdAlias,
088                                                                String user,
089                                                                String password) throws PBFactoryException
090        {
091            return PersistenceBrokerFactoryFactory.instance().
092                       createPersistenceBroker(jcdAlias, user, password);
093        }
094    
095        /**
096         * Creates a new broker instance for the given key.
097         * 
098         * @param key The broker key
099         * @return The persistence broker
100         * @see org.apache.ojb.broker.core.PersistenceBrokerFactoryIF#createPersistenceBroker(org.apache.ojb.broker.PBKey)
101         */
102        public static PersistenceBroker createPersistenceBroker(PBKey key) throws PBFactoryException
103        {
104            return PersistenceBrokerFactoryFactory.instance().createPersistenceBroker(key);
105        }
106    
107        /**
108         * Releases all broker instances pooled by this factory (if any). Note that the broker are
109         * closed prior to releasing them.
110         * 
111         * @see org.apache.ojb.broker.core.PersistenceBrokerFactoryIF#releaseAllInstances
112         */
113        public static void releaseAllInstances()
114        {
115            PersistenceBrokerFactoryFactory.instance().releaseAllInstances();
116        }
117    
118        /**
119         * Shuts OJB down, i.e. releases all resources. You should not use any OJB functionality 
120         * after calling this method. 
121         * 
122         * @see org.apache.ojb.broker.core.PersistenceBrokerFactoryIF#shutdown()
123         */
124        public static void shutdown()
125        {
126            PersistenceBrokerFactoryFactory.instance().shutdown();
127        }
128    }