return false;
}
private final Attribute attribute(TagLibTag tlt, ExprData data, ArrayList<String> args, Expression defaultValue,Object oAllowExpression, boolean allowTwiceAttr) throws TemplateException {
StringBuffer sbType=new StringBuffer();
RefBoolean dynamic=new RefBooleanImpl(false);
// Name
String name=attributeName(data.cfml,args,tlt,dynamic,sbType, allowTwiceAttr);
boolean allowExpression=false;
if(oAllowExpression instanceof Boolean)allowExpression=((Boolean)oAllowExpression).booleanValue();
else if(oAllowExpression instanceof String)allowExpression=((String)oAllowExpression).equalsIgnoreCase(name);
Expression value=null;
CFMLTransformer.comment(data.cfml,true);
// value
if(data.cfml.forwardIfCurrent('=')) {
CFMLTransformer.comment(data.cfml,true);
value=attributeValue(data,allowExpression);
}
else {
value=defaultValue;
}
CFMLTransformer.comment(data.cfml,true);
// Type
TagLibTagAttr tlta=null;
if(tlt!=null){
tlta = tlt.getAttribute(name);
}
return new Attribute(dynamic.toBooleanValue(),name,tlta!=null?CastOther.toExpression(value, tlta.getType()):value,sbType.toString());
}