home *** CD-ROM | disk | FTP | other *** search
- package netscape.netcast;
-
- import java.applet.AudioClip;
- import java.awt.Image;
- import java.io.File;
- import java.io.IOException;
- import java.io.InputStream;
- import java.net.MalformedURLException;
- import java.net.URL;
- import marimba.castanet.client.CastanetChannel;
- import marimba.castanet.client.CastanetConstants;
- import marimba.castanet.client.CastanetEnvironment;
- import marimba.castanet.client.CastanetFile;
- import marimba.castanet.client.CastanetObject;
- import marimba.channel.Updates;
- import marimba.util.Props;
- import netscape.security.PrivilegeManager;
- import netscape.security.Target;
-
- final class ApplicationContext implements marimba.channel.ApplicationContext, CastanetConstants {
- private CastanetChannel channel;
- private String dataDir;
- private CastanetEnvironment env;
- Props param;
-
- ApplicationContext(CastanetChannel channel) {
- this.channel = channel;
- this.env = ((CastanetObject)channel).getEnvironment();
- }
-
- public URL getBase() {
- return this.channel.getBase();
- }
-
- public URL getCodeBase() {
- PrivilegeManager privMgr = PrivilegeManager.getPrivilegeManager();
- if (privMgr != null) {
- Target target = Target.findTarget("MarimbaAppContextTarget");
- if (target != null) {
- privMgr.enablePrivilege(target);
- }
- }
-
- String codebase = this.channel.getChannelProperty("codebase");
- if (codebase != null) {
- if (!codebase.endsWith("/")) {
- codebase = codebase + "/";
- }
-
- try {
- return new URL(this.channel.getBase(), codebase);
- } catch (MalformedURLException var3) {
- }
- }
-
- return this.channel.getBase();
- }
-
- public URL getDataBase() {
- return this.channel.getDataBase();
- }
-
- public boolean channelFileExists(String path) {
- PrivilegeManager privMgr = PrivilegeManager.getPrivilegeManager();
- if (privMgr != null) {
- Target target = Target.findTarget("MarimbaAppContextTarget");
- if (target != null) {
- privMgr.enablePrivilege(target);
- }
- }
-
- return this.channel.fileExists(path);
- }
-
- public String[] listChannelDirectory(String directory) {
- PrivilegeManager privMgr = PrivilegeManager.getPrivilegeManager();
- if (privMgr != null) {
- Target target = Target.findTarget("MarimbaAppContextTarget");
- if (target != null) {
- privMgr.enablePrivilege(target);
- }
- }
-
- return this.channel.listDirectory(directory);
- }
-
- public String getDataDirectory() {
- PrivilegeManager privMgr = PrivilegeManager.getPrivilegeManager();
- if (privMgr != null) {
- Target target = Target.findTarget("MarimbaAppContextTarget");
- if (target != null) {
- privMgr.enablePrivilege(target);
- }
- }
-
- if (this.dataDir == null) {
- this.dataDir = this.channel.getDataDirectoryCreate().getPath() + File.separatorChar;
- }
-
- return this.dataDir;
- }
-
- public Updates getPendingUpdates() {
- PrivilegeManager privMgr = PrivilegeManager.getPrivilegeManager();
- if (privMgr != null) {
- Target target = Target.findTarget("MarimbaAppContextTarget");
- if (target != null) {
- privMgr.enablePrivilege(target);
- }
- }
-
- return this.channel.getPendingUpdates();
- }
-
- public String getChannelDirectory() {
- throw new RuntimeException("getChannelDirectory() no longer supported");
- }
-
- public String getServerName() {
- return this.channel.getTransmitter().getAddress();
- }
-
- public String getChannelName() {
- return this.channel.getName();
- }
-
- public synchronized String getParameter(String nm) {
- PrivilegeManager privMgr = PrivilegeManager.getPrivilegeManager();
- Target target = null;
- if (privMgr != null) {
- target = Target.findTarget("MarimbaAppContextTarget");
- if (target != null) {
- privMgr.enablePrivilege(target);
- }
- }
-
- if (this.param == null) {
- this.param = new Props((String)null, (String)null);
- CastanetFile file = this.channel.getFile("parameters.txt");
- if (file != null) {
- InputStream in = file.getInputStream();
-
- try {
- this.param.load(in);
- } catch (IOException var13) {
- } finally {
- try {
- in.close();
- } catch (IOException var12) {
- }
-
- }
- }
- }
-
- String val = this.param.getProperty(nm);
- return val != null ? val : this.channel.getChannelProperty(nm);
- }
-
- public void installData(String dir) {
- PrivilegeManager privMgr = PrivilegeManager.getPrivilegeManager();
- if (privMgr != null) {
- Target target = Target.findTarget("MarimbaAppContextTarget");
- if (target != null) {
- privMgr.enablePrivilege(target);
- }
- }
-
- this.channel.install(dir);
- }
-
- public boolean appendLog(byte[] data) {
- PrivilegeManager privMgr = PrivilegeManager.getPrivilegeManager();
- if (privMgr != null) {
- Target target = Target.findTarget("MarimbaAppContextTarget");
- if (target != null) {
- privMgr.enablePrivilege(target);
- }
- }
-
- return this.channel.appendLog(data);
- }
-
- public boolean appendLog(String data) {
- int len = data.length();
- byte[] buf = new byte[len];
- data.getBytes(0, len, buf, 0);
- PrivilegeManager privMgr = PrivilegeManager.getPrivilegeManager();
- if (privMgr != null) {
- Target target = Target.findTarget("MarimbaAppContextTarget");
- if (target != null) {
- privMgr.enablePrivilege(target);
- }
- }
-
- return this.appendLog(buf);
- }
-
- public byte[] getProfile() {
- PrivilegeManager privMgr = PrivilegeManager.getPrivilegeManager();
- if (privMgr != null) {
- Target target = Target.findTarget("MarimbaAppContextTarget");
- if (target != null) {
- privMgr.enablePrivilege(target);
- }
- }
-
- return this.channel.getProfile();
- }
-
- public boolean setProfile(byte[] data) {
- PrivilegeManager privMgr = PrivilegeManager.getPrivilegeManager();
- if (privMgr != null) {
- Target target = Target.findTarget("MarimbaAppContextTarget");
- if (target != null) {
- privMgr.enablePrivilege(target);
- }
- }
-
- return this.channel.setProfile(data);
- }
-
- public long publishTime() {
- PrivilegeManager privMgr = PrivilegeManager.getPrivilegeManager();
- if (privMgr != null) {
- Target target = Target.findTarget("MarimbaAppContextTarget");
- if (target != null) {
- privMgr.enablePrivilege(target);
- }
- }
-
- return this.channel.getPublishTime();
- }
-
- public long updateTime() {
- PrivilegeManager privMgr = PrivilegeManager.getPrivilegeManager();
- if (privMgr != null) {
- Target target = Target.findTarget("MarimbaAppContextTarget");
- if (target != null) {
- privMgr.enablePrivilege(target);
- }
- }
-
- return this.channel.getUpdateTime();
- }
-
- public void restart() {
- PrivilegeManager privMgr = PrivilegeManager.getPrivilegeManager();
- if (privMgr != null) {
- Target target = Target.findTarget("MarimbaInternalTarget");
- if (target != null) {
- privMgr.enablePrivilege(target);
- }
- }
-
- this.channel.restart();
- }
-
- public void stop() {
- PrivilegeManager privMgr = PrivilegeManager.getPrivilegeManager();
- if (privMgr != null) {
- Target target = Target.findTarget("MarimbaInternalTarget");
- if (target != null) {
- privMgr.enablePrivilege(target);
- }
- }
-
- this.channel.stop();
- }
-
- public void update() {
- if (this.env.networkEnabled()) {
- PrivilegeManager privMgr = PrivilegeManager.getPrivilegeManager();
- if (privMgr != null) {
- Target target = Target.findTarget("MarimbaInternalTarget");
- if (target != null) {
- privMgr.enablePrivilege(target);
- }
- }
-
- this.channel.update();
- }
-
- }
-
- public void startChannel(String serverName, String channelName) {
- new TunerCommand(this.channel.getWorkspace(), 0, serverName, channelName, new String[0]);
- }
-
- public void startChannel(String serverName, String channelName, String[] argv) {
- new TunerCommand(this.channel.getWorkspace(), 0, serverName, channelName, argv);
- }
-
- public void subscribeChannel(String serverName, String channelName) {
- new TunerCommand(this.channel.getWorkspace(), 3, serverName, channelName);
- }
-
- public void unsubscribeChannel(String channelName) {
- new TunerCommand(this.channel.getWorkspace(), 4, this.getServerName(), channelName);
- }
-
- public void removeChannel(String channelName) {
- new TunerCommand(this.channel.getWorkspace(), 6, this.getServerName(), channelName);
- }
-
- public String[] listChannels() {
- PrivilegeManager privMgr = PrivilegeManager.getPrivilegeManager();
- if (privMgr != null) {
- Target target = Target.findTarget("MarimbaAppContextTarget");
- if (target != null) {
- privMgr.enablePrivilege(target);
- }
- }
-
- CastanetChannel[] channels = this.channel.getTransmitter().getChannels(403);
- String[] str = new String[channels.length];
-
- for(int i = channels.length; i-- > 0; str[i] = channels[i].getName()) {
- }
-
- return str;
- }
-
- public String getChannelStatus(String channelName) {
- PrivilegeManager privMgr = PrivilegeManager.getPrivilegeManager();
- Target target = null;
- if (privMgr != null) {
- target = Target.findTarget("MarimbaAppContextTarget");
- if (target != null) {
- privMgr.enablePrivilege(target);
- }
- }
-
- CastanetChannel ch = this.channel.getTransmitter().getChannel(channelName);
- if (target != null) {
- privMgr.disablePrivilege(target);
- }
-
- if (ch != null) {
- switch (ch.getChannelStatus()) {
- case 401:
- return "listed";
- case 402:
- return "unsubscribed";
- case 403:
- return "subscribed";
- case 404:
- case 405:
- case 406:
- case 407:
- case 408:
- return "running";
- }
- }
-
- return null;
- }
-
- public boolean networkEnabled() {
- return this.env.networkEnabled();
- }
-
- public boolean enableNetwork() {
- return this.env.enableNetwork();
- }
-
- public AudioClip getAudioClip(URL url) {
- return this.env.getAudioClip(url);
- }
-
- public Image getImage(URL url) {
- return this.env.getImage(url);
- }
-
- public void showDocument(URL url) {
- this.env.showDocument(url.toExternalForm(), (String)null);
- }
-
- public void showDocument(URL url, String frame) {
- this.env.showDocument(url.toExternalForm(), frame);
- }
-
- public void showDocument(String url) {
- this.env.showDocument(url, (String)null);
- }
-
- public void showDocument(String url, String frame) {
- this.env.showDocument(url, frame);
- }
-
- public void showStatus(String msg) {
- this.env.showStatus(msg);
- }
- }
-