docs: @Override
      public int discriminate(VirtualConnection vcx, Object discrimData, ConnectionLink ccl) throws DiscriminationProcessException {
          InboundVirtualConnection vc = null;
          if (vcx instanceof InboundVirtualConnection) {
              vc = (InboundVirtualConnection) vcx;
          }
  
          if (discriminationAlgorithm == null) {
              DiscriminationProcessException e = new DiscriminationProcessException("No Discriminators in this group or the group was not properly started");
              FFDCFilter.processException(e, getClass().getName() + ".discriminate", "202", this, new Object[] { vc });
              throw e;
          }
          if (this.changed) {
              // if we have changed the list of channels since the last discrim attempt
              // on
              // this vc, clear the previous status information
              if (null != vc) {
                  vc.setDiscriminatorStatus(null);
                  vc.setDiscriminationGroup(null);
              }
              this.changed = false;
          }
  
          if (vc == null && discriminationAlgorithm instanceof SingleDiscriminatorAlgorithm)
              return ((SingleDiscriminatorAlgorithm) discriminationAlgorithm).discriminate(vcx, discrimData, ccl);
          else
              return discriminationAlgorithm.discriminate(vc, discrimData, ccl);
      }