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