private static TextAttributeDefinition buildTextAttributeDefinition( final TemplateMode templateMode, final TextAttributeName name, final Set<IElementProcessor> elementProcessors) { // No need to use a list for sorting - the elementProcessors set has already been ordered final Set<IElementProcessor> associatedProcessors = new LinkedHashSet<IElementProcessor>(2); if (elementProcessors != null) { for (final IElementProcessor processor : elementProcessors) { if (processor.getTemplateMode() != templateMode) { // We are creating a text element definition, therefore we are only interested on XML processors continue; } final MatchingElementName matchingElementName = processor.getMatchingElementName(); final MatchingAttributeName matchingAttributeName = processor.getMatchingAttributeName(); if ((matchingElementName != null && matchingElementName.getTemplateMode() != templateMode) || (matchingAttributeName != null && matchingAttributeName.getTemplateMode() != templateMode)) { throw new ConfigurationException(templateMode + " processors must return " + templateMode + "element names and " + templateMode + " attribute names (processor: " + processor.getClass().getName() + ")"); } if (matchingAttributeName == null || matchingAttributeName.isMatchingAllAttributes()) { // This processor does not relate to a specific attribute - surely an element processor continue; } if (!matchingAttributeName.matches(name)) { // Doesn't match. This processor is not associated with this attribute continue; } associatedProcessors.add(processor); } } // Build the final instance return new TextAttributeDefinition(name, associatedProcessors); }
final TemplateMode templateMode = processor.getTemplateMode();
for (final IElementProcessor processor : elementProcessors) { if (processor.getTemplateMode() != templateMode) {
final TemplateMode templateMode = processor.getTemplateMode();
final TemplateMode templateMode = processor.getTemplateMode();
final TemplateMode templateMode = processor.getTemplateMode();