}
}
private ExecutionFactory<Object, Object> getExecutionFactory(String name, TranslatorRepository repo, VDBMetaData deployment, IdentityHashMap<Translator, ExecutionFactory<Object, Object>> map, HashSet<String> building) throws DeploymentException {
if (!building.add(name)) {
throw new DeploymentException(RuntimePlugin.Util.getString("recursive_delegation", deployment.getName(), deployment.getVersion(), building)); //$NON-NLS-1$
}
Translator translator = repo.getTranslatorMetaData(name);
if (translator == null) {
translator = this.translatorRepository.getTranslatorMetaData(name);
}
if (translator == null) {
throw new DeploymentException(RuntimePlugin.Util.getString("translator_not_found", deployment.getName(), deployment.getVersion(), name)); //$NON-NLS-1$
}
ExecutionFactory<Object, Object> ef = map.get(translator);
if ( ef == null) {
ef = TranslatorUtil.buildExecutionFactory(translator);
if (ef instanceof DelegatingExecutionFactory) {