code: @SafeVarargs
      @SuppressWarnings({ "ProhibitedExceptionDeclared", "ProhibitedExceptionThrown" })
      public static <Value> void operate(final HandledOperator handledOperator, final Value value,
                                         final Observer<Value>... observers)
          throws RuntimeException {
          try {
              for (final Observer<Value> observer : observers)
                  observer.before(value);
  
              handledOperator.operate();
  
              for (final Observer<Value> observer : observers)
                  observer.afterSuccess(value);
          }
          catch (final OperatorException exception) {
              // if "legal" exception is thrown
              for (final Observer<Value> observer : observers)
                  observer.afterFailure(value, exception);
  
              throw exception.getCause();
          }
      }
docs: Operates on the specified Value using the specified {@link HandledOperator} .
  
  @param <Value>
  type of the value
  
  @param handledOperator
  {@link HandledOperator} performing the operation
  
  @param value
  {@link Value} operated on
  
  @param observers
  comma separated sequence of {@link Observer} instances attending the operation
  
  @throws RuntimeException
  <ul>
  <li>if {@code operator} throws an {@link OperatorException} with this {@link RuntimeException} as its
  cause</li>
  <li>if {@code operator} throws this {@link RuntimeException}</li>
  <li>if an {@link Observer} in {@code observers} throws this {@link RuntimeException}</li>
  </ul>