/** * Convenience static method that goes through an array of TagAttributeInfo * objects and looks for "id". * * @param a An array of TagAttributeInfo * @return The TagAttributeInfo reference with name "id" */ public static TagAttributeInfo getIdAttribute(TagAttributeInfo a[]) { for (int i=0; i<a.length; i++) { if (a[i].getName().equals(ID)) { return a[i]; } } return null; // no such attribute }
TagAttributeInfo[] attrInfos = tagInfo.getAttributes(); for (int i = 0; i < attrInfos.length; i++) { if (attrInfos[i].isDeferredMethod() || attrInfos[i].isDeferredValue()) { out.printin("_el_variablemapper.setVariable("); out.print(quote(attrInfos[i].getName())); out.print(",_el_ve"); out.print(i); genCommonPostamble();
boolean variableMapperVar = false; for (int i = 0; i < attrInfos.length; i++) { String attrName = attrInfos[i].getName(); if (attrInfos[i].isDeferredValue() || attrInfos[i].isDeferredMethod()) { out.print(i); out.print(" = _el_variablemapper.setVariable("); out.print(quote(attrName)); out.print(','); if (attrInfos[i].isDeferredMethod()) { out.print("_jsp_getExpressionFactory().createValueExpression("); out.print(toGetterMethod(attrName)); out.print(",javax.el.MethodExpression.class)"); } else { out.print(toGetterMethod(attrName));
/** * Checks to see if the attribute of the given name is of type * JspFragment. */ public boolean checkIfAttributeIsJspFragment(String name) { boolean result = false; TagAttributeInfo[] attributes = tagInfo.getAttributes(); for (int i = 0; i < attributes.length; i++) { if (attributes[i].getName().equals(name) && attributes[i].isFragment()) { result = true; break; } } return result; }
&& ((tagAttr.isDeferredValue() && !tagAttr.canBeRequestTime()) || tagAttr.isDeferredMethod() this.err); if (tagAttr != null && tagAttr.isDeferredValue()) { String expectedType = tagAttr.getExpectedTypeName(); result = new Node.JspAttribute( qName, uri, localName, expectedType, null, null); } else if (tagAttr != null && tagAttr.isDeferredMethod()) { String methodSignature = tagAttr.getMethodSignature(); String returnType = getReturnType(methodSignature);
if (attrs.getLocalName(i).equals(tldAttrs[j].getName()) && (attrs.getURI(i) == null || attrs.getURI(i).length() == 0 || attrs if (tldAttr.canBeRequestTime() || tldAttr.isDeferredMethod() || tldAttr.isDeferredValue()) { // JSP 2.1 if (tldAttr.isDeferredMethod()) { String m = tldAttr.getMethodSignature(); if (m != null) { m = m.trim(); tldAttr.getName()); if (tldAttr.isDeferredValue()) { expectedType = tldAttr.getExpectedTypeName(); err.jspError (n, "jsp.error.unknown_attribute_type", tldAttr.getName(), expectedType); err.jspError (n, "jsp.error.coerce_to_type", tldAttr.getName(), expectedType, attrs.getValue(i)); if (deferred && !tldAttr.isDeferredMethod() && !tldAttr.isDeferredValue()) {
/** * Perform miscellaneous checks after the nodes are visited. */ void postCheck() throws JasperException { // Check that var.name-from-attributes has valid values. Iterator<String> iter = nameFromTable.keySet().iterator(); while (iter.hasNext()) { String nameFrom = iter.next(); NameEntry nameEntry = nameTable.get(nameFrom); NameEntry nameFromEntry = nameFromTable.get(nameFrom); Node nameFromNode = nameFromEntry.getNode(); if (nameEntry == null) { err.jspError(nameFromNode, "jsp.error.tagfile.nameFrom.noAttribute", nameFrom); } else { Node node = nameEntry.getNode(); TagAttributeInfo tagAttr = nameEntry.getTagAttributeInfo(); if (!"java.lang.String".equals(tagAttr.getTypeName()) || !tagAttr.isRequired() || tagAttr.canBeRequestTime()) { err.jspError(nameFromNode, "jsp.error.tagfile.nameFrom.badAttribute", nameFrom, Integer.toString(node.getStart() .getLineNumber())); } } } } }
public TagAttributeInfo getAttributeInfo(String name) { if (_tagInfo == null) return null; TagAttributeInfo attrs[] = _tagInfo.getAttributes(); if (attrs == null) return null; for (int i = 0; i < attrs.length; i++) { if (name.equals(attrs[i].getName())) return attrs[i]; } return null; }
boolean canBeRequestTime(String name) { TagAttributeInfo attrs[] = _tagInfo.getAttributes(); if (attrs == null) return true; for (int i = 0; i < attrs.length; i++) { if (name.equals(attrs[i].getName())) return attrs[i].canBeRequestTime(); } return false; }
public String getExpectedTypeName() { if (this.tai != null) { if (this.isDeferredInput()) { return this.tai.getExpectedTypeName(); } else if (this.isDeferredMethodInput()) { String m = this.tai.getMethodSignature(); if (m != null) { int rti = m.trim().indexOf(' '); if (rti > 0) { return m.substring(0, rti).trim(); } } } } return "java.lang.Object"; }
return new TagAttributeInfo( name, required,
/** * * @return return true if there's TagAttributeInfo meaning we need to * assign a MethodExpression */ public boolean isDeferredMethodInput() { return (this.tai != null) ? this.tai.isDeferredMethod() : false; }
/** * * @return return true if there's TagAttributeInfo meaning we need to * assign a ValueExpression */ public boolean isDeferredInput() { return (this.tai != null) ? this.tai.isDeferredValue() : false; }
public String[] getParameterTypeNames() { if (this.tai != null) { if (this.isDeferredMethodInput()) { String m = this.tai.getMethodSignature(); if (m != null) { m = m.trim(); m = m.substring(m.indexOf('(') + 1); m = m.substring(0, m.length() - 1); if (m.trim().length() > 0) { String[] p = m.split(","); for (int i = 0; i < p.length; i++) { p[i] = p[i].trim(); } return p; } } } } return new String[0]; }
attrInfos[i] = new TagAttributeInfo(attr.getAttrName(), attr.isRequired(), type, false); String bodyContent = decl.getBodycontent(); if (tagName != null && tagClass != null && bodyContent != null) return new TagInfo(tagName, tagClass, bodyContent, decl.getInfo(), libInfo, tei, attrInfos); return null;
TagAttributeInfo[] attrInfos = tagInfo.getAttributes(); for (int i = 0; i < attrInfos.length; i++) { if (attrInfos[i].isDeferredMethod() || attrInfos[i].isDeferredValue()) { out.printin("_el_variablemapper.setVariable("); out.print(quote(attrInfos[i].getName())); out.print(",_el_ve"); out.print(i); genCommonPostamble();
String attrName = attrInfos[i].getName(); out.printil("if( " + toGetterMethod(attrName) + " != null ) {"); out.pushIndent(); out.printin("_jspx_page_context.setAttribute("); out.print(quote(attrName)); out.print(", "); out.print(toGetterMethod(attrName)); out.println(");"); if (attrInfos[i].isDeferredValue()) { if (attrInfos[i].isDeferredMethod()) {
/** * Checks to see if the attribute of the given name is of type * JspFragment. */ public boolean checkIfAttributeIsJspFragment( String name ) { boolean result = false; TagAttributeInfo[] attributes = tagInfo.getAttributes(); for (int i = 0; i < attributes.length; i++) { if (attributes[i].getName().equals(name) && attributes[i].isFragment()) { result = true; break; } } return result; }
&& (( tagAttr.isDeferredValue() && !tagAttr.canBeRequestTime()) || tagAttr.isDeferredMethod() this.err); if (tagAttr != null && tagAttr.isDeferredValue()) { String expectedType = tagAttr.getExpectedTypeName(); result = new Node.JspAttribute( qName, uri, localName, null, null); else if (tagAttr != null && tagAttr.isDeferredMethod()){ String methodSignature = tagAttr.getMethodSignature(); String returnType = getReturnType(methodSignature);
/** * Perform miscellean checks after the nodes are visited. */ void postCheck() throws JasperException { // Check that var.name-from-attributes has valid values. Iterator iter = nameFromTable.keySet().iterator(); while (iter.hasNext()) { String nameFrom = (String) iter.next(); NameEntry nameEntry = (NameEntry) nameTable.get(nameFrom); NameEntry nameFromEntry = (NameEntry) nameFromTable .get(nameFrom); Node nameFromNode = nameFromEntry.getNode(); if (nameEntry == null) { err.jspError(nameFromNode, "jsp.error.tagfile.nameFrom.noAttribute", nameFrom); } else { Node node = nameEntry.getNode(); TagAttributeInfo tagAttr = nameEntry.getTagAttributeInfo(); if (!"java.lang.String".equals(tagAttr.getTypeName()) || !tagAttr.isRequired() || tagAttr.canBeRequestTime()) { err.jspError(nameFromNode, "jsp.error.tagfile.nameFrom.badAttribute", nameFrom, Integer.toString(node.getStart() .getLineNumber())); } } } } }