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

Reply via email to