docs: @Override
      public VirtualConnectionFactory getOutboundVCFactory() {
          if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled()) {
              Tr.entry(tc, "getOutboundVCFactory");
          }
  
          // Handle case where existing vcf has been destroyed.
          if (vcf != null) {
              OutboundVirtualConnectionFactoryImpl outboundVCF = (OutboundVirtualConnectionFactoryImpl) vcf;
              if (outboundVCF.getRefCount() == 0) {
                  // VCF has been destroyed.
                  if (TraceComponent.isAnyTracingEnabled() && tc.isDebugEnabled()) {
                      Tr.debug(tc, "Found destroyed vcf, nulling it out to build another");
                  }
                  vcf = null;
              }
          }
  
          // Check to see if a vcf already exists.
          if (vcf == null) {
              if (TraceComponent.isAnyTracingEnabled() && tc.isDebugEnabled()) {
                  Tr.debug(tc, "Existing vcf not available.  Build one.");
              }
              // Determine if the outbound chain already exists.
              if (outboundChainData != null) {
                  // The outbound chain has already been created. Use its name.
                  try {
                      vcf = framework.getOutboundVCFactory(outboundChainData.getName());
                  } catch (Exception e) {
                      if (TraceComponent.isAnyTracingEnabled() && tc.isDebugEnabled()) {
                          Tr.debug(tc, "Caught exception while getting VCFactory: " + e);
                      }
                      vcf = null;
                  }
              } else {
                  // The outbound chain data does NOT exist.
                  try {
                      // This method will end up calling setOutboundVCFactory to assign
                      // a valid value to vcf.
                      // This method will also call setOutboundChainData.
                      this.framework.prepareEndPoint(this);
                  } catch (ChannelFrameworkException e) {
                      if (TraceComponent.isAnyTracingEnabled() && tc.isDebugEnabled()) {
                          Tr.debug(tc, "Caught exception while preparing CFEndPoint: " + e);
                      }
                      this.vcf = null;
                  }
              }
          } else {
              OutboundVirtualConnectionFactoryImpl outboundVCF = (OutboundVirtualConnectionFactoryImpl) vcf;
              outboundVCF.incrementRefCount();
              if (TraceComponent.isAnyTracingEnabled() && tc.isDebugEnabled()) {
                  Tr.debug(tc, "Found an existing VCF, updating the ref count to " + outboundVCF.getRefCount());
              }
          }
  
          if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled()) {
              Tr.exit(tc, "getOutboundVCFactory");
          }
          return vcf;
      }