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


Reply via email to