Update of
/cvsroot/xdoclet-plugins/xdoclet-plugins/plugin-tapestry/src/main/java/org/xdoclet/plugin/tapestry
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv1944
Added Files:
ComponentSpecificationPlugin.jelly
PageSpecificationPlugin.jelly
ComponentSpecificationPlugin.java GenericTapestryPlugin.java
PageSpecificationPlugin.java
Log Message:
Initial commit of Tapestry plugin for xdoclet2
--- NEW FILE: ComponentSpecificationPlugin.java ---
/*
* Copyright (c) 2003-2005
* XDoclet Team
* All rights reserved.
*/
package org.xdoclet.plugin.tapestry;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
import java.util.HashMap;
import java.util.Map;
import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.collections.Predicate;
import org.generama.JellyTemplateEngine;
import org.generama.QDoxCapableMetadataProvider;
import org.generama.WriterMapper;
import org.generama.defaults.QDoxPlugin;
import org.generama.defaults.XMLOutputValidator;
import org.xdoclet.plugin.tapestry.qtags.TagLibrary;
import com.thoughtworks.qdox.model.BeanProperty;
import com.thoughtworks.qdox.model.DocletTag;
import com.thoughtworks.qdox.model.JavaClass;
import com.thoughtworks.qdox.model.JavaField;
/**
* Creates component-specification (.jwc) files
* @author Paolo Donà
*/
public class ComponentSpecificationPlugin extends GenericTapestryPlugin {
public ComponentSpecificationPlugin(JellyTemplateEngine jellyTemplateEngine,
QDoxCapableMetadataProvider metadataProvider, WriterMapper
writerMapper) {
super(jellyTemplateEngine, metadataProvider, writerMapper);
setFileregex("\\.java");
setFilereplace("\\.jwc");
setPackageregex(".*");
setPackagereplace("");
setMultioutput(true);
new TagLibrary(metadataProvider);
}
public boolean shouldGenerate(Object metadata) {
JavaClass clazz = (JavaClass) metadata;
return clazz.getTagByName("tapestry.component-specification") != null;
}
}
--- NEW FILE: GenericTapestryPlugin.java ---
/*
* Copyright (c) 2003-2005
* XDoclet Team
* All rights reserved.
*/
package org.xdoclet.plugin.tapestry;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
import java.util.HashMap;
import java.util.Map;
import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.collections.Predicate;
import org.generama.JellyTemplateEngine;
import org.generama.QDoxCapableMetadataProvider;
import org.generama.WriterMapper;
import org.generama.defaults.QDoxPlugin;
import org.generama.defaults.XMLOutputValidator;
import org.xdoclet.plugin.tapestry.qtags.*;
import org.xdoclet.plugin.tapestry.qtags.TagLibrary;
import com.thoughtworks.qdox.model.BeanProperty;
import com.thoughtworks.qdox.model.DocletTag;
import com.thoughtworks.qdox.model.JavaClass;
import com.thoughtworks.qdox.model.JavaField;
/**
* A base class for Tapestry4 related plugins.
* @author Paolo Donà
*/
public class GenericTapestryPlugin extends QDoxPlugin {
public static final String PUBLIC_ID_4_0 = "-//Apache Software
Foundation//Tapestry Specification 4.0//EN";
public static final String SYSTEM_ID_4_0 =
"http://jakarta.apache.org/tapestry/dtd/Tapestry_4_0.dtd";
private String publicId = PUBLIC_ID_4_0;
private String systemId = SYSTEM_ID_4_0;
public GenericTapestryPlugin(JellyTemplateEngine jellyTemplateEngine,
QDoxCapableMetadataProvider metadataProvider,
WriterMapper writerMapper) {
super(jellyTemplateEngine, metadataProvider, writerMapper);
Map dtds = new HashMap();
dtds.put(SYSTEM_ID_4_0, getClass().getResource("dtd/Tapestry_4_0.dtd"));
setOutputValidator(new XMLOutputValidator(dtds));
}
public String getPublicId() {
return publicId;
}
public String getSystemId() {
return systemId;
}
}
--- NEW FILE: PageSpecificationPlugin.java ---
/*
* Copyright (c) 2003-2005
* XDoclet Team
* All rights reserved.
*/
package org.xdoclet.plugin.tapestry;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
import java.util.HashMap;
import java.util.Map;
import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.collections.Predicate;
import org.generama.JellyTemplateEngine;
import org.generama.QDoxCapableMetadataProvider;
import org.generama.WriterMapper;
import org.generama.defaults.QDoxPlugin;
import org.generama.defaults.XMLOutputValidator;
import org.xdoclet.plugin.tapestry.qtags.TagLibrary;
import com.thoughtworks.qdox.model.BeanProperty;
import com.thoughtworks.qdox.model.DocletTag;
import com.thoughtworks.qdox.model.JavaClass;
import com.thoughtworks.qdox.model.JavaField;
/**
* Generates page-specification (.page) files
* @author Paolo Donà
*/
public class PageSpecificationPlugin extends GenericTapestryPlugin {
public PageSpecificationPlugin(JellyTemplateEngine jellyTemplateEngine,
QDoxCapableMetadataProvider metadataProvider, WriterMapper
writerMapper) {
super(jellyTemplateEngine, metadataProvider, writerMapper);
setFileregex("\\.java");
setFilereplace("\\.page");
setPackageregex(".*");
setPackagereplace("");
setMultioutput(true);
new TagLibrary(metadataProvider);
}
public boolean shouldGenerate(Object metadata) {
JavaClass clazz = (JavaClass) metadata;
return clazz.getTagByName("tapestry.page-specification") != null;
}
}
--- NEW FILE: PageSpecificationPlugin.jelly ---
<?xml version="1.0" encoding="UTF-8"?>
<j:jelly xmlns:j="jelly:core" xmlns:jxml="jelly:xml" xmlns:d="jelly:define">
<jxml:doctype name="page-specification"
publicId="${plugin.publicId}"
systemId="${plugin.systemId}" trim="true"/>
<j:set var="class" value="${metadata}"/>
<page-specification class="${class.fullyQualifiedName}">
<j:import uri="/jelly/Disclaimer.jelly"/>
<j:set var="pageSpecification"
value="${class.getTagByName('tapestry.page-specification')}"/>
<j:if test="${pageSpecification.getNamedParameter('description') !=
null}">
<description>${pageSpecification.description}</description>
</j:if>
<j:import uri="/jelly/Bean.jelly" inherit="true"/>
<j:import uri="/jelly/Component.jelly" inherit="true"/>
<j:import uri="/jelly/Asset.jelly" inherit="true"/>
<j:import uri="/jelly/Property.jelly" inherit="true"/>
<j:import uri="/jelly/Inject.jelly" inherit="true"/>
</page-specification>
</j:jelly>
--- NEW FILE: ComponentSpecificationPlugin.jelly ---
<?xml version="1.0" encoding="UTF-8"?>
<j:jelly xmlns:j="jelly:core" xmlns:jxml="jelly:xml" xmlns:d="jelly:define">
<jxml:doctype name="component-specification"
publicId="${plugin.publicId}"
systemId="${plugin.systemId}" trim="true"/>
<j:set var="class" value="${metadata}"/>
<j:set var="componentSpecification"
value="${class.getTagByName('tapestry.component-specification')}"/>
<component-specification class="${class.fullyQualifiedName}"
allow-body="${componentSpecification.allowBody}"
allow-informal-parameters="${componentSpecification.allowInformalParameters}"
deprecated="${componentSpecification.deprecated}" >
<j:import uri="/jelly/Disclaimer.jelly"/>
<j:if
test="${componentSpecification.getNamedParameter('description') != null}">
<description>${componentSpecification.description}</description>
</j:if>
<j:import uri="/jelly/Parameter.jelly" inherit="true"/>
<!-- @TODO <j:import uri="/jelly/ReservedParameter.jelly"
inherit="true"/>-->
<!-- @TODO <j:import uri="/jelly/Meta.jelly" inherit="true"/> -->
<j:import uri="/jelly/Bean.jelly" inherit="true"/>
<j:import uri="/jelly/Component.jelly" inherit="true"/>
<j:import uri="/jelly/Asset.jelly" inherit="true"/>
<j:import uri="/jelly/Property.jelly" inherit="true"/>
<j:import uri="/jelly/Inject.jelly" inherit="true"/>
</component-specification>
</j:jelly>
-------------------------------------------------------
SF.Net email is Sponsored by the Better Software Conference & EXPO
September 19-22, 2005 * San Francisco, CA * Development Lifecycle Practices
Agile & Plan-Driven Development * Managing Projects & Teams * Testing & QA
Security * Process Improvement & Measurement * http://www.sqe.com/bsce5sf
_______________________________________________
xdoclet-plugins-commits mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/xdoclet-plugins-commits