private void testComponent(Type type, ValidationExceptionHandler<R> handler, Location l) {
if (type instanceof Composite) {
Type[] component = ((Composite) type).getComponents();
for (int sub = 0; sub < component.length; sub++) {
Location location = new Location(l);
location.setSubcomponent(sub + 1);
testSubComponent(component[sub], handler, location);
}
} else if (type instanceof Varies) {
testComponent(((Varies) type).getData(), handler, l);
} else {