Package org.xdoclet.plugin.tapestry

Source Code of org.xdoclet.plugin.tapestry.GenericTapestryPlugin

/*
* 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.HashSet;
import java.util.Iterator;
import java.util.Map;
import java.util.Set;

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;
import com.thoughtworks.qdox.model.JavaMethod;

/**
* 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;
    }

    /**
     * Determines all the abstract getters in a JavaClass
     * @return a Set of JavaMethod objects
     */
    public Set getAbstractGetters(JavaClass clazz) {
        Set abstractGetters = new HashSet();
        JavaMethod[] methods = clazz.getMethods();

        for (int i = 0; i < methods.length; i++) {
            boolean abztract = methods[i].isAbstract();
            boolean getter = methods[i].isPropertyAccessor();

            if (abztract && getter) {
                abstractGetters.add(methods[i]);
            }
        }

        return abstractGetters;
    }
}
TOP

Related Classes of org.xdoclet.plugin.tapestry.GenericTapestryPlugin

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.