private static void parseFilterDef(Element element, Mappings mappings) { String name = element.attributeValue( "name" ); log.debug( "Parsing filter-def [" + name + "]" ); FilterDefinition def = new FilterDefinition( name ); Iterator params = element.elementIterator( "filter-param" ); while ( params.hasNext() ) { final Element param = (Element) params.next(); final String paramName = param.attributeValue( "name" ); final String paramType = param.attributeValue( "type" ); log.debug( "adding filter parameter : " + paramName + " -> " + paramType ); final Type heuristicType = TypeFactory.heuristicType( paramType ); log.debug( "parameter heuristic type : " + heuristicType ); def.addParameterType( paramName, heuristicType ); } String condition = element.getTextTrim(); if ( StringHelper.isEmpty(condition) ) condition = element.attributeValue( "condition" ); def.setDefaultFilterCondition(condition); log.debug( "Parsed filter-def [" + name + "]" ); mappings.addFilterDefinition( def ); }