You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tiles.apache.org by ap...@apache.org on 2010/02/02 17:51:06 UTC

svn commit: r905702 - in /tiles/sandbox/trunk/tiles-autotag/tiles-autotag-core: ./ src/main/java/org/apache/tiles/autotag/generate/ src/test/java/org/apache/tiles/autotag/generate/

Author: apetrelli
Date: Tue Feb  2 16:51:03 2010
New Revision: 905702

URL: http://svn.apache.org/viewvc?rev=905702&view=rev
Log:
TILESSB-21
Added base code for generation of code.

Added:
    tiles/sandbox/trunk/tiles-autotag/tiles-autotag-core/src/main/java/org/apache/tiles/autotag/generate/
    tiles/sandbox/trunk/tiles-autotag/tiles-autotag-core/src/main/java/org/apache/tiles/autotag/generate/AbstractTemplateGenerator.java   (with props)
    tiles/sandbox/trunk/tiles-autotag/tiles-autotag-core/src/main/java/org/apache/tiles/autotag/generate/TemplateClassGenerator.java   (with props)
    tiles/sandbox/trunk/tiles-autotag/tiles-autotag-core/src/main/java/org/apache/tiles/autotag/generate/TemplateGenerator.java   (with props)
    tiles/sandbox/trunk/tiles-autotag/tiles-autotag-core/src/main/java/org/apache/tiles/autotag/generate/TemplateSuiteGenerator.java   (with props)
    tiles/sandbox/trunk/tiles-autotag/tiles-autotag-core/src/test/java/org/apache/tiles/autotag/generate/
    tiles/sandbox/trunk/tiles-autotag/tiles-autotag-core/src/test/java/org/apache/tiles/autotag/generate/AbstractTemplateGeneratorTest.java   (with props)
Modified:
    tiles/sandbox/trunk/tiles-autotag/tiles-autotag-core/pom.xml

Modified: tiles/sandbox/trunk/tiles-autotag/tiles-autotag-core/pom.xml
URL: http://svn.apache.org/viewvc/tiles/sandbox/trunk/tiles-autotag/tiles-autotag-core/pom.xml?rev=905702&r1=905701&r2=905702&view=diff
==============================================================================
--- tiles/sandbox/trunk/tiles-autotag/tiles-autotag-core/pom.xml (original)
+++ tiles/sandbox/trunk/tiles-autotag/tiles-autotag-core/pom.xml Tue Feb  2 16:51:03 2010
@@ -40,5 +40,11 @@
             <artifactId>tiles-request-api</artifactId>
             <version>1.0-SNAPSHOT</version>
         </dependency>
+        <dependency>
+        	<groupId>org.easymock</groupId>
+        	<artifactId>easymockclassextension</artifactId>
+        	<version>2.5.2</version>
+        	<scope>test</scope>
+        </dependency>
     </dependencies>
 </project>

Added: tiles/sandbox/trunk/tiles-autotag/tiles-autotag-core/src/main/java/org/apache/tiles/autotag/generate/AbstractTemplateGenerator.java
URL: http://svn.apache.org/viewvc/tiles/sandbox/trunk/tiles-autotag/tiles-autotag-core/src/main/java/org/apache/tiles/autotag/generate/AbstractTemplateGenerator.java?rev=905702&view=auto
==============================================================================
--- tiles/sandbox/trunk/tiles-autotag/tiles-autotag-core/src/main/java/org/apache/tiles/autotag/generate/AbstractTemplateGenerator.java (added)
+++ tiles/sandbox/trunk/tiles-autotag/tiles-autotag-core/src/main/java/org/apache/tiles/autotag/generate/AbstractTemplateGenerator.java Tue Feb  2 16:51:03 2010
@@ -0,0 +1,40 @@
+package org.apache.tiles.autotag.generate;
+
+import java.io.File;
+import java.util.ArrayList;
+import java.util.List;
+
+import org.apache.tiles.autotag.model.TemplateClass;
+import org.apache.tiles.autotag.model.TemplateSuite;
+
+public class AbstractTemplateGenerator implements TemplateGenerator {
+
+    private List<TemplateSuiteGenerator> templateSuiteGenerators;
+
+    private List<TemplateClassGenerator> templateClassGenerators;
+
+    public AbstractTemplateGenerator() {
+        templateClassGenerators = new ArrayList<TemplateClassGenerator>();
+        templateSuiteGenerators = new ArrayList<TemplateSuiteGenerator>();
+    }
+
+    @Override
+    public void generate(File directory, String packageName, TemplateSuite suite) {
+        for (TemplateSuiteGenerator generator: templateSuiteGenerators) {
+            generator.generate(directory, packageName, suite);
+        }
+        for (TemplateClass templateClass: suite.getTemplateClasses()) {
+            for (TemplateClassGenerator generator: templateClassGenerators) {
+                generator.generate(directory, packageName, templateClass);
+            }
+        }
+    }
+
+    protected void addTemplateSuiteGenerator(TemplateSuiteGenerator generator) {
+        templateSuiteGenerators.add(generator);
+    }
+
+    protected void addTemplateClassGenerator(TemplateClassGenerator generator) {
+        templateClassGenerators.add(generator);
+    }
+}

