void visitAttributesTripleFlat(D data, D other1, D other2, Data.TriAttributeVisitor consumer) {
if (this.visitDataChildren != null) {
List<AttributeNamePair> attributes = getAttributes(data,10);
List<AttributeNamePair> otherAttributes = getAttributes(other1,attributes.size());
List<AttributeNamePair> other2Attributes = getAttributes(other2,attributes.size());
for (int i = 0; i < attributes.size(); i++) {
consumer.accept(attributes.get(i).name,attributes.get(i).attribute,otherAttributes.get(i).attribute,other2Attributes.get(i).attribute);
}
} else {
for (Field field : attributeFields) {
try {
consumer.accept(field.getName(),(Attribute<?,?>) field.get(data), (Attribute<?,?>) field.get(other1), (Attribute<?,?>) field.get(other2));
} catch (IllegalAccessException e) {
throw new RuntimeException(e);
}
}
}
}