|
Groovy example source code file (GroovyDocTemplateEngine.java)
The Groovy GroovyDocTemplateEngine.java source code
/*
* Copyright 2003-2009 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.codehaus.groovy.tools.groovydoc;
import groovy.text.GStringTemplateEngine;
import groovy.text.Template;
import groovy.text.TemplateEngine;
import org.codehaus.groovy.groovydoc.GroovyClassDoc;
import org.codehaus.groovy.groovydoc.GroovyPackageDoc;
import org.codehaus.groovy.groovydoc.GroovyRootDoc;
import org.codehaus.groovy.runtime.DefaultGroovyMethods;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.util.Arrays;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Properties;
/**
* Process Groovydoc templates.
*/
public class GroovyDocTemplateEngine {
private TemplateEngine engine;
private GroovyDocTool tool; // TODO use it or lose it
private ResourceManager resourceManager;
private Properties properties;
private Map<String, Template> docTemplates; // cache
private List<String> docTemplatePaths; // once per documentation set
private Map<String, Template> packageTemplates; // cache
private List<String> packageTemplatePaths; // once per package
private Map<String, Template> classTemplates; // cache
private List<String> classTemplatePaths; // once per class
public GroovyDocTemplateEngine(GroovyDocTool tool, ResourceManager resourceManager, String classTemplate) {
this(tool, resourceManager, new String[]{}, new String[]{}, new String[]{classTemplate}, new Properties());
}
public GroovyDocTemplateEngine(GroovyDocTool tool, ResourceManager resourceManager,
String[] docTemplates,
String[] packageTemplates,
String[] classTemplates,
Properties properties) {
this.tool = tool;
this.resourceManager = resourceManager;
this.properties = properties;
this.docTemplatePaths = Arrays.asList(docTemplates);
this.packageTemplatePaths = Arrays.asList(packageTemplates);
this.classTemplatePaths = Arrays.asList(classTemplates);
this.docTemplates = new HashMap<String, Template>();
this.packageTemplates = new HashMap<String, Template>();
this.classTemplates = new HashMap<String, Template>();
engine = new GStringTemplateEngine();
}
String applyClassTemplates(GroovyClassDoc classDoc) {
String templatePath = classTemplatePaths.get(0); // todo (iterate)
String templateWithBindingApplied = "";
try {
Template t = classTemplates.get(templatePath);
if (t == null) {
t = engine.createTemplate(resourceManager.getReader(templatePath));
classTemplates.put(templatePath, t);
}
Map<String, Object> binding = new HashMap
Other Groovy examples (source code examples)Here is a short list of links related to this Groovy GroovyDocTemplateEngine.java source code file: |
Other websites by Alvin Alexander:
Life/living in Alaska (OneMansAlaska.com)
How I Sold My Business (HowISoldMyBusiness.com)
Copyright 1998-2011 Alvin Alexander, devdaily.com
All Rights Reserved.