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; }
@Override public Void execute() throws UserException, BimserverLockConflictException, BimserverDatabaseException { DeserializerPluginConfiguration object = getDatabaseSession().get(geteClass(), getOid(), Query.getDefault()); UserSettings settings = object.getUserSettings(); settings.getDeserializers().remove(object); getDatabaseSession().store(settings); return super.execute(); }