/* Generated by Together */ package multimonster.systemadministration; import java.rmi.RemoteException; import java.sql.ResultSet; import java.sql.SQLException; import javax.ejb.CreateException; import javax.ejb.EJBException; import javax.ejb.SessionBean; import javax.ejb.SessionContext; import javax.naming.Context; import javax.naming.InitialContext; import javax.naming.NamingException; import javax.rmi.PortableRemoteObject; import multimonster.common.Action; import multimonster.common.Format; import multimonster.common.FormatId; import multimonster.common.InputOption; import multimonster.common.OutputOption; import multimonster.common.ProtocolId; import multimonster.common.SearchCriteria; import multimonster.common.SearchResult; import multimonster.common.UserIdentifier; import multimonster.common.edit.FilterAction; import multimonster.common.edit.FilterDetail; import multimonster.common.media.MIIdentifier; import multimonster.common.media.MOIdentifier; import multimonster.common.media.MediaInstance; import multimonster.common.media.MediaObject; import multimonster.common.media.MetaData; import multimonster.common.media.MetaDataAccess; import multimonster.common.plugin.PlugInIdentifier; import multimonster.common.plugin.PlugInInformation; import multimonster.common.resource.Costs; import multimonster.common.setting.Setting; import multimonster.common.setting.SettingID; import multimonster.common.setting.SettingValue; import multimonster.exceptions.DBNotAvailableException; import multimonster.exceptions.MultiMonsterException; import multimonster.systemadministration.exceptions.SettingNotExistsException; import multimonster.systemadministration.exceptions.SettingOutOfDomainException; import multimonster.usermanager.interfaces.UserManagerImplHome; import org.apache.log4j.Logger; /** * * @ejb.bean name = "SystemAdministrationImpl" display-name = * "SystemAdministrationFacade SessionBean" description = "The Facade of the * SystemAdministration-Package of MultiMonster" view-type = "remote" jndi-name = * "multimonster/systemadministration/SystemAdministrationFacade" * */ public class SystemAdministrationImplBean implements SessionBean, SystemAdministrationFacade { private SessionContext ctx; private Logger log; private Context context; private UserManagerImplHome userManagerHome; //private RightsManager rightMan; private SettingAdministration settingAdmin; private CostCalculator costCal; private MOManager moManager; private PlugInManager plugInMngr; private MOSearch searcher; public void setSessionContext(SessionContext context) throws RemoteException, EJBException { ctx = context; } public void ejbActivate() throws EJBException { } public void ejbPassivate() throws EJBException { } public void ejbRemove() throws EJBException { } /** * @ejb.create-method */ public void ejbCreate() throws CreateException, EJBException, RemoteException { try { log = Logger.getLogger(this.getClass()); log.debug("ejbCreate()"); context = new InitialContext(); // Usermanager get Stub Object ref = context.lookup(UserManagerImplHome.JNDI_NAME); userManagerHome = (UserManagerImplHome) PortableRemoteObject.narrow( ref, UserManagerImplHome.class); // RightsManager //rightMan = new RightsManager(); // SettingAdministration settingAdmin = new SettingAdministration(); // CostCalculator costCal = new CostCalculator(); // MOManager moManager = new MOManager(); // PlugInManager plugInMngr = new PlugInManager(); // MOSearch searcher = new MOSearch(); } catch (NamingException e) { e.printStackTrace(); } } /** * @ejb.interface-method view-type = "remote" */ public String getSettingDescription(SettingID settingID) throws SettingNotExistsException { log.debug("getSettingDescription() - delegate to Subcomponent"); return settingAdmin.getDescription(settingID); } /** * @ejb.interface-method view-type = "remote" */ public void registerSetting(Setting setting) { log.debug("registerSetting() - delegate to Subcomponent"); settingAdmin.registerSetting(setting); } /** * @ejb.interface-method view-type = "remote" */ public void releaseSetting(SettingID settingId) { log.debug("releaseSetting() - delegate to Subcomponent"); settingAdmin.releaseSetting(settingId); } /** * @ejb.interface-method view-type = "remote" */ public void setSettingValue(SettingID settingID, SettingValue value) throws SettingNotExistsException, SettingOutOfDomainException { log.debug("setSettingValue() - delegate to Subcomponent"); settingAdmin.setValue(settingID, value); } /** * @ejb.interface-method view-type = "remote" */ public SettingValue getSettingValue(SettingID settingID) throws SettingNotExistsException { log.debug("getSettingValue() - delegate to Subcomponent"); return settingAdmin.getValue(settingID); } /** * @ejb.interface-method view-type = "remote" */ public Setting[] getAllSettings() { return settingAdmin.getAllSettings(); } /** * @ejb.interface-method view-type = "remote" */ public MOIdentifier addMediaObject( MediaObject mediaObject, UserIdentifier user) throws MultiMonsterException { log.debug("addMediaObject() - delegate to Subcomponent"); return moManager.addMediaObject(mediaObject, user); } /** * @ejb.interface-method view-type = "remote" */ public void modifyMediaObject( MediaObject mediaObject, UserIdentifier user) { log.debug("modifyMediaObject() - delegate to Subcomponent"); moManager.modifyMediaObject(mediaObject, user); } /** * @ejb.interface-method view-type = "remote" */ public InputOption[] getInputOptions(UserIdentifier user) { log.debug("getInputOptions() - delegate to Subcomponent"); return moManager.getInputOptions(user); } /** * @ejb.interface-method view-type = "remote" */ public OutputOption[] getOutputOptions( UserIdentifier user, MOIdentifier mediaObject) { log.debug("getOutputOptions() - delegate to Subcomponent"); return moManager.getOutputOptions(user, mediaObject); } /** * @ejb.interface-method view-type = "remote" */ public void getFilterOptions() { log.debug("getFilterOptions() - delegate to Subcomponent"); moManager.getFilterOptions(); } /** * @ejb.interface-method view-type = "remote" */ public MetaDataAccess getMetaData(MOIdentifier mOId) { log.debug("getMetaData() - delegate to Subcomponent"); return moManager.getMetaData(mOId); } /** * @ejb.interface-method view-type = "remote" */ public void registerPlugin(PlugInInformation regInfo) { log.debug("registerPlugin() - delegate to Subcomponent"); plugInMngr.registerPlugin(regInfo); } /** * @ejb.interface-method view-type = "remote" */ public void releasePlugin(PlugInIdentifier pluginID) { log.debug("releasePlugin() - delegate to Subcomponent"); plugInMngr.releasePlugin(pluginID); } /** * @ejb.interface-method view-type = "remote" */ public void removePlugin(PlugInIdentifier pluginID) { log.debug("removePlugin() - delegate to Subcomponent"); plugInMngr.removePlugin(pluginID); } /** * @ejb.interface-method view-type = "remote" */ public SearchResult[] search(SearchCriteria criteria) throws DBNotAvailableException { log.debug("search() - delegate to Subcomponent"); return searcher.search(criteria); } /** * @ejb.interface-method view-type = "remote" */ public void addMediaInstance(MediaInstance instance, MetaData meta) throws MultiMonsterException { log.debug("addMediaInstance() - delegate to Subcomponent"); moManager.addMediaInstance(instance, meta); } /** * @ejb.interface-method view-type = "remote" */ public void remMediaInstance(MIIdentifier id) { log.debug("remMediaInstance() - delegate to Subcomponent"); moManager.remMediaInstance(id); } /** * @ejb.interface-method view-type = "remote" */ public MediaInstance getMediaInstance(MOIdentifier mOId, FormatId fId) throws MultiMonsterException { log.debug("getMediaInstance() - delegate to Subcomponent"); return moManager.getMediaInstance(mOId, fId); } /** * @ejb.interface-method view-type = "remote" */ public MIIdentifier getSourceMediaInstance(MOIdentifier mOId) throws MultiMonsterException { log.debug("getSourceMediaInstance() - delegate to Subcomponent"); return moManager.getSourceMediaInstance(mOId); } /** * @ejb.interface-method view-type = "remote" */ public void remMediaObject(MOIdentifier id, UserIdentifier user) throws MultiMonsterException { log.debug("remMediaObject() - delegate to Subcomponent"); moManager.remMediaObject(id, user); } /** * @ejb.interface-method view-type = "remote" */ public Costs calculateCosts(MOIdentifier id, FilterAction[] actions) { log.debug("calculateCosts() - delegate to Subcomponent"); return costCal.calculateCosts(id, actions); } /** * @ejb.interface-method view-type = "remote" */ public Costs calculateCosts(MOIdentifier mOId, FormatId formatId, ProtocolId protocolId, Action action){ log.debug("calculateCosts()"); return new Costs(); } /** * @ejb.interface-method view-type = "remote" */ public Costs calculateCosts(MOIdentifier mOId, ProtocolId protocolId, Action action){ log.debug("calculateCosts()"); return new Costs(); } /** * @ejb.interface-method view-type = "remote" */ public void realCosts( MOIdentifier id, FilterAction[] actions, Costs realcosts) { log.debug("realCosts() - delegate to Subcomponent"); costCal.realCosts(id, actions, realcosts); } /* * (non-Javadoc) * * @see multimonster.systemadministration.SystemAdministrationFacade#getFormat(multimonster.common.FormatId) */ /** * @ejb.interface-method view-type = "remote" */ public Format getFormat(FormatId fId) { return moManager.getFormat(fId); } /** * @ejb.interface-method view-type = "remote" */ public PlugInIdentifier getConverterPlugInId(Format input, Format output) { String in_codec = input.getCodec().toString(); String in_struc = input.getStructure().toString(); String out_format = output.getFormatId().getId(); PlugInIdentifier pluginID = null; QueryManager qmngr = new QueryManager(); int connNr = qmngr.reserveConnection(); String query = "select p.classname " + "from plugin_converter pc, plugin p " + "where p.pluginID = pc.pluginID" + " and pc.from_codec = '" + in_codec + "'" + " and pc.from_structure = '" + in_struc + "'" + " and pc.to_format = '" + out_format + "';"; ResultSet result = qmngr.dbOpExec(query, connNr); log.debug("Statement for getConverterPlugInId: " + query); if (result != null) { try { if (result.next()) { String classname = result.getString("classname"); log.debug("Klassenname f�r Konverter-Plugin: " + classname); pluginID = new PlugInIdentifier(classname); } result.close(); } catch (SQLException e) { log.error("Fehler beim Auslesen des resultset in getConverterPlugInId!"); } } qmngr.bringBackConn(connNr); return pluginID; } /** * @ejb.interface-method view-type = "remote" */ public PlugInIdentifier getProxyPlugInId(ProtocolId protID, boolean isInput) { String protocolID = protID.getId(); String iIsInput = ""; if (isInput) { iIsInput = "1"; } else { iIsInput = "0"; } PlugInIdentifier pluginID = null; QueryManager qmngr = new QueryManager(); int connNr = qmngr.reserveConnection(); String query = "select p.classname " + "from plugin_proxy pp, plugin p " + "where p.pluginID = pp.pluginID" + " and pp.protocolID = '" + protocolID + "'" + " and pp.isInput = '" + iIsInput + "';"; ResultSet result = qmngr.dbOpExec(query, connNr); log.debug("Statement for getProxyPlugInId: " + query); if (result != null) { try { if (result.next()) { String classname = result.getString("classname"); log.debug("Klassenname f�r Proxy-Plugin: " + classname); pluginID = new PlugInIdentifier(classname); } result.close(); } catch (SQLException e) { log.error("Fehler beim Auslesen des resultset in getProxyPlugInId!"); } } qmngr.bringBackConn(connNr); return pluginID; } /** * @ejb.interface-method view-type = "remote" */ public PlugInIdentifier getTransporterPlugInId(ProtocolId protID, boolean isInput) { String protocolID = protID.getId(); String iIsInput = ""; if (isInput) { iIsInput = "1"; } else { iIsInput = "0"; } PlugInIdentifier pluginID = null; QueryManager qmngr = new QueryManager(); int connNr = qmngr.reserveConnection(); String query = "select p.classname " + "from plugin_transporter pt, plugin p " + "where p.pluginID = pt.pluginID" + " and pt.protocolID = '" + protocolID + "'" + " and pt.isInput = '" + iIsInput + "';"; ResultSet result = qmngr.dbOpExec(query, connNr); log.debug("Statement for getTransporterPlugInId: " + query); if (result != null) { try { if (result.next()) { String classname = result.getString("classname"); log.debug("Klassenname f�r Proxy-Plugin: " + classname); pluginID = new PlugInIdentifier(classname); } result.close(); } catch (SQLException e) { log.error("Fehler beim Auslesen des resultset in getTransporterPlugInId!"); } } qmngr.bringBackConn(connNr); return pluginID; } /* (non-Javadoc) * @see multimonster.systemadministration.SystemAdministrationFacade#getFilterOptions(multimonster.common.UserIdentifier, multimonster.common.media.MOIdentifier) */ public FilterDetail[] getFilterOptions(UserIdentifier uId, MOIdentifier mOId) { return new FilterDetail[0]; } }