protected void traverseAttributeExpressions(final ReportElement element) { final String[] attrExprNamespaces = element.getAttributeExpressionNamespaces(); for (int i = 0; i < attrExprNamespaces.length; i++) { final String attrExprNamespace = attrExprNamespaces[i]; final String[] names = element.getAttributeExpressionNames(attrExprNamespace); for (int j = 0; j < names.length; j++) { final String name = names[j]; final Expression expression = element.getAttributeExpression(attrExprNamespace, name); if (expression == null) { continue; } final String expressionName = expression.getClass().getName(); if (ExpressionRegistry.getInstance().isExpressionRegistered(expressionName) == false) { inspectAttributeExpression(element, attrExprNamespace, name, expression, null); } else { final ExpressionMetaData metaData = ExpressionRegistry.getInstance().getExpressionMetaData(expressionName); inspectAttributeExpression(element, attrExprNamespace, name, expression, metaData); } } } }