Propchange: tiles/sandbox/trunk/tiles-autotag/tiles-autotag-core/src/main/java/org/apache/tiles/autotag/generate/AbstractTemplateGenerator.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: tiles/sandbox/trunk/tiles-autotag/tiles-autotag-core/src/main/java/org/apache/tiles/autotag/generate/AbstractTemplateGenerator.java
------------------------------------------------------------------------------
    svn:keywords = Date Author Id Revision HeadURL

Added: tiles/sandbox/trunk/tiles-autotag/tiles-autotag-core/src/main/java/org/apache/tiles/autotag/generate/TemplateClassGenerator.java
URL: http://svn.apache.org/viewvc/tiles/sandbox/trunk/tiles-autotag/tiles-autotag-core/src/main/java/org/apache/tiles/autotag/generate/TemplateClassGenerator.java?rev=905702&view=auto
==============================================================================
--- tiles/sandbox/trunk/tiles-autotag/tiles-autotag-core/src/main/java/org/apache/tiles/autotag/generate/TemplateClassGenerator.java (added)
+++ tiles/sandbox/trunk/tiles-autotag/tiles-autotag-core/src/main/java/org/apache/tiles/autotag/generate/TemplateClassGenerator.java Tue Feb  2 16:51:03 2010
@@ -0,0 +1,10 @@
+package org.apache.tiles.autotag.generate;
+
+import java.io.File;
+
+import org.apache.tiles.autotag.model.TemplateClass;
+
+public interface TemplateClassGenerator {
+
+    void generate(File directory, String packageName, TemplateClass clazz);
+}

Propchange: tiles/sandbox/trunk/tiles-autotag/tiles-autotag-core/src/main/java/org/apache/tiles/autotag/generate/TemplateClassGenerator.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: tiles/sandbox/trunk/tiles-autotag/tiles-autotag-core/src/main/java/org/apache/tiles/autotag/generate/TemplateClassGenerator.java
------------------------------------------------------------------------------
    svn:keywords = Date Author Id Revision HeadURL

Added: tiles/sandbox/trunk/tiles-autotag/tiles-autotag-core/src/main/java/org/apache/tiles/autotag/generate/TemplateGenerator.java
URL: http://svn.apache.org/viewvc/tiles/sandbox/trunk/tiles-autotag/tiles-autotag-core/src/main/java/org/apache/tiles/autotag/generate/TemplateGenerator.java?rev=905702&view=auto
==============================================================================
--- tiles/sandbox/trunk/tiles-autotag/tiles-autotag-core/src/main/java/org/apache/tiles/autotag/generate/TemplateGenerator.java (added)
+++ tiles/sandbox/trunk/tiles-autotag/tiles-autotag-core/src/main/java/org/apache/tiles/autotag/generate/TemplateGenerator.java Tue Feb  2 16:51:03 2010
@@ -0,0 +1,10 @@
+package org.apache.tiles.autotag.generate;
+
+import java.io.File;
+
+import org.apache.tiles.autotag.model.TemplateSuite;
+
+public interface TemplateGenerator {
+
+    void generate(File directory, String packageName, TemplateSuite suite);
+}

Propchange: tiles/sandbox/trunk/tiles-autotag/tiles-autotag-core/src/main/java/org/apache/tiles/autotag/generate/TemplateGenerator.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: tiles/sandbox/trunk/tiles-autotag/tiles-autotag-core/src/main/java/org/apache/tiles/autotag/generate/TemplateGenerator.java
------------------------------------------------------------------------------
    svn:keywords = Date Author Id Revision HeadURL

