You are viewing a plain text version of this content. The canonical link for it is here.
Posted to ddlutils-dev@db.apache.org by to...@apache.org on 2006/01/17 21:47:58 UTC

svn commit: r369912 - /db/ddlutils/trunk/src/java/org/apache/ddlutils/task/DumpMetadataTask.java

Author: tomdz
Date: Tue Jan 17 12:47:51 2006
New Revision: 369912

URL: http://svn.apache.org/viewcvs?rev=369912&view=rev
Log:
Added more configuration options

Modified:
    db/ddlutils/trunk/src/java/org/apache/ddlutils/task/DumpMetadataTask.java

Modified: db/ddlutils/trunk/src/java/org/apache/ddlutils/task/DumpMetadataTask.java
URL: http://svn.apache.org/viewcvs/db/ddlutils/trunk/src/java/org/apache/ddlutils/task/DumpMetadataTask.java?rev=369912&r1=369911&r2=369912&view=diff
==============================================================================
--- db/ddlutils/trunk/src/java/org/apache/ddlutils/task/DumpMetadataTask.java (original)
+++ db/ddlutils/trunk/src/java/org/apache/ddlutils/task/DumpMetadataTask.java Tue Jan 17 12:47:51 2006
@@ -69,6 +69,10 @@
     private String _columnPattern = "%";
     /** The tables types to read; <code>null</code> or an empty list means that we shall read every type. */
     private String[] _tableTypes = null;
+    /** Whether to read tables. */
+    private boolean _dumpTables = true;
+    /** Whether to read procedures. */
+    private boolean _dumpProcedures = true;
 
     /**
      * Adds the data source to use for accessing the database.
@@ -167,6 +171,26 @@
     }
 
     /**
+     * Specifies whether procedures shall be read from the database.
+     *
+     * @param readProcedures <code>true</code> if procedures shall be read
+     */
+    public void setDumpProcedures(boolean readProcedures)
+    {
+        _dumpProcedures = readProcedures;
+    }
+
+    /**
+     * Specifies whether tables shall be read from the database.
+     *
+     * @param readTables <code>true</code> if tables shall be read
+     */
+    public void setDumpTables(boolean readTables)
+    {
+        _dumpTables = readTables;
+    }
+
+    /**
      * {@inheritDoc}
      */
     public void execute() throws BuildException
@@ -246,7 +270,14 @@
             }
         }
         dumpCatalogsAndSchemas(element, metaData);
-        dumpProcedures(element, metaData);
+        if (_dumpTables)
+        {
+            dumpTables(element, metaData);
+        }
+        if (_dumpProcedures)
+        {
+            dumpProcedures(element, metaData);
+        }
     }
 
     /**
@@ -400,33 +431,6 @@
      */
     private void dumpCatalogsAndSchemas(Element parent, DatabaseMetaData metaData) throws SQLException
     {
-        String[] tableTypes = _tableTypes;
-
-        if ((tableTypes == null) || (tableTypes.length == 0))
-        {
-            // First we need the list of supported table types
-            ArrayList tableTypeList = new ArrayList();
-
-            ResultSet result  = metaData.getTableTypes();
-
-            try
-            {
-                while (result.next())
-                {
-                    tableTypeList.add(getString(result, "TABLE_TYPE"));
-                }
-            }
-            finally
-            {
-                if (result != null)
-                {
-                    result.close();
-                }
-            }
-    
-            tableTypes = (String[])tableTypeList.toArray(new String[tableTypeList.size()]);
-        }
-
         // Next we determine and dump the catalogs
         Element   catalogsElem = parent.addElement("catalogs");
         ResultSet result       = metaData.getCatalogs();
@@ -479,20 +483,43 @@
                 result.close();
             }
         }
-
-        dumpTables(parent, metaData, tableTypes);
     }
 
     /**
      * Dumps all tables.
      * 
-     * @param parent     The parent element
-     * @param metaData   The database metadata
-     * @param tableTypes The table types
+     * @param parent   The parent element
+     * @param metaData The database metadata
      */
-    private void dumpTables(Element parent, DatabaseMetaData metaData, String[] tableTypes) throws SQLException
+    private void dumpTables(Element parent, DatabaseMetaData metaData) throws SQLException
     {
-        ResultSet result = null;
+        String[]  tableTypes = _tableTypes;
+        ResultSet result     = null;
+
+        if ((tableTypes == null) || (tableTypes.length == 0))
+        {
+            // First we need the list of supported table types
+            ArrayList tableTypeList = new ArrayList();
+
+            result = metaData.getTableTypes();
+
+            try
+            {
+                while (result.next())
+                {
+                    tableTypeList.add(getString(result, "TABLE_TYPE"));
+                }
+            }
+            finally
+            {
+                if (result != null)
+                {
+                    result.close();
+                }
+            }
+    
+            tableTypes = (String[])tableTypeList.toArray(new String[tableTypeList.size()]);
+        }
 
         try
         {
@@ -518,12 +545,12 @@
                     continue;
                 }
 
-                log("Reading table "+tableName, Project.MSG_INFO);
-
                 Element tableElem = tablesElem.addElement("table");
                 String  catalog   = getString(result, "TABLE_CAT");
                 String  schema    = getString(result, "TABLE_SCHEM");
     
+                log("Reading table " + ((schema != null) && (schema.length() > 0) ? schema + "." : "") + tableName, Project.MSG_INFO);
+
                 tableElem.addAttribute("name", tableName);
                 if (catalog != null)
                 {
@@ -1007,13 +1034,21 @@
                     continue;
                 }
 
-                log("Reading procedure "+procedureName, Project.MSG_INFO);
-
                 Element procedureElem = proceduresElem.addElement("procedure");
+                String  catalog       = getString(result, "PROCEDURE_CAT");
+                String  schema        = getString(result, "PROCEDURE_SCHEM");
     
+                log("Reading procedure " + ((schema != null) && (schema.length() > 0) ? schema + "." : "") + procedureName, Project.MSG_INFO);
+
                 procedureElem.addAttribute("name", procedureName);
-                addStringAttribute(result, columns, "PROCEDURE_CAT", procedureElem, "catalog");
-                addStringAttribute(result, columns, "PROCEDURE_SCHEM", procedureElem, "schema");
+                if (catalog != null)
+                {
+                    procedureElem.addAttribute("catalog", catalog);
+                }
+                if (schema != null)
+                {
+                    procedureElem.addAttribute("schema", schema);
+                }
                 addStringAttribute(result, columns, "REMARKS", procedureElem, "remarks");
                 if (columns.contains("PROCEDURE_TYPE"))
                 {