ComponentNameConstructor compName = getVerifierContext().getComponentNameConstructor();
Context context = getVerifierContext();
Result result = getInitializedResult();
ClassLoader cl = context.getClassLoader();
TagLibDescriptor tlds[] = context.getTagLibDescriptors();
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) {
if (tld.getSpecVersion().compareTo("2.0")>=0) {
for (TagDescriptor tagdesc : tld.getTagDescriptors()) {
Class c = null;
try {
c = Class.forName(tagdesc.getTagClass(), false, cl);
} catch (ClassNotFoundException e) {
//do nothing
}
if (tagdesc.getDynamicAttributes().equalsIgnoreCase("true") &&
!javax.servlet.jsp.tagext.DynamicAttributes.class.
isAssignableFrom(c) ) {
addErrorDetails(result, compName);
result.failed(smh.getLocalString(getClass()
.getName() +
".failed",
"Error: tag class [ {0} ] in [ {1} ] does not " +
"implements interface " +
"javax.servlet.jsp.tagext.DynamicAttributes",
new Object[]{c.getName(), tld.getUri()}));
}
}
}
}
if(result.getStatus() != Result.FAILED) {
addGoodDetails(result, compName);
result.passed(smh.getLocalString(getClass()
.getName() +
".passed1", "All tag-class defined in the tag lib descriptor" +
" files implement valid interface"));
}
return result;