Author: tfischer
Date: Tue Apr 17 13:32:45 2012
New Revision: 1327092

URL: http://svn.apache.org/viewvc?rev=1327092&view=rev
Log:
TORQUE-39: The default schema name is now "default" for jdbc2schema.
It can be overridden by setting the torque.database.name option

Added:
    
db/torque/torque4/trunk/torque-templates/src/main/java/org/apache/torque/templates/transformer/jdbc2schema/
    
db/torque/torque4/trunk/torque-templates/src/main/java/org/apache/torque/templates/transformer/jdbc2schema/Jdbc2SchemaOptionName.java
    
db/torque/torque4/trunk/torque-templates/src/main/java/org/apache/torque/templates/transformer/jdbc2schema/Jdbc2SchemaTransformer.java
    
db/torque/torque4/trunk/torque-templates/src/main/java/org/apache/torque/templates/transformer/jdbc2schema/package.html
Modified:
    
db/torque/torque4/trunk/torque-templates/src/main/resources/org/apache/torque/templates/jdbc2schema/conf/control.xml
    
db/torque/torque4/trunk/torque-templates/src/test/resources/org/apache/torque/templates/jdbc2schema/expected-schema.xml

Added: 
db/torque/torque4/trunk/torque-templates/src/main/java/org/apache/torque/templates/transformer/jdbc2schema/Jdbc2SchemaOptionName.java
URL: 
http://svn.apache.org/viewvc/db/torque/torque4/trunk/torque-templates/src/main/java/org/apache/torque/templates/transformer/jdbc2schema/Jdbc2SchemaOptionName.java?rev=1327092&view=auto
==============================================================================
--- 
db/torque/torque4/trunk/torque-templates/src/main/java/org/apache/torque/templates/transformer/jdbc2schema/Jdbc2SchemaOptionName.java
 (added)
+++ 
db/torque/torque4/trunk/torque-templates/src/main/java/org/apache/torque/templates/transformer/jdbc2schema/Jdbc2SchemaOptionName.java
 Tue Apr 17 13:32:45 2012
@@ -0,0 +1,120 @@
+package org.apache.torque.templates.transformer.jdbc2schema;
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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.
+ */
+
+import org.apache.torque.generator.control.ControllerState;
+import org.apache.torque.generator.option.OptionName;
+import org.apache.torque.generator.source.transform.SourceTransformerException;
+
+/**
+ * The option names which are used in the java code of the jdbc2schema
+ * templates.
+ *
+ * $Id: $
+ */
+public enum Jdbc2SchemaOptionName implements OptionName
+{
+    /** The name of the database to generate.*/
+    DATABASE_NAME("torque.database.name", false);
+
+    /**
+     * The fully qualified name of the option.
+     */
+    private String name;
+
+    /**
+     * Whether this option must be set or not.
+     */
+    private boolean required;
+
+    /**
+     * Constructor for an option which is not required..
+     *
+     * @param name the fully qualified name of the option, not null.
+     */
+    private Jdbc2SchemaOptionName(String name)
+    {
+        this(name, false);
+    }
+
+    /**
+     * Constructor.
+     *
+     * @param name the fully qualified name of the option, not null.
+     * @param required whether the option is required.
+     */
+    private Jdbc2SchemaOptionName(String name, boolean required)
+    {
+        this.name = name;
+        this.required = required;
+    }
+
+    /**
+     * Returns the name of the option.
+     *
+     * @return the fully qualified name of the option, not null.
+     */
+    public String getName()
+    {
+        return name;
+    }
+
+    /**
+     * Returns whether this option must be set.
+     *
+     * @return true if the option must be set, false if it may be set.
+     */
+    public boolean isRequired()
+    {
+        return required;
+    }
+
+    @Override
+    public String toString()
+    {
+        return name;
+    }
+
+    /**
+     * Checks whether all required options are set.
+     *
+     * @param controllerState the current controller state, not null.
+     *
+     * @throws SourceTransformerException if a required option is not set.
+     */
+    public static void checkRequiredOptions(ControllerState controllerState)
+        throws SourceTransformerException
+    {
+        for (Jdbc2SchemaOptionName templateOption : values())
+        {
+            if (templateOption.isRequired())
+            {
+                Object optionValue
+                    = controllerState.getOption(templateOption.getName());
+                if (optionValue == null)
+                {
+                    throw new SourceTransformerException(
+                            "Option " + templateOption.getName()
+                                    + " must be set");
+                }
+            }
+        }
+    }
+}

Added: 
db/torque/torque4/trunk/torque-templates/src/main/java/org/apache/torque/templates/transformer/jdbc2schema/Jdbc2SchemaTransformer.java
URL: 
http://svn.apache.org/viewvc/db/torque/torque4/trunk/torque-templates/src/main/java/org/apache/torque/templates/transformer/jdbc2schema/Jdbc2SchemaTransformer.java?rev=1327092&view=auto
==============================================================================
--- 
db/torque/torque4/trunk/torque-templates/src/main/java/org/apache/torque/templates/transformer/jdbc2schema/Jdbc2SchemaTransformer.java
 (added)
+++ 
db/torque/torque4/trunk/torque-templates/src/main/java/org/apache/torque/templates/transformer/jdbc2schema/Jdbc2SchemaTransformer.java
 Tue Apr 17 13:32:45 2012
