kevinross    2003/07/14 11:31:57

  Modified:    java/src/org/apache/xindice/core Database.java
  Log:
  started refactoring for:
  -javabeans naming
  -reduce double checks for log levels when not doing an expensive logging 
operation
  
  
  Revision  Changes    Path
  1.20      +43 -39    
xml-xindice/java/src/org/apache/xindice/core/Database.java
  
  Index: Database.java
  ===================================================================
  RCS file: 
/home/cvs/xml-xindice/java/src/org/apache/xindice/core/Database.java,v
  retrieving revision 1.19
  retrieving revision 1.20
  diff -u -r1.19 -r1.20
  --- Database.java     10 Jul 2003 21:41:05 -0000      1.19
  +++ Database.java     14 Jul 2003 18:31:57 -0000      1.20
  @@ -70,6 +70,7 @@
   import org.apache.xindice.core.meta.TimeRecord;
   import org.apache.xindice.core.query.QueryEngine;
   import org.apache.xindice.util.Configuration;
  +import org.apache.xindice.util.ConfigurationException;
   import org.apache.xindice.util.Named;
   import org.apache.xindice.util.XindiceException;
   import org.w3c.dom.Document;
  @@ -78,7 +79,6 @@
   /**
    * Database is the primary container for the Xindice Database Engine.
    */
  -
   public final class Database extends Collection implements Named {
        public static final String DBROOT = "dbroot";
        private static final String QUERYENGINE = "queryengine";
  @@ -95,9 +95,9 @@
   
        private DocumentCache docCache = new DocumentCache();
   
  -     private SystemCollection sysCol = null;
  +     private SystemCollection systemCollection = null;
   
  -     private MetaSystemCollection metaCol = null;
  +     private MetaSystemCollection metaSystemCollection = null;
   
        private boolean sysInit = false;
        private boolean metaInit = false;
  @@ -107,6 +107,13 @@
   
        private QueryEngine engine = new QueryEngine(this);
   
  +     /**
  +      * This will merely return an instance of a Database for the given 
  +      *      name if one has already been loaded.
  +      * 
  +      * @param name
  +      * @return Database
  +      */
        public static Database getDatabase(String name) {
   
                Database database = (Database) databases.get(name);
  @@ -120,15 +127,21 @@
                return database;
        }
   
  +     /**
  +      * This will return an instance of a Database for the given 
  +      *      name if one has already been loaded, otherwise it will
  +      *      create a new instance.
  +      * 
  +      * @param config
  +      * @return Database
  +      */
        public static Database getDatabase(Configuration config) {
   
                String name = config.getAttribute(Database.NAME);
   
                // no name in the config file ... can't the database
                if (null == name) {
  -                     log.error("Database configuration didn't contain a 
database name");
  -
  -                     return null;
  +                     throw new ConfigurationException("Database 
configuration didn't contain a database name");
                }
   
                Database database = (Database) databases.get(name);
  @@ -156,7 +169,7 @@
        public void setConfig(Configuration config) {
                this.config = config;
   
  -             name = config.getAttribute(NAME);
  +             this.name = config.getAttribute(NAME);
                setCanonicalName('/' + getName());
   
                String dbroot = config.getAttribute(DBROOT);
  @@ -171,50 +184,45 @@
                try {
                        Configuration queryCfg = config.getChild(QUERYENGINE);
                        if (queryCfg != null)
  -                             engine.setConfig(queryCfg);
  +                             this.engine.setConfig(queryCfg);
                }
                catch (Exception e) {
  -                     if (log.isDebugEnabled()) {
  -                             log.debug("No message", e);
  -                     }
  +
  +                     log.warn(e);
                }
   
                if (!sysInit) {
  -                     sysCol = new SystemCollection(this);
  +                     this.systemCollection = new SystemCollection(this);
   
                        try {
  -                             sysCol.init();
  +                             this.systemCollection.init();
                        }
                        catch (XindiceException e) {
  -                             if (log.isDebugEnabled()) {
  -                                     log.debug("No message", e);
  -                             }
  +                             log.warn(e);
                        }
   
  -                     collections.put(sysCol.getName(), sysCol);
  -                     sysInit = true;
  +                     this.collections.put(systemCollection.getName(), 
systemCollection);
  +                     this.sysInit = true;
                }
   
                try {
                        // Bootstrap from the database itself...  This is 
accomplished
                        // by intercepting the setConfig call and using a 
Configuration
                        // retrieved from the database instead of the standard 
config
  -                     Document colDoc = 
sysCol.getCollection(SystemCollection.CONFIGS).getDocument(COLKEY);
  +                     Document colDoc = 
systemCollection.getCollection(SystemCollection.CONFIGS).getDocument(COLKEY);
                        if (colDoc == null) {
                                DocumentBuilder db = 
DocumentBuilderFactory.newInstance().newDocumentBuilder();
                                colDoc = db.newDocument();
                                Element root = colDoc.createElement(DATABASE);
                                root.setAttribute(NAME, name);
                                colDoc.appendChild(root);
  -                             
sysCol.getCollection(SystemCollection.CONFIGS).setDocument(COLKEY, colDoc);
  +                             
systemCollection.getCollection(SystemCollection.CONFIGS).setDocument(COLKEY, 
colDoc);
                        }
   
                        super.setConfig(new 
Configuration(colDoc.getDocumentElement(), false));
                }
                catch (Exception e) {
  -                     if (log.isDebugEnabled()) {
  -                             log.debug("No message", e);
  -                     }
  +                     log.warn(e);
                }
   
                // Register the Database with the VM
  @@ -226,22 +234,18 @@
                if (metaCfg.equalsIgnoreCase("on")) {
                        metaEnabled = true;
                        if (!metaInit) {
  -                             metaCol = new MetaSystemCollection(this);
  +                             this.metaSystemCollection = new 
MetaSystemCollection(this);
                                try {
  -                                     metaCol.init();
  +                                     this.metaSystemCollection.init();
                                }
                                catch (XindiceException e) {
  -                                     if (log.isDebugEnabled()) {
  -                                             log.debug("Error initializing 
the meta collection", e);
  -                                     }
  +                                     log.warn("Error initializing the meta 
collection", e);
                                }
                                // should this attach the meta collection to 
the database?
   
  -                             collections.put(metaCol.getName(), metaCol);
  +                             collections.put(metaSystemCollection.getName(), 
metaSystemCollection);
                                metaInit = true;
  -                             if (log.isInfoEnabled()) {
  -                                     log.info("Meta information 
initialized");
  -                             }
  +                             log.info("Meta information initialized");
                        }
                }
   
  @@ -250,7 +254,7 @@
        }
   
        public SystemCollection getSystemCollection() {
  -             return sysCol;
  +             return systemCollection;
        }
   
        /**
  @@ -260,7 +264,7 @@
         * @return MetaSystemCollection
         */
        public MetaSystemCollection getMetaSystemCollection() {
  -             return metaCol;
  +             return metaSystemCollection;
        }
   
        /**
  @@ -280,15 +284,15 @@
         * properly flushed to disk after a modification.
         */
        public void flushConfig() {
  +             
                try {
                        Document d = config.getElement().getOwnerDocument();
  -                     
sysCol.getCollection(SystemCollection.CONFIGS).setDocument(COLKEY, d);
  +                     
systemCollection.getCollection(SystemCollection.CONFIGS).setDocument(COLKEY, d);
                }
                catch (Exception e) {
  -                     if (log.isErrorEnabled()) {
  -                             log.error("Error Writing Configuration '" + 
name + "', for database " + getName(), e);
  -                     }
  +                     log.error("Error Writing Configuration '" + name + "', 
for database " + getName(), e);
                }
  +             
                // observer
                DBObserver.getInstance().flushDatabaseConfig(this, config);
        }
  
  
  

Reply via email to