public Deserializer createDeserializer(long deserializerOid) throws PluginException, UserException { DatabaseSession session = bimDatabase.createSession(); try { DeserializerPluginConfiguration deserializerPluginConfiguration = session.get( StorePackage.eINSTANCE.getDeserializerPluginConfiguration(), deserializerOid, Query.getDefault()); if (deserializerPluginConfiguration != null) { DeserializerPlugin deserializerPlugin = (DeserializerPlugin) pluginManager.getPlugin( deserializerPluginConfiguration.getPluginDescriptor().getPluginClassName(), true); if (deserializerPlugin != null) { ObjectType settings = deserializerPluginConfiguration.getSettings(); return deserializerPlugin.createDeserializer(new PluginConfiguration(settings)); } else { throw new UserException("No (enabled) deserializer found with oid " + deserializerOid); } } } catch (BimserverDatabaseException e) { LOGGER.error("", e); } finally { session.close(); } return null; }