@@ -0,0 +1,71 @@
+package org.apache.torque.templates.transformer.jdbc2schema;
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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.
+ */
+
+import org.apache.torque.generator.control.ControllerState;
+import org.apache.torque.generator.source.SourceElement;
+import org.apache.torque.generator.source.transform.SourceTransformer;
+import org.apache.torque.generator.source.transform.SourceTransformerException;
+import org.apache.torque.templates.TorqueSchemaAttributeName;
+
+/**
+ * Performs the transformations which are necessary to apply the jdbc2schema
+ * templates to the source tree.
+ * This transformer performs the following actions:
+ * <ul>
+ *   <li>sets the name attribute to the database element</li>
+ * </ul>
+ * No elements or attributes are deleted.
+ *
+ * $Id: $
+ */
+public class Jdbc2SchemaTransformer implements SourceTransformer
+{
+    /** Default database name if none is set. */
+    private static final String DEFAULT_DATABASE_NAME = "default";
+
+    /**
+     * Transforms the source tree so it can be used by the jdbc2schema
+     * templates.
+     *
+     * @param root the database root element of the source tree, not null.
+     * @param controllerState the controller state, not null.
+     *
+     * @throws SourceTransformerException if the transformation fails.
+     */
+    public SourceElement transform(
+                SourceElement root,
+                ControllerState controllerState)
+            throws SourceTransformerException
+    {
+        if (root.getAttribute(TorqueSchemaAttributeName.NAME) == null)
+        {
+            String name = controllerState.getStringOption(
+                    Jdbc2SchemaOptionName.DATABASE_NAME);
+            if (name == null)
+            {
+                name = DEFAULT_DATABASE_NAME;
+            }
+            root.setAttribute(TorqueSchemaAttributeName.NAME, name);
+        }
+        return root;
+    }
+
+}

Added: 
db/torque/torque4/trunk/torque-templates/src/main/java/org/apache/torque/templates/transformer/jdbc2schema/package.html
URL: 
http://svn.apache.org/viewvc/db/torque/torque4/trunk/torque-templates/src/main/java/org/apache/torque/templates/transformer/jdbc2schema/package.html?rev=1327092&view=auto
==============================================================================
--- 
db/torque/torque4/trunk/torque-templates/src/main/java/org/apache/torque/templates/transformer/jdbc2schema/package.html
 (added)
+++ 
db/torque/torque4/trunk/torque-templates/src/main/java/org/apache/torque/templates/transformer/jdbc2schema/package.html
 Tue Apr 17 13:32:45 2012
@@ -0,0 +1,25 @@
+<!--
+ Copyright 2001-2006 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.
+-->
+<html>
+  <head>
+    <title>Torque jdbc2schema transformers</title>
+  </head>
+  <body>
+    <p>
+      Contains transformers and their helpers for the jdbc2schema templates.
+    </p>
+  </body>
+</html>

Modified: 
db/torque/torque4/trunk/torque-templates/src/main/resources/org/apache/torque/templates/jdbc2schema/conf/control.xml
URL: 
http://svn.apache.org/viewvc/db/torque/torque4/trunk/torque-templates/src/main/resources/org/apache/torque/templates/jdbc2schema/conf/control.xml?rev=1327092&r1=1327091&r2=1327092&view=diff
==============================================================================
--- 
db/torque/torque4/trunk/torque-templates/src/main/resources/org/apache/torque/templates/jdbc2schema/conf/control.xml
 (original)
+++ 
db/torque/torque4/trunk/torque-templates/src/main/resources/org/apache/torque/templates/jdbc2schema/conf/control.xml
 Tue Apr 17 13:32:45 2012
@@ -37,6 +37,7 @@
         usernameOption="torque.jdbc2schema.user"
         passwordOption="torque.jdbc2schema.password"
         schemaOption="torque.jdbc2schema.schema">
+      <transformer 
class="org.apache.torque.templates.transformer.jdbc2schema.Jdbc2SchemaTransformer"/>
     </source>
     <outlet name="torque.jdbc2schema"/>
   </output>

Modified: 
db/torque/torque4/trunk/torque-templates/src/test/resources/org/apache/torque/templates/jdbc2schema/expected-schema.xml
URL: 
http://svn.apache.org/viewvc/db/torque/torque4/trunk/torque-templates/src/test/resources/org/apache/torque/templates/jdbc2schema/expected-schema.xml?rev=1327092&r1=1327091&r2=1327092&view=diff
==============================================================================
--- 
db/torque/torque4/trunk/torque-templates/src/test/resources/org/apache/torque/templates/jdbc2schema/expected-schema.xml
 (original)
+++ 
db/torque/torque4/trunk/torque-templates/src/test/resources/org/apache/torque/templates/jdbc2schema/expected-schema.xml
 Tue Apr 17 13:32:45 2012
@@ -13,7 +13,7 @@
  See the License for the specific language governing permissions and
  limitations under the License.
 -->
-<database>
+<database name="default">
   <table name="AUTHOR">
     <column default="GENERATED_BY_DEFAULT" primaryKey="true" name="AUTHOR_ID" 
type="INTEGER"/>
     <column name="NAME" required="true" type="VARCHAR" size="50"/>



---------------------------------------------------------------------
To unsubscribe, e-mail: torque-dev-unsubscr...@db.apache.org
For additional commands, e-mail: torque-dev-h...@db.apache.org

Reply via email to