@SuppressWarnings("unchecked")
public <U> void addCheckerToSource(final AbstractChecker checker, final IKey key) {
if (checker != null && key != null) {
final AbstractDataSource<U> source = getSource(key);
for (final AbstractController<?> controller : getUsedControllers()) {
final GenericDescriptor controllerDesc = controller.getSourceType();
if (controllerDesc != null && controllerDesc.isAssignableFrom(source.getDataType())) {
((AbstractController<U>) controller).addCheckerToSource(checker, source);
}
}
}
}