FileDocCategorySizeDatePackage
TagClassExtendsValidInterface.javaAPI DocGlassfish v2 API4967Fri May 04 22:34:10 BST 2007com.sun.enterprise.tools.verifier.tests.web

TagClassExtendsValidInterface

public class TagClassExtendsValidInterface extends WebTest implements WebCheck
Tag class implements javax.servlet.jsp.tagext.JspTag for JSP version 2.0, javax.servlet.jsp.tagext.Tag for earlier versions of JSP specification.
author
sg133765

Fields Summary
Constructors Summary
Methods Summary
public com.sun.enterprise.tools.verifier.Resultcheck(com.sun.enterprise.deployment.WebBundleDescriptor descriptor)


        ComponentNameConstructor compName = getVerifierContext().getComponentNameConstructor();
        Context context = getVerifierContext();
        Result result = loadWarFile(descriptor);
        TagLibDescriptor tlds[] = context.getTagLibDescriptors();
        boolean failed=false;
        boolean oneFailed = false;

        if (tlds == null) {
            addGoodDetails(result, compName);
            result.passed(smh.getLocalString
                    (getClass().getName() + ".passed",
                            "No tag lib files are specified"));
            return result;

        }
        for(TagLibDescriptor tld : tlds) {
            TagDescriptor[] tagDesc = tld.getTagDescriptors();
            for(TagDescriptor td : tagDesc) {
                String tagclass = td.getTagClass();
                Class c = loadClass(result, tagclass);
                if (c!=null) {
                    if (tld.getSpecVersion().trim().equalsIgnoreCase("2.0")) {
                        failed = !javax.servlet.jsp.tagext.JspTag.class.isAssignableFrom(c);
                    } else {
                        failed = !javax.servlet.jsp.tagext.Tag.class.isAssignableFrom(c);
                    }
                    if(failed) {
                        oneFailed = true;
                        addErrorDetails(result, compName);
                        result.addErrorDetails(smh.getLocalString(getClass().getName() + ".failed",
                                "Error: tag class [ {0} ] in [ {1} ] does not implements valid interface",
                                new Object[] {c.getName(), tld.getUri()}));
                    } else {
                        addGoodDetails(result, compName);
                        result.addGoodDetails(smh.getLocalString
                                (getClass().getName() + ".passed1",
                                        "tag class [ {0} ] in [ {1} ] implements valid interface",
                                        new Object[] {c.getName(), tld.getUri()}));
                    }
                }
            }//for
        }
        if(oneFailed)
            result.setStatus(Result.FAILED);
        else
            result.setStatus(Result.PASSED);

        return result;