public List<Channel> getChannels() throws Exception { ArrayList<Channel> r = new ArrayList<>(); synchronized (channelStatus) { for (ChannelStatus cStatus : channelStatus.values()) r.add(cStatus.channel()); } return r; }
public void initialize() throws Exception { configFilesDir.mkdirs(); luceneFilesDirectory.mkdirs(); tempDirectory.mkdirs(); luceneUpdater.open(luceneFilesDirectory); List<Channel> channels = loadChannels(); for (Channel channel : channels) { ChannelStatus cStatus = new ChannelStatus(); cStatus.channel(channel); channelStatus.put(channel.getName(), cStatus); } }
public void renameChannel(Channel channel, String newName) throws Exception { synchronized (channelStatus) { luceneUpdater.renameChannel(channel.getName(), newName); new File(configFilesDir, channel.getName() + ".config").delete(); ChannelStatus cStatus = channelStatus.remove(channel.getName()); if (cStatus != null) { channel.setName(newName); cStatus.channel(channel); channelStatus.put(newName, cStatus); saveChannel(channel); } } }
public void saveChannel(Channel channel) throws Exception { synchronized (channelStatus) { FileOutputStream out = new FileOutputStream( new File(Config.getInstance().configFilesDir, channel.getName() + ".config")); try { saveChannel(channel, out); if (!channelStatus.containsKey(channel.getName())) { ChannelStatus cStatus = new ChannelStatus(); cStatus.channel(channel); channelStatus.put(channel.getName(), cStatus); } } finally { IOUtils.closeQuietly(out); } } }