public SingleVersionMethod(AmqpMethod amqpMethod, AmqpVersion amqpVersion, Generator generator) {
    _amqpMethod = amqpMethod;
    _amqpVersion = amqpVersion;
    _generator = generator;

    AmqpOrdinalVersionMap indexMap = amqpMethod.getIndexMap();
    int methodId = 0;
    for (Entry<Integer, AmqpVersionSet> entry : indexMap.entrySet()) {
      if (entry.getValue().contains(_amqpVersion)) {
        methodId = entry.getKey();
        break;
      }
    }
    _methodId = methodId;

    Collection<AmqpField> fields = _amqpMethod.getFieldMap().values();

    for (AmqpField field : fields) {
      _fieldList.add(new SingleVersionField(field, _amqpVersion, _generator));
    }

    Collections.sort(
        _fieldList,
        new Comparator<SingleVersionField>() {
          public int compare(SingleVersionField field1, SingleVersionField field2) {
            return field1.getPosition() - field2.getPosition();
          }
        });

    ConsolidatedField lastField = null;
    int bitfieldNum = 0;
    for (SingleVersionField field : _fieldList) {
      String domainType = field.getDomainType();
      if (!domainType.equals("bit")) {
        lastField = new ConsolidatedField(_generator, field.getName(), field.getDomainType());
        _consolidatedFields.add(lastField);
      } else if (lastField == null || !lastField.getType().equals("bitfield")) {
        lastField =
            new ConsolidatedField(
                _generator,
                domainType.equals("bit") ? "bitfield" + bitfieldNum++ : field.getName(),
                domainType.equals("bit") ? "bitfield" : field.getDomainType(),
                field.getName());
        _consolidatedFields.add(lastField);
      } else {
        lastField.add(field.getName());
      }
      _fieldNameToConsolidatedFieldMap.put(field.getName(), lastField);
    }
  }
 public String getName() {
   return _amqpMethod.getName();
 }
 public boolean isClientMethod() {
   return _amqpMethod.isClientMethod(_amqpVersion);
 }
 public boolean isServerMethod() {
   return _amqpMethod.isServerMethod(_amqpVersion);
 }