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/12/11 21:35:58 UTC
svn commit: r1044707 - in
/tiles/sandbox/trunk/tiles-autotag/tiles-autotag-core/src/main/java/org/apache/tiles/autotag:
core/ generate/ model/ tool/
Author: apetrelli
Date: Sat Dec 11 20:35:57 2010
New Revision: 1044707
URL: http://svn.apache.org/viewvc?rev=1044707&view=rev
Log:
TILESSB-38
Fixed tiles-autotag-core main code checkstyle.
Added:
tiles/sandbox/trunk/tiles-autotag/tiles-autotag-core/src/main/java/org/apache/tiles/autotag/core/package-info.java (with props)
tiles/sandbox/trunk/tiles-autotag/tiles-autotag-core/src/main/java/org/apache/tiles/autotag/generate/package-info.java (with props)
tiles/sandbox/trunk/tiles-autotag/tiles-autotag-core/src/main/java/org/apache/tiles/autotag/model/package-info.java (with props)
tiles/sandbox/trunk/tiles-autotag/tiles-autotag-core/src/main/java/org/apache/tiles/autotag/tool/package-info.java (with props)
Modified:
tiles/sandbox/trunk/tiles-autotag/tiles-autotag-core/src/main/java/org/apache/tiles/autotag/core/AutotagRuntimeException.java
tiles/sandbox/trunk/tiles-autotag/tiles-autotag-core/src/main/java/org/apache/tiles/autotag/core/ClassParseException.java
tiles/sandbox/trunk/tiles-autotag/tiles-autotag-core/src/main/java/org/apache/tiles/autotag/core/QDoxTemplateSuiteFactory.java
tiles/sandbox/trunk/tiles-autotag/tiles-autotag-core/src/main/java/org/apache/tiles/autotag/generate/AbstractTemplateClassGenerator.java
tiles/sandbox/trunk/tiles-autotag/tiles-autotag-core/src/main/java/org/apache/tiles/autotag/generate/AbstractTemplateSuiteGenerator.java
tiles/sandbox/trunk/tiles-autotag/tiles-autotag-core/src/main/java/org/apache/tiles/autotag/generate/BasicTemplateGenerator.java
tiles/sandbox/trunk/tiles-autotag/tiles-autotag-core/src/main/java/org/apache/tiles/autotag/generate/TemplateClassGenerator.java
tiles/sandbox/trunk/tiles-autotag/tiles-autotag-core/src/main/java/org/apache/tiles/autotag/generate/TemplateGenerator.java
tiles/sandbox/trunk/tiles-autotag/tiles-autotag-core/src/main/java/org/apache/tiles/autotag/generate/TemplateGeneratorBuilder.java
tiles/sandbox/trunk/tiles-autotag/tiles-autotag-core/src/main/java/org/apache/tiles/autotag/generate/TemplateGeneratorFactory.java
tiles/sandbox/trunk/tiles-autotag/tiles-autotag-core/src/main/java/org/apache/tiles/autotag/generate/TemplateSuiteGenerator.java
tiles/sandbox/trunk/tiles-autotag/tiles-autotag-core/src/main/java/org/apache/tiles/autotag/model/TemplateClass.java
tiles/sandbox/trunk/tiles-autotag/tiles-autotag-core/src/main/java/org/apache/tiles/autotag/model/TemplateMethod.java
tiles/sandbox/trunk/tiles-autotag/tiles-autotag-core/src/main/java/org/apache/tiles/autotag/model/TemplateParameter.java
tiles/sandbox/trunk/tiles-autotag/tiles-autotag-core/src/main/java/org/apache/tiles/autotag/model/TemplateSuite.java
tiles/sandbox/trunk/tiles-autotag/tiles-autotag-core/src/main/java/org/apache/tiles/autotag/model/TemplateSuiteFactory.java
tiles/sandbox/trunk/tiles-autotag/tiles-autotag-core/src/main/java/org/apache/tiles/autotag/tool/StringTool.java
Modified: tiles/sandbox/trunk/tiles-autotag/tiles-autotag-core/src/main/java/org/apache/tiles/autotag/core/AutotagRuntimeException.java
URL: http://svn.apache.org/viewvc/tiles/sandbox/trunk/tiles-autotag/tiles-autotag-core/src/main/java/org/apache/tiles/autotag/core/AutotagRuntimeException.java?rev=1044707&r1=1044706&r2=1044707&view=diff
==============================================================================
--- tiles/sandbox/trunk/tiles-autotag/tiles-autotag-core/src/main/java/org/apache/tiles/autotag/core/AutotagRuntimeException.java (original)
+++ tiles/sandbox/trunk/tiles-autotag/tiles-autotag-core/src/main/java/org/apache/tiles/autotag/core/AutotagRuntimeException.java Sat Dec 11 20:35:57 2010
@@ -1,18 +1,62 @@
+/*
+ * $Id$
+ *
+ * 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.
+ */
package org.apache.tiles.autotag.core;
+/**
+ * Generic exception for Autotag.
+ *
+ * @version $Rev$ $Date$
+ */
public class AutotagRuntimeException extends RuntimeException {
+ /**
+ * Constructor.
+ */
public AutotagRuntimeException() {
}
+ /**
+ * Constructor.
+ *
+ * @param message The message of the exception.
+ */
public AutotagRuntimeException(String message) {
super(message);
}
+ /**
+ * Constructor.
+ *
+ * @param cause The cause.
+ */
public AutotagRuntimeException(Throwable cause) {
super(cause);
}
+ /**
+ * Constructor.
+ *
+ * @param message The message of the exception.
+ * @param cause The cause.
+ */
public AutotagRuntimeException(String message, Throwable cause) {
super(message, cause);
}
Modified: tiles/sandbox/trunk/tiles-autotag/tiles-autotag-core/src/main/java/org/apache/tiles/autotag/core/ClassParseException.java
URL: http://svn.apache.org/viewvc/tiles/sandbox/trunk/tiles-autotag/tiles-autotag-core/src/main/java/org/apache/tiles/autotag/core/ClassParseException.java?rev=1044707&r1=1044706&r2=1044707&view=diff
==============================================================================
--- tiles/sandbox/trunk/tiles-autotag/tiles-autotag-core/src/main/java/org/apache/tiles/autotag/core/ClassParseException.java (original)
+++ tiles/sandbox/trunk/tiles-autotag/tiles-autotag-core/src/main/java/org/apache/tiles/autotag/core/ClassParseException.java Sat Dec 11 20:35:57 2010
@@ -1,18 +1,62 @@
+/*
+ * $Id$
+ *
+ * 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.
+ */
package org.apache.tiles.autotag.core;
+/**
+ * Thrown if there is a problem when parsing a class source.
+ *
+ * @version $Rev$ $Date$
+ */
public class ClassParseException extends AutotagRuntimeException {
+ /**
+ * Constructor.
+ */
public ClassParseException() {
}
+ /**
+ * Constructor.
+ *
+ * @param message The message of the exception.
+ */
public ClassParseException(String message) {
super(message);
}
+ /**
+ * Constructor.
+ *
+ * @param cause The cause.
+ */
public ClassParseException(Throwable cause) {
super(cause);
}
+ /**
+ * Constructor.
+ *
+ * @param message The message of the exception.
+ * @param cause The cause.
+ */
public ClassParseException(String message, Throwable cause) {
super(message, cause);
}
Modified: tiles/sandbox/trunk/tiles-autotag/tiles-autotag-core/src/main/java/org/apache/tiles/autotag/core/QDoxTemplateSuiteFactory.java
URL: http://svn.apache.org/viewvc/tiles/sandbox/trunk/tiles-autotag/tiles-autotag-core/src/main/java/org/apache/tiles/autotag/core/QDoxTemplateSuiteFactory.java?rev=1044707&r1=1044706&r2=1044707&view=diff
==============================================================================
--- tiles/sandbox/trunk/tiles-autotag/tiles-autotag-core/src/main/java/org/apache/tiles/autotag/core/QDoxTemplateSuiteFactory.java (original)
+++ tiles/sandbox/trunk/tiles-autotag/tiles-autotag-core/src/main/java/org/apache/tiles/autotag/core/QDoxTemplateSuiteFactory.java Sat Dec 11 20:35:57 2010
@@ -1,3 +1,23 @@
+/*
+ * $Id$
+ *
+ * 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.
+ */
package org.apache.tiles.autotag.core;
import java.io.File;
@@ -23,16 +43,38 @@ import com.thoughtworks.qdox.model.JavaM
import com.thoughtworks.qdox.model.JavaParameter;
import com.thoughtworks.qdox.model.Type;
+/**
+ * Creates a template suite using QDox.
+ *
+ * @version $Rev$ $Date$
+ */
public class QDoxTemplateSuiteFactory implements TemplateSuiteFactory {
+ /**
+ * The suffix of parsed classes.
+ */
private static final String TEMPLATE_SUFFIX = "Model";
+ /**
+ * The Javadoc builder.
+ */
private JavaDocBuilder builder;
+ /**
+ * The name of the suite.
+ */
private String suiteName;
+ /**
+ * The documentation of the suite.
+ */
private String suiteDocumentation;
+ /**
+ * Constructor.
+ *
+ * @param sourceFiles All the source files to parse.
+ */
public QDoxTemplateSuiteFactory(File... sourceFiles) {
builder = new JavaDocBuilder();
try {
@@ -45,6 +87,11 @@ public class QDoxTemplateSuiteFactory im
}
}
+ /**
+ * Constructor.
+ *
+ * @param urls All the URLs of source files to parse.
+ */
public QDoxTemplateSuiteFactory(URL... urls) {
builder = new JavaDocBuilder();
try {
@@ -57,10 +104,20 @@ public class QDoxTemplateSuiteFactory im
}
}
+ /**
+ * Sets the suite name to assign to the created suite.
+ *
+ * @param suiteName The suite name.
+ */
public void setSuiteName(String suiteName) {
this.suiteName = suiteName;
}
+ /**
+ * Sets the suite documentation to assign to the suite.
+ *
+ * @param suiteDocumentation The suite documentation.
+ */
public void setSuiteDocumentation(String suiteDocumentation) {
this.suiteDocumentation = suiteDocumentation;
}
@@ -91,6 +148,12 @@ public class QDoxTemplateSuiteFactory im
return new TemplateSuite(suiteName, suiteDocumentation, classes);
}
+ /**
+ * Computes the tag class prefix.
+ *
+ * @param clazz The parsed class.
+ * @return The tag class prefix.
+ */
private String getTagClassPrefix(JavaClass clazz) {
String tagName;
String simpleClassName = clazz.getName();
@@ -105,6 +168,12 @@ public class QDoxTemplateSuiteFactory im
return tagName;
}
+ /**
+ * Creates a template method descriptor from a parsed method.
+ *
+ * @param method The parsed method.
+ * @return The template method descriptor.
+ */
private TemplateMethod createMethod(JavaMethod method) {
List<TemplateParameter> params = new ArrayList<TemplateParameter>();
for (JavaParameter parameter : method.getParameters()) {
@@ -154,6 +223,12 @@ public class QDoxTemplateSuiteFactory im
return templateMethod;
}
+ /**
+ * Verifies if the method can be used as an "execute" method.
+ *
+ * @param method The parsed method.
+ * @return <code>true</code> if it is an execute method.
+ */
private boolean isFeasible(JavaMethod method) {
Type returns = method.getReturns();
if ("execute".equals(method.getName()) && returns != null
Added: tiles/sandbox/trunk/tiles-autotag/tiles-autotag-core/src/main/java/org/apache/tiles/autotag/core/package-info.java
URL: http://svn.apache.org/viewvc/tiles/sandbox/trunk/tiles-autotag/tiles-autotag-core/src/main/java/org/apache/tiles/autotag/core/package-info.java?rev=1044707&view=auto
==============================================================================
--- tiles/sandbox/trunk/tiles-autotag/tiles-autotag-core/src/main/java/org/apache/tiles/autotag/core/package-info.java (added)
+++ tiles/sandbox/trunk/tiles-autotag/tiles-autotag-core/src/main/java/org/apache/tiles/autotag/core/package-info.java Sat Dec 11 20:35:57 2010
@@ -0,0 +1,24 @@
+/*
+ * $Id$
+ *
+ * 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.
+ */
+/**
+ * The Autotag core parsing code.
+ */
+package org.apache.tiles.autotag.core;
Propchange: tiles/sandbox/trunk/tiles-autotag/tiles-autotag-core/src/main/java/org/apache/tiles/autotag/core/package-info.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: tiles/sandbox/trunk/tiles-autotag/tiles-autotag-core/src/main/java/org/apache/tiles/autotag/core/package-info.java
------------------------------------------------------------------------------
svn:keywords = Date Author Id Revision HeadURL
Modified: tiles/sandbox/trunk/tiles-autotag/tiles-autotag-core/src/main/java/org/apache/tiles/autotag/generate/AbstractTemplateClassGenerator.java
URL: http://svn.apache.org/viewvc/tiles/sandbox/trunk/tiles-autotag/tiles-autotag-core/src/main/java/org/apache/tiles/autotag/generate/AbstractTemplateClassGenerator.java?rev=1044707&r1=1044706&r2=1044707&view=diff
==============================================================================
--- tiles/sandbox/trunk/tiles-autotag/tiles-autotag-core/src/main/java/org/apache/tiles/autotag/generate/AbstractTemplateClassGenerator.java (original)
+++ tiles/sandbox/trunk/tiles-autotag/tiles-autotag-core/src/main/java/org/apache/tiles/autotag/generate/AbstractTemplateClassGenerator.java Sat Dec 11 20:35:57 2010
@@ -1,3 +1,23 @@
+/*
+ * $Id$
+ *
+ * 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.
+ */
package org.apache.tiles.autotag.generate;
import java.io.File;
@@ -16,11 +36,24 @@ import org.apache.velocity.app.VelocityE
import org.apache.velocity.exception.ParseErrorException;
import org.apache.velocity.exception.ResourceNotFoundException;
+/**
+ * A base template class generator.
+ *
+ * @version $Rev$ $Date$
+ */
public abstract class AbstractTemplateClassGenerator implements
TemplateClassGenerator {
+ /**
+ * The Velocity engine to use.
+ */
private VelocityEngine velocityEngine;
+ /**
+ * Constructor.
+ *
+ * @param velocityEngine The Velocity engine.
+ */
public AbstractTemplateClassGenerator(VelocityEngine velocityEngine) {
this.velocityEngine = velocityEngine;
}
@@ -66,12 +99,42 @@ public abstract class AbstractTemplateCl
}
}
+ /**
+ * Calculates and returns the template path.
+ *
+ * @param directory The directory where the file will be written.
+ * @param packageName The name of the package.
+ * @param suite The template suite.
+ * @param clazz The template class.
+ * @param parameters The map of parameters.
+ * @return The template path.
+ */
protected abstract String getTemplatePath(File directory,
String packageName, TemplateSuite suite, TemplateClass clazz, Map<String, String> parameters);
+ /**
+ * Calculates and returns the filename of the generated file.
+ *
+ * @param directory The directory where the file will be written.
+ * @param packageName The name of the package.
+ * @param suite The template suite.
+ * @param clazz The template class.
+ * @param parameters The map of parameters.
+ * @return The template path.
+ */
protected abstract String getFilename(File directory, String packageName,
TemplateSuite suite, TemplateClass clazz, Map<String, String> parameters);
+ /**
+ * Calculates and returns the directory where the file will be written..
+ *
+ * @param directory The directory where the file will be written.
+ * @param packageName The name of the package.
+ * @param suite The template suite.
+ * @param clazz The template class.
+ * @param parameters The map of parameters.
+ * @return The template path.
+ */
protected abstract String getDirectoryName(File directory,
String packageName, TemplateSuite suite, TemplateClass clazz, Map<String, String> parameters);
}
Modified: tiles/sandbox/trunk/tiles-autotag/tiles-autotag-core/src/main/java/org/apache/tiles/autotag/generate/AbstractTemplateSuiteGenerator.java
URL: http://svn.apache.org/viewvc/tiles/sandbox/trunk/tiles-autotag/tiles-autotag-core/src/main/java/org/apache/tiles/autotag/generate/AbstractTemplateSuiteGenerator.java?rev=1044707&r1=1044706&r2=1044707&view=diff
==============================================================================
--- tiles/sandbox/trunk/tiles-autotag/tiles-autotag-core/src/main/java/org/apache/tiles/autotag/generate/AbstractTemplateSuiteGenerator.java (original)
+++ tiles/sandbox/trunk/tiles-autotag/tiles-autotag-core/src/main/java/org/apache/tiles/autotag/generate/AbstractTemplateSuiteGenerator.java Sat Dec 11 20:35:57 2010
@@ -1,3 +1,23 @@
+/*
+ * $Id$
+ *
+ * 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.
+ */
package org.apache.tiles.autotag.generate;
import java.io.File;
@@ -15,10 +35,23 @@ import org.apache.velocity.app.VelocityE
import org.apache.velocity.exception.ParseErrorException;
import org.apache.velocity.exception.ResourceNotFoundException;
+/**
+ * A base template suite generator.
+ *
+ * @version $Rev$ $Date$
+ */
public abstract class AbstractTemplateSuiteGenerator implements TemplateSuiteGenerator {
+ /**
+ * The velocity engine.
+ */
private VelocityEngine velocityEngine;
+ /**
+ * Constructor.
+ *
+ * @param velocityEngine The Velocity engine.
+ */
public AbstractTemplateSuiteGenerator(VelocityEngine velocityEngine) {
this.velocityEngine = velocityEngine;
}
@@ -59,9 +92,41 @@ public abstract class AbstractTemplateSu
}
}
- protected abstract String getTemplatePath(File directory, String packageName, TemplateSuite suite, Map<String, String> parameters);
-
- protected abstract String getFilename(File directory, String packageName, TemplateSuite suite, Map<String, String> parameters);
-
- protected abstract String getDirectoryName(File directory, String packageName, TemplateSuite suite, Map<String, String> parameters);
+ /**
+ * Calculates and returns the template path.
+ *
+ * @param directory The directory where the file will be written.
+ * @param packageName The name of the package.
+ * @param suite The template suite.
+ * @param parameters The map of parameters.
+ * @return The template path.
+ */
+ protected abstract String getTemplatePath(File directory,
+ String packageName, TemplateSuite suite,
+ Map<String, String> parameters);
+
+ /**
+ * Calculates and returns the filename of the generated file.
+ *
+ * @param directory The directory where the file will be written.
+ * @param packageName The name of the package.
+ * @param suite The template suite.
+ * @param parameters The map of parameters.
+ * @return The template path.
+ */
+ protected abstract String getFilename(File directory, String packageName,
+ TemplateSuite suite, Map<String, String> parameters);
+
+ /**
+ * Calculates and returns the directory where the file will be written..
+ *
+ * @param directory The directory where the file will be written.
+ * @param packageName The name of the package.
+ * @param suite The template suite.
+ * @param parameters The map of parameters.
+ * @return The template path.
+ */
+ protected abstract String getDirectoryName(File directory,
+ String packageName, TemplateSuite suite,
+ Map<String, String> parameters);
}
Modified: tiles/sandbox/trunk/tiles-autotag/tiles-autotag-core/src/main/java/org/apache/tiles/autotag/generate/BasicTemplateGenerator.java
URL: http://svn.apache.org/viewvc/tiles/sandbox/trunk/tiles-autotag/tiles-autotag-core/src/main/java/org/apache/tiles/autotag/generate/BasicTemplateGenerator.java?rev=1044707&r1=1044706&r2=1044707&view=diff
==============================================================================
--- tiles/sandbox/trunk/tiles-autotag/tiles-autotag-core/src/main/java/org/apache/tiles/autotag/generate/BasicTemplateGenerator.java (original)
+++ tiles/sandbox/trunk/tiles-autotag/tiles-autotag-core/src/main/java/org/apache/tiles/autotag/generate/BasicTemplateGenerator.java Sat Dec 11 20:35:57 2010
@@ -1,3 +1,23 @@
+/*
+ * $Id$
+ *
+ * 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.
+ */
package org.apache.tiles.autotag.generate;
import java.io.File;
@@ -7,16 +27,42 @@ import java.util.Map;
import org.apache.tiles.autotag.model.TemplateClass;
import org.apache.tiles.autotag.model.TemplateSuite;
+/**
+ * The basic template generator. Use {@link TemplateGeneratorBuilder} to
+ * create instances of this class.
+ *
+ * @version $Rev$ $Date$
+ */
class BasicTemplateGenerator implements TemplateGenerator {
+ /**
+ * The template suite generators.
+ */
private List<TSGeneratorDirectoryPair> templateSuiteGenerators;
+ /**
+ * The template class generators.
+ */
private List<TCGeneratorDirectoryPair> templateClassGenerators;
+ /**
+ * Indicates that this generator generates resources.
+ */
private boolean generatingResources = false;
+ /**
+ * Indicates that this generator generates classes.
+ */
private boolean generatingClasses = false;
+ /**
+ * Constructor.
+ *
+ * @param templateSuiteGenerators The template suite generators.
+ * @param templateClassGenerators The template class generators.
+ * @param generatingClasses Indicates that this generator generates classes.
+ * @param generatingResources Indicates that this generator generates resources.
+ */
BasicTemplateGenerator(
List<TSGeneratorDirectoryPair> templateSuiteGenerators,
List<TCGeneratorDirectoryPair> templateClassGenerators,
@@ -31,52 +77,106 @@ class BasicTemplateGenerator implements
@Override
public void generate(String packageName, TemplateSuite suite, Map<String, String> parameters) {
- for (TSGeneratorDirectoryPair pair: templateSuiteGenerators) {
+ for (TSGeneratorDirectoryPair pair : templateSuiteGenerators) {
pair.getGenerator().generate(pair.getDirectory(), packageName, suite, parameters);
}
- for (TemplateClass templateClass: suite.getTemplateClasses()) {
- for (TCGeneratorDirectoryPair pair: templateClassGenerators) {
+ for (TemplateClass templateClass : suite.getTemplateClasses()) {
+ for (TCGeneratorDirectoryPair pair : templateClassGenerators) {
pair.getGenerator().generate(pair.getDirectory(), packageName,
suite, templateClass, parameters);
}
}
}
+ /**
+ * A pair of a template suite generator and a directory.
+ *
+ * @version $Rev$ $Date$
+ */
static class TSGeneratorDirectoryPair {
+ /**
+ * The directory where files are generated.
+ */
private File directory;
+ /**
+ * The generator.
+ */
private TemplateSuiteGenerator generator;
+ /**
+ * Constructor.
+ *
+ * @param directory The directory where files are generated.
+ * @param generator The generator.
+ */
public TSGeneratorDirectoryPair(File directory,
TemplateSuiteGenerator generator) {
this.directory = directory;
this.generator = generator;
}
+ /**
+ * Returns the directory where files are generated.
+ *
+ * @return The directory where files are generated.
+ */
public File getDirectory() {
return directory;
}
+ /**
+ * Returns the generator.
+ *
+ * @return The generator.
+ */
public TemplateSuiteGenerator getGenerator() {
return generator;
}
}
+ /**
+ * A pair of a template class generator and a directory.
+ *
+ * @version $Rev$ $Date$
+ */
static class TCGeneratorDirectoryPair {
+ /**
+ * The directory where files are generated.
+ */
private File directory;
+ /**
+ * The generator.
+ */
private TemplateClassGenerator generator;
+ /**
+ * Constructor.
+ *
+ * @param directory The directory where files are generated.
+ * @param generator The generator.
+ */
public TCGeneratorDirectoryPair(File directory,
TemplateClassGenerator generator) {
this.directory = directory;
this.generator = generator;
}
+ /**
+ * Returns the directory where files are generated.
+ *
+ * @return The directory where files are generated.
+ */
public File getDirectory() {
return directory;
}
+ /**
+ * Returns the generator.
+ *
+ * @return The generator.
+ */
public TemplateClassGenerator getGenerator() {
return generator;
}
Modified: 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=1044707&r1=1044706&r2=1044707&view=diff
==============================================================================
--- tiles/sandbox/trunk/tiles-autotag/tiles-autotag-core/src/main/java/org/apache/tiles/autotag/generate/TemplateClassGenerator.java (original)
+++ tiles/sandbox/trunk/tiles-autotag/tiles-autotag-core/src/main/java/org/apache/tiles/autotag/generate/TemplateClassGenerator.java Sat Dec 11 20:35:57 2010
@@ -1,3 +1,23 @@
+/*
+ * $Id$
+ *
+ * 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.
+ */
package org.apache.tiles.autotag.generate;
import java.io.File;
@@ -6,7 +26,22 @@ import java.util.Map;
import org.apache.tiles.autotag.model.TemplateClass;
import org.apache.tiles.autotag.model.TemplateSuite;
+/**
+ * Generates code from a parsed class.
+ *
+ * @version $Rev$ $Date$
+ */
public interface TemplateClassGenerator {
- void generate(File directory, String packageName, TemplateSuite suite, TemplateClass clazz, Map<String, String> parameters);
+ /**
+ * Generates the code.
+ *
+ * @param directory The base directory where the code will be put.
+ * @param packageName The package name.
+ * @param suite The template suite.
+ * @param clazz The template class.
+ * @param parameters Configuration parameters.
+ */
+ void generate(File directory, String packageName, TemplateSuite suite,
+ TemplateClass clazz, Map<String, String> parameters);
}
Modified: 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=1044707&r1=1044706&r2=1044707&view=diff
==============================================================================
--- tiles/sandbox/trunk/tiles-autotag/tiles-autotag-core/src/main/java/org/apache/tiles/autotag/generate/TemplateGenerator.java (original)
+++ tiles/sandbox/trunk/tiles-autotag/tiles-autotag-core/src/main/java/org/apache/tiles/autotag/generate/TemplateGenerator.java Sat Dec 11 20:35:57 2010
@@ -1,3 +1,23 @@
+/*
+ * $Id$
+ *
+ * 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.
+ */
package org.apache.tiles.autotag.generate;
@@ -5,11 +25,33 @@ import java.util.Map;
import org.apache.tiles.autotag.model.TemplateSuite;
+/**
+ * Generates all the code for a template suite.
+ *
+ * @version $Rev$ $Date$
+ */
public interface TemplateGenerator {
+ /**
+ * Generates the code.
+ *
+ * @param packageName The package name.
+ * @param suite The template suite.
+ * @param parameters Configuration parameters.
+ */
void generate(String packageName, TemplateSuite suite, Map<String, String> parameters);
+ /**
+ * Indicates that this generator generates resources.
+ *
+ * @return <code>true</code> if the generator generates resources.
+ */
boolean isGeneratingResources();
+ /**
+ * Indicates that this generator generates classes.
+ *
+ * @return <code>true</code> if the generator generates classes.
+ */
boolean isGeneratingClasses();
}
Modified: tiles/sandbox/trunk/tiles-autotag/tiles-autotag-core/src/main/java/org/apache/tiles/autotag/generate/TemplateGeneratorBuilder.java
URL: http://svn.apache.org/viewvc/tiles/sandbox/trunk/tiles-autotag/tiles-autotag-core/src/main/java/org/apache/tiles/autotag/generate/TemplateGeneratorBuilder.java?rev=1044707&r1=1044706&r2=1044707&view=diff
==============================================================================
--- tiles/sandbox/trunk/tiles-autotag/tiles-autotag-core/src/main/java/org/apache/tiles/autotag/generate/TemplateGeneratorBuilder.java (original)
+++ tiles/sandbox/trunk/tiles-autotag/tiles-autotag-core/src/main/java/org/apache/tiles/autotag/generate/TemplateGeneratorBuilder.java Sat Dec 11 20:35:57 2010
@@ -1,3 +1,23 @@
+/*
+ * $Id$
+ *
+ * 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.
+ */
package org.apache.tiles.autotag.generate;
import java.io.File;
@@ -7,14 +27,31 @@ import java.util.List;
import org.apache.tiles.autotag.generate.BasicTemplateGenerator.TCGeneratorDirectoryPair;
import org.apache.tiles.autotag.generate.BasicTemplateGenerator.TSGeneratorDirectoryPair;
-public class TemplateGeneratorBuilder {
+/**
+ * Builds a {@link TemplateGenerator}.
+ *
+ * @version $Rev$ $Date$
+ */
+public final class TemplateGeneratorBuilder {
+ /**
+ * The template suite generators.
+ */
private List<TSGeneratorDirectoryPair> templateSuiteGenerators;
+ /**
+ * The template class generators.
+ */
private List<TCGeneratorDirectoryPair> templateClassGenerators;
+ /**
+ * Indicates that this generator generates resources.
+ */
private boolean generatingResources = false;
+ /**
+ * Indicates that this generator generates classes.
+ */
private boolean generatingClasses = false;
/**
@@ -27,28 +64,55 @@ public class TemplateGeneratorBuilder {
*/
private File resourcesOutputDirectory;
+ /**
+ * Constructor.
+ */
private TemplateGeneratorBuilder() {
templateSuiteGenerators = new ArrayList<BasicTemplateGenerator.TSGeneratorDirectoryPair>();
templateClassGenerators = new ArrayList<BasicTemplateGenerator.TCGeneratorDirectoryPair>();
}
+ /**
+ * Creates a new instance of the builder.
+ *
+ * @return A new instance of the builder.
+ */
public static TemplateGeneratorBuilder createNewInstance() {
return new TemplateGeneratorBuilder();
}
+ /**
+ * Sets the classes output directory.
+ *
+ * @param classesOutputDirectory The classes output directory.
+ * @return This instance.
+ */
public TemplateGeneratorBuilder setClassesOutputDirectory(File classesOutputDirectory) {
this.classesOutputDirectory = classesOutputDirectory;
return this;
}
+ /**
+ * Sets the resources output directory.
+ *
+ * @param resourcesOutputDirectory The resources output directory.
+ * @return This instance.
+ */
public TemplateGeneratorBuilder setResourcesOutputDirectory(File resourcesOutputDirectory) {
this.resourcesOutputDirectory = resourcesOutputDirectory;
return this;
}
+ /**
+ * Adds a new template suite generator to generate classes.
+ *
+ * @param generator The generator to add.
+ * @return This instance.
+ */
public TemplateGeneratorBuilder addClassesTemplateSuiteGenerator(TemplateSuiteGenerator generator) {
if (classesOutputDirectory == null) {
- throw new NullPointerException("Classes output directory not specified, call 'setClassesOutputDirectory' first");
+ throw new NullPointerException(
+ "Classes output directory not specified, call 'setClassesOutputDirectory' first");
}
templateSuiteGenerators.add(new TSGeneratorDirectoryPair(
classesOutputDirectory, generator));
@@ -56,9 +120,16 @@ public class TemplateGeneratorBuilder {
return this;
}
+ /**
+ * Adds a new template class generator to generate classes.
+ *
+ * @param generator The generator to add.
+ * @return This instance.
+ */
public TemplateGeneratorBuilder addClassesTemplateClassGenerator(TemplateClassGenerator generator) {
if (classesOutputDirectory == null) {
- throw new NullPointerException("Classes output directory not specified, call 'setClassesOutputDirectory' first");
+ throw new NullPointerException(
+ "Classes output directory not specified, call 'setClassesOutputDirectory' first");
}
templateClassGenerators.add(new TCGeneratorDirectoryPair(
classesOutputDirectory, generator));
@@ -66,9 +137,16 @@ public class TemplateGeneratorBuilder {
return this;
}
+ /**
+ * Adds a new template suite generator to generate resources.
+ *
+ * @param generator The generator to add.
+ * @return This instance.
+ */
public TemplateGeneratorBuilder addResourcesTemplateSuiteGenerator(TemplateSuiteGenerator generator) {
if (resourcesOutputDirectory == null) {
- throw new NullPointerException("Resources output directory not specified, call 'setClassesOutputDirectory' first");
+ throw new NullPointerException(
+ "Resources output directory not specified, call 'setClassesOutputDirectory' first");
}
templateSuiteGenerators.add(new TSGeneratorDirectoryPair(
resourcesOutputDirectory, generator));
@@ -76,9 +154,16 @@ public class TemplateGeneratorBuilder {
return this;
}
+ /**
+ * Adds a new template class generator to generate resources.
+ *
+ * @param generator The generator to add.
+ * @return This instance.
+ */
public TemplateGeneratorBuilder addResourcesTemplateClassGenerator(TemplateClassGenerator generator) {
if (resourcesOutputDirectory == null) {
- throw new NullPointerException("Resources output directory not specified, call 'setClassesOutputDirectory' first");
+ throw new NullPointerException(
+ "Resources output directory not specified, call 'setClassesOutputDirectory' first");
}
templateClassGenerators.add(new TCGeneratorDirectoryPair(
resourcesOutputDirectory, generator));
@@ -86,6 +171,11 @@ public class TemplateGeneratorBuilder {
return this;
}
+ /**
+ * Builds and returns a new template generator.
+ *
+ * @return The new template generator.
+ */
public TemplateGenerator build() {
return new BasicTemplateGenerator(templateSuiteGenerators,
templateClassGenerators, generatingClasses, generatingResources);
Modified: tiles/sandbox/trunk/tiles-autotag/tiles-autotag-core/src/main/java/org/apache/tiles/autotag/generate/TemplateGeneratorFactory.java
URL: http://svn.apache.org/viewvc/tiles/sandbox/trunk/tiles-autotag/tiles-autotag-core/src/main/java/org/apache/tiles/autotag/generate/TemplateGeneratorFactory.java?rev=1044707&r1=1044706&r2=1044707&view=diff
==============================================================================
--- tiles/sandbox/trunk/tiles-autotag/tiles-autotag-core/src/main/java/org/apache/tiles/autotag/generate/TemplateGeneratorFactory.java (original)
+++ tiles/sandbox/trunk/tiles-autotag/tiles-autotag-core/src/main/java/org/apache/tiles/autotag/generate/TemplateGeneratorFactory.java Sat Dec 11 20:35:57 2010
@@ -1,6 +1,36 @@
+/*
+ * $Id$
+ *
+ * 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.
+ */
package org.apache.tiles.autotag.generate;
+/**
+ * Creates a new template generator.
+ *
+ * @version $Rev$ $Date$
+ */
public interface TemplateGeneratorFactory {
+ /**
+ * Creates a template generator.
+ *
+ * @return The newly created template generator.
+ */
TemplateGenerator createTemplateGenerator();
}
Modified: 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=1044707&r1=1044706&r2=1044707&view=diff
==============================================================================
--- tiles/sandbox/trunk/tiles-autotag/tiles-autotag-core/src/main/java/org/apache/tiles/autotag/generate/TemplateSuiteGenerator.java (original)
+++ tiles/sandbox/trunk/tiles-autotag/tiles-autotag-core/src/main/java/org/apache/tiles/autotag/generate/TemplateSuiteGenerator.java Sat Dec 11 20:35:57 2010
@@ -1,3 +1,23 @@
+/*
+ * $Id$
+ *
+ * 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.
+ */
package org.apache.tiles.autotag.generate;
import java.io.File;
@@ -5,7 +25,20 @@ import java.util.Map;
import org.apache.tiles.autotag.model.TemplateSuite;
+/**
+ * Generates code from a template suite.
+ *
+ * @version $Rev$ $Date$
+ */
public interface TemplateSuiteGenerator {
+ /**
+ * Generates the code.
+ *
+ * @param directory The base directory where the code will be put.
+ * @param packageName The package name.
+ * @param suite The template suite.
+ * @param parameters Configuration parameters.
+ */
void generate(File directory, String packageName, TemplateSuite suite, Map<String, String> parameters);
}
Added: tiles/sandbox/trunk/tiles-autotag/tiles-autotag-core/src/main/java/org/apache/tiles/autotag/generate/package-info.java
URL: http://svn.apache.org/viewvc/tiles/sandbox/trunk/tiles-autotag/tiles-autotag-core/src/main/java/org/apache/tiles/autotag/generate/package-info.java?rev=1044707&view=auto
==============================================================================
--- tiles/sandbox/trunk/tiles-autotag/tiles-autotag-core/src/main/java/org/apache/tiles/autotag/generate/package-info.java (added)
+++ tiles/sandbox/trunk/tiles-autotag/tiles-autotag-core/src/main/java/org/apache/tiles/autotag/generate/package-info.java Sat Dec 11 20:35:57 2010
@@ -0,0 +1,24 @@
+/*
+ * $Id$
+ *
+ * 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.
+ */
+/**
+ * The Autotag generation classes.
+ */
+package org.apache.tiles.autotag.generate;
Propchange: tiles/sandbox/trunk/tiles-autotag/tiles-autotag-core/src/main/java/org/apache/tiles/autotag/generate/package-info.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: tiles/sandbox/trunk/tiles-autotag/tiles-autotag-core/src/main/java/org/apache/tiles/autotag/generate/package-info.java
------------------------------------------------------------------------------
svn:keywords = Date Author Id Revision HeadURL
Modified: tiles/sandbox/trunk/tiles-autotag/tiles-autotag-core/src/main/java/org/apache/tiles/autotag/model/TemplateClass.java
URL: http://svn.apache.org/viewvc/tiles/sandbox/trunk/tiles-autotag/tiles-autotag-core/src/main/java/org/apache/tiles/autotag/model/TemplateClass.java?rev=1044707&r1=1044706&r2=1044707&view=diff
==============================================================================
--- tiles/sandbox/trunk/tiles-autotag/tiles-autotag-core/src/main/java/org/apache/tiles/autotag/model/TemplateClass.java (original)
+++ tiles/sandbox/trunk/tiles-autotag/tiles-autotag-core/src/main/java/org/apache/tiles/autotag/model/TemplateClass.java Sat Dec 11 20:35:57 2010
@@ -1,25 +1,78 @@
+/*
+ * $Id$
+ *
+ * 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.
+ */
package org.apache.tiles.autotag.model;
import java.util.Collection;
import java.util.LinkedHashMap;
import java.util.Map;
+/**
+ * It represents a parsed template class.
+ *
+ * @version $Rev$ $Date$
+ */
public class TemplateClass {
+ /**
+ * The class name.
+ */
private String name;
+ /**
+ * The name of the tag.
+ */
private String tagName;
+ /**
+ * The prefix of the tag class.
+ */
private String tagClassPrefix;
+ /**
+ * Documentation about this tag.
+ */
private String documentation;
+ /**
+ * The method that executes the template class.
+ */
private TemplateMethod executeMethod;
+ /**
+ * Constructor.
+ *
+ * @param name The name of the template class.
+ */
public TemplateClass(String name) {
this(name, null, null, null);
}
+ /**
+ * Constructor.
+ *
+ * @param name The name of the template class.
+ * @param tagName The name of the tag.
+ * @param tagClassPrefix The tag class prefix.
+ * @param executeMethod The method that executes the template class.
+ */
public TemplateClass(String name, String tagName, String tagClassPrefix,
TemplateMethod executeMethod) {
this.name = name;
@@ -28,10 +81,20 @@ public class TemplateClass {
this.executeMethod = executeMethod;
}
+ /**
+ * The name of the parsed class.
+ *
+ * @return The name of the class.
+ */
public String getName() {
return name;
}
+ /**
+ * Returns the name of the class, without the package part.
+ *
+ * @return The simple class name.
+ */
public String getSimpleName() {
int pos = name.lastIndexOf('.');
if (pos >= 0) {
@@ -40,32 +103,68 @@ public class TemplateClass {
return name;
}
+ /**
+ * Returns the tag name.
+ *
+ * @return The tag name.
+ */
public String getTagName() {
return tagName;
}
+ /**
+ * Returns the tag class prefix.
+ *
+ * @return The tag class prefix.
+ */
public String getTagClassPrefix() {
return tagClassPrefix;
}
+ /**
+ * Returns the documentation for this class.
+ *
+ * @return The documentation.
+ */
public String getDocumentation() {
return documentation;
}
+ /**
+ * Sets the documentation for this class.
+ *
+ * @param documentation The documentation.
+ */
public void setDocumentation(String documentation) {
this.documentation = documentation;
}
+ /**
+ * Returns the method that execute this class.
+ *
+ * @return The execute method.
+ */
public TemplateMethod getExecuteMethod() {
return executeMethod;
}
+ /**
+ * Returns the collection of regular parameters (no request, no body)
+ * of the execute method.
+ *
+ * @return The regular parameters.
+ */
public Collection<TemplateParameter> getParameters() {
Map<String, TemplateParameter> params = new LinkedHashMap<String, TemplateParameter>();
fillRegularParameters(params, executeMethod);
return params.values();
}
+ /**
+ * Indicates that this class needs a tag body.
+ *
+ * @return <code>true</code> if tag body is needed.
+ */
public boolean hasBody() {
return executeMethod.hasBody();
}
@@ -77,10 +176,16 @@ public class TemplateClass {
+ documentation + ", executeMethod=" + executeMethod + "]";
}
+ /**
+ * Creates regular parameters map.
+ *
+ * @param params The map to fill.
+ * @param method The method to analyze.
+ */
private void fillRegularParameters(Map<String, TemplateParameter> params,
TemplateMethod method) {
if (method != null) {
- for (TemplateParameter param: method.getParameters()) {
+ for (TemplateParameter param : method.getParameters()) {
if (!param.isRequest() && !param.isBody()) {
params.put(param.getName(), param);
}
Modified: tiles/sandbox/trunk/tiles-autotag/tiles-autotag-core/src/main/java/org/apache/tiles/autotag/model/TemplateMethod.java
URL: http://svn.apache.org/viewvc/tiles/sandbox/trunk/tiles-autotag/tiles-autotag-core/src/main/java/org/apache/tiles/autotag/model/TemplateMethod.java?rev=1044707&r1=1044706&r2=1044707&view=diff
==============================================================================
--- tiles/sandbox/trunk/tiles-autotag/tiles-autotag-core/src/main/java/org/apache/tiles/autotag/model/TemplateMethod.java (original)
+++ tiles/sandbox/trunk/tiles-autotag/tiles-autotag-core/src/main/java/org/apache/tiles/autotag/model/TemplateMethod.java Sat Dec 11 20:35:57 2010
@@ -1,17 +1,57 @@
+/*
+ * $Id$
+ *
+ * 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.
+ */
package org.apache.tiles.autotag.model;
import java.util.Collection;
import java.util.LinkedHashMap;
import java.util.Map;
+/**
+ * It represents a parsed method in a parsed template class.
+ *
+ * @version $Rev$ $Date$
+ */
public class TemplateMethod {
+ /**
+ * The name of the method.
+ */
private String name;
+ /**
+ * Documentation about the method.
+ */
private String documentation;
+ /**
+ * The map of parameters.
+ */
private Map<String, TemplateParameter> parameters;
+ /**
+ * Constructor.
+ *
+ * @param name The name of the method.
+ * @param parameters The map of parameters.
+ */
public TemplateMethod(String name,
Iterable<? extends TemplateParameter> parameters) {
this.name = name;
@@ -21,26 +61,57 @@ public class TemplateMethod {
}
}
+ /**
+ * Returns the name of the method.
+ *
+ * @return The name of the method.
+ */
public String getName() {
return name;
}
+ /**
+ * Returns the documentation for this method.
+ *
+ * @return The documentation.
+ */
public String getDocumentation() {
return documentation;
}
+ /**
+ * Sets the documentation for this method.
+ *
+ * @param documentation The documentation.
+ */
public void setDocumentation(String documentation) {
this.documentation = documentation;
}
+ /**
+ * Returns the parameters of this method.
+ *
+ * @return The parameters.
+ */
public Collection<TemplateParameter> getParameters() {
return parameters.values();
}
+ /**
+ * Returns a parameter given its name.
+ *
+ * @param name The name of the parameter.
+ * @return The parameter.
+ */
public TemplateParameter getParameterByName(String name) {
return parameters.get(name);
}
+ /**
+ * Indicates that this method needs a tag body.
+ *
+ * @return <code>true</code> if tag body is needed.
+ */
public boolean hasBody() {
if (parameters.size() >= 2) {
for (TemplateParameter param : parameters.values()) {
Modified: tiles/sandbox/trunk/tiles-autotag/tiles-autotag-core/src/main/java/org/apache/tiles/autotag/model/TemplateParameter.java
URL: http://svn.apache.org/viewvc/tiles/sandbox/trunk/tiles-autotag/tiles-autotag-core/src/main/java/org/apache/tiles/autotag/model/TemplateParameter.java?rev=1044707&r1=1044706&r2=1044707&view=diff
==============================================================================
--- tiles/sandbox/trunk/tiles-autotag/tiles-autotag-core/src/main/java/org/apache/tiles/autotag/model/TemplateParameter.java (original)
+++ tiles/sandbox/trunk/tiles-autotag/tiles-autotag-core/src/main/java/org/apache/tiles/autotag/model/TemplateParameter.java Sat Dec 11 20:35:57 2010
@@ -1,22 +1,76 @@
+/*
+ * $Id$
+ *
+ * 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.
+ */
package org.apache.tiles.autotag.model;
import org.apache.tiles.autotag.core.runtime.ModelBody;
import org.apache.tiles.request.Request;
+/**
+ * It represents a parameter in a method in a parsed template class.
+ *
+ * @version $Rev$ $Date$
+ */
public class TemplateParameter {
+ /**
+ * The name of the parameter.
+ */
private String name;
+ /**
+ * The exported name, i.e. the name of the parameter in created code. Usually
+ * helpful if this exported name is a reserved word.
+ */
private String exportedName;
+ /**
+ * The parameter documentation.
+ */
private String documentation;
+ /**
+ * The type of the prameter.
+ */
private String type;
+ /**
+ * The default value, as it will be written in Java code.
+ */
private String defaultValue;
+ /**
+ * Indicates that this parameter is required.
+ */
private boolean required;
+ /**
+ * Constructor.
+ *
+ * @param name The name of the parameter.
+ * @param exportedName The exported name, i.e. the name of the parameter in created code. Usually
+ * helpful if this exported name is a reserved word.
+ * @param type The type of the parameter.
+ * @param defaultValue The default value, as it will be written in Java code.
+ * @param required Indicates that this parameter is required.
+ */
public TemplateParameter(String name, String exportedName, String type, String defaultValue, boolean required) {
this.name = name;
this.exportedName = exportedName;
@@ -25,42 +79,94 @@ public class TemplateParameter {
this.required = required;
}
+ /**
+ * Returns the documentation for this parameter.
+ *
+ * @return The documentation.
+ */
public String getDocumentation() {
return documentation;
}
+ /**
+ * Sets the documentation for this parameter.
+ *
+ * @param documentation The documentation.
+ */
public void setDocumentation(String documentation) {
this.documentation = documentation;
}
+ /**
+ * Returns the name of the parameter.
+ *
+ * @return The name of the parameter.
+ */
public String getName() {
return name;
}
+ /**
+ * Returns the exported name, i.e. the name of the parameter in created code. Usually
+ * helpful if this exported name is a reserved word.
+ *
+ * @return The exported name.
+ */
public String getExportedName() {
return exportedName;
}
+ /**
+ * Returns the type of the parameter.
+ *
+ * @return The type.
+ */
public String getType() {
return type;
}
+ /**
+ * Returns the default value, as it will be written in Java code.
+ *
+ * @return The default value.
+ */
public String getDefaultValue() {
return defaultValue;
}
+ /**
+ * Indicates that this parameter is required.
+ *
+ * @return <code>true</code> if the parameter is required.
+ */
public boolean isRequired() {
return required;
}
+ /**
+ * Indicates that this parameter implements {@link ModelBody}.
+ *
+ * @return <code>true</code> if the parameter is a body.
+ */
public boolean isBody() {
return ModelBody.class.getName().equals(type);
}
+ /**
+ * Indicates that this parameter implements {@link Request}.
+ *
+ * @return <code>true</code> if the parameter is a request.
+ */
public boolean isRequest() {
return Request.class.getName().equals(type);
}
+ /**
+ * Returns the suffix for getter and setter of the property generated by
+ * this parameter.
+ *
+ * @return The getter and setter suffix.
+ */
public String getGetterSetterSuffix() {
return exportedName.substring(0, 1).toUpperCase() + exportedName.substring(1);
}
Modified: tiles/sandbox/trunk/tiles-autotag/tiles-autotag-core/src/main/java/org/apache/tiles/autotag/model/TemplateSuite.java
URL: http://svn.apache.org/viewvc/tiles/sandbox/trunk/tiles-autotag/tiles-autotag-core/src/main/java/org/apache/tiles/autotag/model/TemplateSuite.java?rev=1044707&r1=1044706&r2=1044707&view=diff
==============================================================================
--- tiles/sandbox/trunk/tiles-autotag/tiles-autotag-core/src/main/java/org/apache/tiles/autotag/model/TemplateSuite.java (original)
+++ tiles/sandbox/trunk/tiles-autotag/tiles-autotag-core/src/main/java/org/apache/tiles/autotag/model/TemplateSuite.java Sat Dec 11 20:35:57 2010
@@ -1,21 +1,68 @@
+/*
+ * $Id$
+ *
+ * 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.
+ */
package org.apache.tiles.autotag.model;
import java.util.Collection;
import java.util.LinkedHashMap;
import java.util.Map;
+/**
+ * It represents a suite of template classes.
+ *
+ * @version $Rev$ $Date$
+ */
public class TemplateSuite {
+ /**
+ * The name of the suite.
+ */
private String name;
+ /**
+ * The documentation of this suite.
+ */
private String documentation;
- Map<String, TemplateClass> templateClasses;
-
+ /**
+ * The map of template classes.
+ */
+ private Map<String, TemplateClass> templateClasses;
+
+ /**
+ * Constructor.
+ *
+ * @param name The name of the suite.
+ * @param documentation The documentation.
+ */
public TemplateSuite(String name, String documentation) {
this(name, documentation, null);
}
+ /**
+ * Constructor.
+ *
+ * @param name The name of the suite.
+ * @param documentation The documentation.
+ * @param classes The template classes.
+ */
public TemplateSuite(String name, String documentation,
Iterable<? extends TemplateClass> classes) {
this.name = name;
@@ -28,22 +75,48 @@ public class TemplateSuite {
}
}
+ /**
+ * Returns the template suite name.
+ *
+ * @return The name.
+ */
public String getName() {
return name;
}
+ /**
+ * Returns the documentation.
+ *
+ * @return The documentation.
+ */
public String getDocumentation() {
return documentation;
}
+ /**
+ * Adds a new template class.
+ *
+ * @param clazz The template class.
+ */
public void addTemplateClass(TemplateClass clazz) {
templateClasses.put(clazz.getName(), clazz);
}
+ /**
+ * Returns the template classes.
+ *
+ * @return The template classes.
+ */
public Collection<TemplateClass> getTemplateClasses() {
return templateClasses.values();
}
+ /**
+ * Returns a template class given its name.
+ *
+ * @param name The name of the class.
+ * @return The template class instance.
+ */
public TemplateClass getTemplateClassByName(String name) {
return templateClasses.get(name);
}
Modified: tiles/sandbox/trunk/tiles-autotag/tiles-autotag-core/src/main/java/org/apache/tiles/autotag/model/TemplateSuiteFactory.java
URL: http://svn.apache.org/viewvc/tiles/sandbox/trunk/tiles-autotag/tiles-autotag-core/src/main/java/org/apache/tiles/autotag/model/TemplateSuiteFactory.java?rev=1044707&r1=1044706&r2=1044707&view=diff
==============================================================================
--- tiles/sandbox/trunk/tiles-autotag/tiles-autotag-core/src/main/java/org/apache/tiles/autotag/model/TemplateSuiteFactory.java (original)
+++ tiles/sandbox/trunk/tiles-autotag/tiles-autotag-core/src/main/java/org/apache/tiles/autotag/model/TemplateSuiteFactory.java Sat Dec 11 20:35:57 2010
@@ -1,7 +1,37 @@
+/*
+ * $Id$
+ *
+ * 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.
+ */
package org.apache.tiles.autotag.model;
+/**
+ * Creates a new template suite.
+ *
+ * @version $Rev$ $Date$
+ */
public interface TemplateSuiteFactory {
+ /**
+ * Creates a template suite.
+ *
+ * @return The created template suite.
+ */
TemplateSuite createTemplateSuite();
}
Added: tiles/sandbox/trunk/tiles-autotag/tiles-autotag-core/src/main/java/org/apache/tiles/autotag/model/package-info.java
URL: http://svn.apache.org/viewvc/tiles/sandbox/trunk/tiles-autotag/tiles-autotag-core/src/main/java/org/apache/tiles/autotag/model/package-info.java?rev=1044707&view=auto
==============================================================================
--- tiles/sandbox/trunk/tiles-autotag/tiles-autotag-core/src/main/java/org/apache/tiles/autotag/model/package-info.java (added)
+++ tiles/sandbox/trunk/tiles-autotag/tiles-autotag-core/src/main/java/org/apache/tiles/autotag/model/package-info.java Sat Dec 11 20:35:57 2010
@@ -0,0 +1,24 @@
+/*
+ * $Id$
+ *
+ * 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.
+ */
+/**
+ * Domain model classes representing a parsed template suite.
+ */
+package org.apache.tiles.autotag.model;
Propchange: tiles/sandbox/trunk/tiles-autotag/tiles-autotag-core/src/main/java/org/apache/tiles/autotag/model/package-info.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: tiles/sandbox/trunk/tiles-autotag/tiles-autotag-core/src/main/java/org/apache/tiles/autotag/model/package-info.java
------------------------------------------------------------------------------
svn:keywords = Date Author Id Revision HeadURL
Modified: tiles/sandbox/trunk/tiles-autotag/tiles-autotag-core/src/main/java/org/apache/tiles/autotag/tool/StringTool.java
URL: http://svn.apache.org/viewvc/tiles/sandbox/trunk/tiles-autotag/tiles-autotag-core/src/main/java/org/apache/tiles/autotag/tool/StringTool.java?rev=1044707&r1=1044706&r2=1044707&view=diff
==============================================================================
--- tiles/sandbox/trunk/tiles-autotag/tiles-autotag-core/src/main/java/org/apache/tiles/autotag/tool/StringTool.java (original)
+++ tiles/sandbox/trunk/tiles-autotag/tiles-autotag-core/src/main/java/org/apache/tiles/autotag/tool/StringTool.java Sat Dec 11 20:35:57 2010
@@ -1,3 +1,23 @@
+/*
+ * $Id$
+ *
+ * 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.
+ */
package org.apache.tiles.autotag.tool;
import java.io.BufferedReader;
@@ -11,12 +31,26 @@ import java.util.Map;
import org.apache.tiles.autotag.core.AutotagRuntimeException;
+/**
+ * A Velocity tools to manipulate strings.
+ *
+ * @version $Rev$ $Date$
+ */
public class StringTool {
+ /**
+ * Maps a primitive type to its default value as a string.
+ */
private Map<String, String> type2default;
+ /**
+ * Maps a primitive type to its boxed version.
+ */
private Map<String, String> primitive2wrapped;
+ /**
+ * Constructor.
+ */
public StringTool() {
type2default = new HashMap<String, String>();
type2default.put("byte", "0");
@@ -39,6 +73,12 @@ public class StringTool {
primitive2wrapped.put("boolean", Boolean.class.getName());
}
+ /**
+ * Creates a list of strings, separating a string when a newline is encountered.
+ *
+ * @param toSplit The string to split.
+ * @return The list of splitted strings.
+ */
public List<String> splitOnNewlines(String toSplit) {
List<String> retValue = new ArrayList<String>();
if (toSplit == null) {
@@ -48,7 +88,7 @@ public class StringTool {
BufferedReader bufReader = new BufferedReader(reader);
try {
String line;
- while((line = bufReader.readLine()) != null) {
+ while ((line = bufReader.readLine()) != null) {
retValue.add(line);
}
} catch (IOException e) {
@@ -58,10 +98,23 @@ public class StringTool {
return retValue;
}
+ /**
+ * Creates a string in which the first character is capitalized.
+ *
+ * @param string The string to use.
+ * @return The same string with the first character capitalized.
+ */
public String capitalizeFirstLetter(String string) {
return string.substring(0, 1).toUpperCase() + string.substring(1);
}
+ /**
+ * Returns the default value for a type.
+ *
+ * @param type The type.
+ * @param overriddenDefaultValue The default value, as specified by developers.
+ * @return The default value to use.
+ */
public String getDefaultValue(String type, String overriddenDefaultValue) {
if (overriddenDefaultValue != null) {
return overriddenDefaultValue;
@@ -74,6 +127,12 @@ public class StringTool {
return retValue;
}
+ /**
+ * Returns the class to be used to cast an Object.
+ *
+ * @param type The type to use, even a primitive type.
+ * @return The class to be used in casts.
+ */
public String getClassToCast(String type) {
String retValue = primitive2wrapped.get(type);
if (retValue == null) {
Added: tiles/sandbox/trunk/tiles-autotag/tiles-autotag-core/src/main/java/org/apache/tiles/autotag/tool/package-info.java
URL: http://svn.apache.org/viewvc/tiles/sandbox/trunk/tiles-autotag/tiles-autotag-core/src/main/java/org/apache/tiles/autotag/tool/package-info.java?rev=1044707&view=auto
==============================================================================
--- tiles/sandbox/trunk/tiles-autotag/tiles-autotag-core/src/main/java/org/apache/tiles/autotag/tool/package-info.java (added)
+++ tiles/sandbox/trunk/tiles-autotag/tiles-autotag-core/src/main/java/org/apache/tiles/autotag/tool/package-info.java Sat Dec 11 20:35:57 2010
@@ -0,0 +1,24 @@
+/*
+ * $Id$
+ *
+ * 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.
+ */
+/**
+ * Velocity tools to be used in Velocity templates.
+ */
+package org.apache.tiles.autotag.tool;
Propchange: tiles/sandbox/trunk/tiles-autotag/tiles-autotag-core/src/main/java/org/apache/tiles/autotag/tool/package-info.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: tiles/sandbox/trunk/tiles-autotag/tiles-autotag-core/src/main/java/org/apache/tiles/autotag/tool/package-info.java
------------------------------------------------------------------------------
svn:keywords = Date Author Id Revision HeadURL