in extscript-core-root/extscript-myfaces/src/main/java/org/apache/myfaces/extensions/scripting/jsf/facelet/support/SwitchingMetarulesetImpl.java [111:146]
public Metadata finish() {
assert !_rules.isEmpty();
if (!_attributes.isEmpty()) {
MetadataTarget target = this._getMetadataTarget();
int ruleEnd = _rules.size() - 1;
// now iterate over attributes
for (Map.Entry<String, TagAttribute> entry : _attributes.entrySet()) {
Metadata data = null;
int i = ruleEnd;
// First loop is always safe
do {
MetaRule rule = _rules.get(i);
data = rule.applyRule(entry.getKey(), entry.getValue(), target);
i--;
} while (data == null && i >= 0);
if (data == null) {
if (log.isLoggable(Level.SEVERE)) {
log.severe(entry.getValue() + " Unhandled by MetaTagHandler for type " + _type.getName());
}
} else {
_mappers.add(data);
}
}
}
if (_mappers.isEmpty()) {
return NONE;
} else {
return new MetadataImpl(_mappers.toArray(new Metadata[_mappers.size()]));
}
}