Example #1
0
 /**
  * Determine if the channel is enabled.
  *
  * <p>Checks all groups to which the channel belongs. If they're all disabled, so is the channel.
  */
 final void computeEnablement() {
   // 'Active' channels always stay enabled
   if (enablement != Enablement.Passive) return;
   for (ArchiveGroup group : groups) {
     if (group.isEnabled()) { // Found at least one enabled group
       updateEnabledState(true);
       return;
     }
   }
   // else: All groups are disabled
   updateEnabledState(false);
 }
Example #2
0
 /** Enable or disable groups based on received value */
 private final void handleEnablement(final VType value) {
   if (enablement == Enablement.Passive)
     throw new Error("Not to be called when passive"); // $NON-NLS-1$
   // Get boolean value (true <==> >0.0)
   final double number = VTypeHelper.toDouble(value);
   final boolean yes = number > 0.0;
   // Do we enable or disable based on that value?
   final boolean enable = enablement == Enablement.Enabling ? yes : !yes;
   // Check which group needs to _change_
   for (ArchiveGroup group : groups) {
     if (group.isEnabled() != enable) group.enable(enable);
   }
 }
Example #3
0
 /** Tell channel that it no longer belogs to group */
 final void removeGroup(final ArchiveGroup group) {
   if (!groups.remove(group))
     throw new Error("Channel " + getName() + " doesn't belong to group" + group.getName());
 }