You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by pi...@locus.apache.org on 2000/09/19 21:28:52 UTC
cvs commit: jakarta-tomcat-4.0/jasper/src/share/org/apache/jasper/compiler TagLibraryInfoImpl.java
pierred 00/09/19 12:28:52
Modified: jasper/src/share/org/apache/jasper/compiler
TagLibraryInfoImpl.java
Log:
Support for XML syntax:
- now handles the new validatorclass tag
Revision Changes Path
1.2 +63 -4 jakarta-tomcat-4.0/jasper/src/share/org/apache/jasper/compiler/TagLibraryInfoImpl.java
Index: TagLibraryInfoImpl.java
===================================================================
RCS file: /home/cvs/jakarta-tomcat-4.0/jasper/src/share/org/apache/jasper/compiler/TagLibraryInfoImpl.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- TagLibraryInfoImpl.java 2000/08/12 00:52:08 1.1
+++ TagLibraryInfoImpl.java 2000/09/19 19:28:51 1.2
@@ -1,7 +1,7 @@
/*
- * $Header: /home/cvs/jakarta-tomcat-4.0/jasper/src/share/org/apache/jasper/compiler/TagLibraryInfoImpl.java,v 1.1 2000/08/12 00:52:08 pierred Exp $
- * $Revision: 1.1 $
- * $Date: 2000/08/12 00:52:08 $
+ * $Header: /home/cvs/jakarta-tomcat-4.0/jasper/src/share/org/apache/jasper/compiler/TagLibraryInfoImpl.java,v 1.2 2000/09/19 19:28:51 pierred Exp $
+ * $Revision: 1.2 $
+ * $Date: 2000/09/19 19:28:51 $
*
* The Apache Software License, Version 1.1
*
@@ -79,6 +79,8 @@
import javax.servlet.jsp.tagext.TagInfo;
import javax.servlet.jsp.tagext.TagAttributeInfo;
import javax.servlet.jsp.tagext.TagExtraInfo;
+import javax.servlet.jsp.tagext.TagLibraryValidator;
+import javax.servlet.jsp.tagext.PageInfo;
import org.w3c.dom.*;
import org.xml.sax.*;
@@ -95,6 +97,7 @@
*
* @author Anil K. Vijendran
* @author Mandar Raje
+ * @author Pierre Delisle
*/
public class TagLibraryInfoImpl extends TagLibraryInfo {
static private final String TLD = "META-INF/taglib.tld";
@@ -124,6 +127,7 @@
print("shortname", shortname, out);
print("urn", urn, out);
print("info", info, out);
+ print("tagLibraryValidator", tagLibraryValidator.toString(), out);
for(int i = 0; i < tags.length; i++)
out.println(tags[i].toString());
@@ -340,6 +344,7 @@
private void parseTLD(InputStream in)
throws JasperException
{
+ String validatorclass = null;
tld = JspUtil.parseXMLDoc(in,
Constants.TAGLIB_DTD_RESOURCE,
Constants.TAGLIB_DTD_PUBLIC_ID);
@@ -378,15 +383,41 @@
Text t = (Text) e.getFirstChild();
if (t != null)
this.info = t.getData();
+ } else if (tname.equals("validatorclass")) {
+ Text t = (Text) e.getFirstChild();
+ if (t != null)
+ validatorclass = t.getData().trim();
} else if (tname.equals("tag"))
tagVector.addElement(createTagInfo(e));
- else
+ else {
Constants.message("jsp.warning.unknown.element.in.TLD",
new Object[] {
e.getTagName()
},
Logger.WARNING
);
+ }
+ }
+
+ // Setup the TagLibraryValidator object if the validatorclass tag
+ // has been set for the library.
+
+ TagLibraryValidator tlv = null;
+ if (validatorclass != null && !validatorclass.equals("")) {
+ try {
+ Class tlvClass =
+ ctxt.getClassLoader().loadClass(validatorclass);
+ tlv = (TagLibraryValidator) tlvClass.newInstance();
+ tlv.setTagLibraryInfo(this);
+ this.tagLibraryValidator = tlv;
+ } catch (Exception ex) {
+ Constants.message("jsp.warning.tlvclass.is.null",
+ new Object[] {
+ validatorclass,
+ "EXCEPTION: " + ex.getMessage()
+ },
+ Logger.ERROR);
+ }
}
this.tags = new TagInfo[tagVector.size()];
@@ -532,4 +563,32 @@
out.write(buf, 0, nRead);
}
+ //*********************************************************************
+ // Until javax.servlet.jsp.tagext.TagLibraryInfo is fixed
+
+ /**
+ * The instance (if any) for the TagLibraryValidator class.
+ *
+ * @return The TagLibraryValidator instance, if any.
+ */
+ public TagLibraryValidator getTagLibraryValidator() {
+ return tagLibraryValidator;
+ }
+
+ /**
+ * Translation-time validation of the XML docu-ment
+ * associated with the JSP page.
+ * This is a convenience method on the associated
+ * TagLibraryValidator class.
+ *
+ * @param thePage The JSP page object
+ * @return A string indicating whether the page is valid or not.
+ */
+ public String validate(PageInfo thePage) {
+ TagLibraryValidator tlv = getTagLibraryValidator();
+ if (tlv == null) return null;
+ return tlv.validate(thePage);
+ }
+
+ protected TagLibraryValidator tagLibraryValidator;
}