for (int i = 0, n = ca.length; i < n; i++) {
if (ca[i].isInstance(baseClass)) // ca[i] guaranteed non-null by virtue of addPresetClass semantics
candidate = mostDerived(ca[i], candidate);
}
if (candidate != baseClass.getClass()) {
PresetModel pm = (PresetModel) candidate.newInstance();
pm.setPreset(baseClass.getPreset());
pm.setPresetContext(baseClass.getPresetContext());
return pm;
}
return baseClass;
}