code: public AmqpChannel bindQueue(String queue, String exchange, String routingKey, boolean noWait, AmqpArguments arguments) {
          Object[] args = {0, queue, exchange, routingKey, noWait, arguments};
          WrappedByteBuffer bodyArg = null;
          HashMap<String, Object> headersArg = null;
  
          String methodName = "bindQueue";
          String methodId = "50" + "20";
          AmqpMethod amqpMethod = MethodLookup.LookupMethod(methodId);
          Object[] methodArguments = {this, amqpMethod, this.id, args, bodyArg, headersArg};
  
          boolean hasnowait = false;
          for (int i = 0; i < amqpMethod.allParameters.size(); i++) {
              String argname = amqpMethod.allParameters.get(i).name;
              if (argname == "noWait") {
                  hasnowait = true;
                  break;
              }
          }
  
          if (client.getReadyState() == ReadyState.OPEN) {
              asyncClient.enqueueAction(methodName, "channelWrite", methodArguments, null, null);
          }
  
          if (hasnowait && noWait) {
              asyncClient.enqueueAction("nowait", null, null, null, null);
          }
          return this;
      }
docs: * This method binds a queue to an exchange. Until a queue is bound it will not receive any messages. In a classic messaging model, store-and-forward
  queues are bound to a direct exchange and subscription queues are bound to a topic exchange.