Added: tiles/sandbox/trunk/tiles-autotag/tiles-autotag-core/src/main/java/org/apache/tiles/autotag/generate/TemplateSuiteGenerator.java
URL: http://svn.apache.org/viewvc/tiles/sandbox/trunk/tiles-autotag/tiles-autotag-core/src/main/java/org/apache/tiles/autotag/generate/TemplateSuiteGenerator.java?rev=905702&view=auto
==============================================================================
--- tiles/sandbox/trunk/tiles-autotag/tiles-autotag-core/src/main/java/org/apache/tiles/autotag/generate/TemplateSuiteGenerator.java (added)
+++ tiles/sandbox/trunk/tiles-autotag/tiles-autotag-core/src/main/java/org/apache/tiles/autotag/generate/TemplateSuiteGenerator.java Tue Feb  2 16:51:03 2010
@@ -0,0 +1,10 @@
+package org.apache.tiles.autotag.generate;
+
+import java.io.File;
+
+import org.apache.tiles.autotag.model.TemplateSuite;
+
+public interface TemplateSuiteGenerator {
+
+    void generate(File directory, String packageName, TemplateSuite suite);
+}

Propchange: tiles/sandbox/trunk/tiles-autotag/tiles-autotag-core/src/main/java/org/apache/tiles/autotag/generate/TemplateSuiteGenerator.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: tiles/sandbox/trunk/tiles-autotag/tiles-autotag-core/src/main/java/org/apache/tiles/autotag/generate/TemplateSuiteGenerator.java
------------------------------------------------------------------------------
    svn:keywords = Date Author Id Revision HeadURL

Added: tiles/sandbox/trunk/tiles-autotag/tiles-autotag-core/src/test/java/org/apache/tiles/autotag/generate/AbstractTemplateGeneratorTest.java
URL: http://svn.apache.org/viewvc/tiles/sandbox/trunk/tiles-autotag/tiles-autotag-core/src/test/java/org/apache/tiles/autotag/generate/AbstractTemplateGeneratorTest.java?rev=905702&view=auto
==============================================================================
--- tiles/sandbox/trunk/tiles-autotag/tiles-autotag-core/src/test/java/org/apache/tiles/autotag/generate/AbstractTemplateGeneratorTest.java (added)
+++ tiles/sandbox/trunk/tiles-autotag/tiles-autotag-core/src/test/java/org/apache/tiles/autotag/generate/AbstractTemplateGeneratorTest.java Tue Feb  2 16:51:03 2010
@@ -0,0 +1,52 @@
+/**
+ *
+ */
+package org.apache.tiles.autotag.generate;
+
+import static org.easymock.EasyMock.*;
+import static org.easymock.classextension.EasyMock.*;
+
+import java.io.File;
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.List;
+
+import org.apache.tiles.autotag.model.TemplateClass;
+import org.apache.tiles.autotag.model.TemplateSuite;
+import org.junit.Test;
+
+/**
+ * Tests {@link AbstractTemplateGenerator}.
+ *
+ * @version $Rev$ $Date$
+ */
+public class AbstractTemplateGeneratorTest {
+
+    /**
+     * Test method for {@link org.apache.tiles.autotag.generate.AbstractTemplateGenerator#generate(java.io.File, java.lang.String, org.apache.tiles.autotag.model.TemplateSuite)}.
+     * @throws IOException If something goes wrong.
+     */
+    @Test
+    public void testGenerate() throws IOException {
+        AbstractTemplateGenerator generator = createMockBuilder(AbstractTemplateGenerator.class).withConstructor().createMock();
+        File file = File.createTempFile("tiles", "template");
+        file.deleteOnExit();
+        TemplateSuite suite = createMock(TemplateSuite.class);
+        TemplateClass templateClass = createMock(TemplateClass.class);
+        TemplateSuiteGenerator templateSuiteGenerator = createMock(TemplateSuiteGenerator.class);
+        TemplateClassGenerator templateClassGenerator = createMock(TemplateClassGenerator.class);
+        List<TemplateClass> templateClasses = new ArrayList<TemplateClass>();
+
+        templateClasses.add(templateClass);
+
+        expect(suite.getTemplateClasses()).andReturn(templateClasses);
+        templateSuiteGenerator.generate(file, "my.package", suite);
+        templateClassGenerator.generate(file, "my.package", templateClass);
+
+        replay(generator, suite, templateClass, templateSuiteGenerator, templateClassGenerator);
+        generator.addTemplateSuiteGenerator(templateSuiteGenerator);
+        generator.addTemplateClassGenerator(templateClassGenerator);
+        generator.generate(file, "my.package", suite);
+        verify(generator, suite, templateClass, templateSuiteGenerator, templateClassGenerator);
+    }
+}

Propchange: tiles/sandbox/trunk/tiles-autotag/tiles-autotag-core/src/test/java/org/apache/tiles/autotag/generate/AbstractTemplateGeneratorTest.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: tiles/sandbox/trunk/tiles-autotag/tiles-autotag-core/src/test/java/org/apache/tiles/autotag/generate/AbstractTemplateGeneratorTest.java
------------------------------------------------------------------------------
    svn:keywords = Date Author Id Revision HeadURL