code: private boolean isAvailable(
                                  BaseDestinationHandler destinationHandler,
                                  DestinationAvailability destinationAvailability)
      {
          if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled())
              SibTr.entry(tc, "isAvailable", new Object[] { destinationHandler, destinationAvailability });
  
          boolean sendAvailable = false;
          boolean receiveAvailable = false;
  
          if (destinationAvailability == DestinationAvailability.SEND
              || destinationAvailability == DestinationAvailability.SEND_AND_RECEIVE)
          {
              // Destination must be a non-mediated destination with a local queue point
              if (destinationHandler.hasLocal())
              {
                  sendAvailable = true;
              }
  
              if (sendAvailable)
              {
                  if ((destinationHandler.definition.isSendAllowed())
                      && (isLocalizationAvailable(destinationHandler, destinationAvailability)))
                  {
                      sendAvailable = true;
                  }
                  else
                  {
                      sendAvailable = false;
                  }
              }
          }
  
          if (destinationAvailability == DestinationAvailability.RECEIVE
              || destinationAvailability == DestinationAvailability.SEND_AND_RECEIVE)
          {
              // Destination must have a queue point on the ME to which the connection is connected
              if (destinationHandler.hasLocal())
              {
                  receiveAvailable = true;
              }
  
              if (receiveAvailable)
              {
                  if ((destinationHandler.definition.isReceiveAllowed())
                      && (isLocalizationAvailable(destinationHandler, destinationAvailability)))
                  {
                      receiveAvailable = true;
                  }
                  else
                  {
                      receiveAvailable = false;
                  }
              }
          }
  
          if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled())
              SibTr.exit(tc, "isAvailable", new Object[] { new Boolean(sendAvailable || receiveAvailable) });
  
          return (sendAvailable || receiveAvailable);
      }
docs: /*
  This method will check whether a destination is available.