code: protected Map<String, List<String>> initProcessLists(List<RabbitmqClusterContext> contextList)
              throws RabbitmqCommunicateException
      {
          if (this.contextMap == null)
          {
              this.contextMap = initContextMap(contextList);
          }
  
          Map<String, List<String>> processLists = new HashMap<String, List<String>>();
  
          LinkedList<String> processList = null;
          String connectionProcess = null;
          int processIndex = 0;
  
          for (String queueName : this.contextMap.keySet())
          {
              //エンティティ内のインスタンスを変更しないよう、ディープコピーする。
              RabbitmqClusterContext context = this.contextMap.get(queueName);
              processList = new LinkedList<String>(context.getMqProcessList());
  
              //接続先RabbitMQプロセスが何番目に定義されているかを確認する。
              //デフォルトでは先頭(0)
              processIndex = 0;
              connectionProcess = context.getConnectionProcessMap().get(getClientId(queueName));
              if (connectionProcess != null)
              {
                  processIndex = processList.indexOf(connectionProcess);
              }
  
              //接続先RabbitMQプロセスが先頭となるよう、RabbitMQプロセス一覧を並び替える。
              LinkedList<String> backwardProcesses = new LinkedList<String>(processList.subList(0,
                      processIndex));
              LinkedList<String> forwardProcesses = new LinkedList<String>(processList.subList(
                      processIndex, processList.size()));
              forwardProcesses.addAll(backwardProcesses);
              processList = new LinkedList<String>(forwardProcesses);
  
              processLists.put(queueName, processList);
          }
  
          return processLists;
      }
docs: フェイルオーバで接続する順番にした状態の、キューを保持するクラスタのRabbitMQプロセス一覧を生成する。
  
  @param contextList クラスタ構成定義一覧
  @return RabbitMQプロセス一覧
  @throws RabbitmqCommunicateException 定義したキュー名が一意でない場合