public ColumnsHandler(final ComponentConfig config) {
super(config);
final ComponentConfig columnConfig;
TagAttribute idAttribute = config.getTag().getAttributes().get("id");
if (idAttribute != null && idAttribute.isLiteral()) {
columnConfig = new ComponentConfig() {
private Tag tag;
{
Tag initialTag = config.getTag();
TagAttribute[] allInitialAttributes = initialTag.getAttributes().getAll();
TagAttribute[] attributes = new TagAttribute[allInitialAttributes.length];
for (int i = 0; i < allInitialAttributes.length; i++) {
TagAttribute initialAttribute = allInitialAttributes[i];
String localName = initialAttribute.getLocalName();
String attributeValue = initialAttribute.getValue();
if ("id".equals(localName)) {
attributeValue += ITERATION_INDEX_EXPRESSION;
}
attributes[i] = new TagAttribute(initialAttribute.getLocation(),
initialAttribute.getNamespace(),
localName,
initialAttribute.getQName(),
attributeValue);
}
TagAttributes tagAttributes = new TagAttributes(attributes);
this.tag = new Tag(initialTag, tagAttributes);