if (typeVars != null && typeVars.containsKey(v.getType())) {
localVars = (Map) typeVars.get(v.getType());
}
}
Tags tagUtils = new Tags();
ValidatorAction validatorAction = v.getValidatorAction();
writer.write("new Array(\"");
writer.write(id);
writer.write("\", \"");
writer.write(v.getErrorMessage(context, validatorAction, localVars));
writer.write("\", new Function(\"x\", \"return {");
Iterator vi = v.getVars().entrySet().iterator();
boolean first = true;
// vars captured at render time and are the result of
// EL.
Map idVars = (Map) validatorVars.get(id);
next: while (vi.hasNext()) {
Map.Entry e = (Map.Entry) vi.next();
Object value = e.getValue();
// look for a render override by clientId/type
if (idVars != null && idVars.containsKey(v.getType())) {
Map typeVars = (Map) idVars.get(v.getType());
// look for a render override by clientId/type/name
if (typeVars != null && typeVars.containsKey(e.getKey())) {
value = typeVars.get(e.getKey());
}
} else {
if (value != null && value instanceof String
&& isValueReference((String) e.getValue())) {
value = tagUtils.eval((String) e.getValue());
}
}
if (value == null) {
continue next;