code: public void resolveBeanClass(AutowireRule autowireRule) throws IllegalRuleException {
          if (autowireRule.getTargetType() == AutowireTargetType.FIELD) {
              if (autowireRule.isRequired()) {
                  Class<?>[] types = autowireRule.getTypes();
                  String[] qualifiers = autowireRule.getQualifiers();
                  reserveBeanReference(qualifiers[0], types[0], autowireRule);
              }
          } else if (autowireRule.getTargetType() == AutowireTargetType.FIELD_VALUE) {
              Token token = autowireRule.getToken();
              resolveBeanClass(token, autowireRule);
          } else if (autowireRule.getTargetType() == AutowireTargetType.METHOD ||
                  autowireRule.getTargetType() == AutowireTargetType.CONSTRUCTOR) {
              if (autowireRule.isRequired()) {
                  Class<?>[] types = autowireRule.getTypes();
                  String[] qualifiers = autowireRule.getQualifiers();
                  for (int i = 0; i < types.length; i++) {
                      reserveBeanReference(qualifiers[i], types[i], autowireRule);
                  }
              }
          }
      }
docs: Resolve bean class for the autowire rule.
  
  @param autowireRule the autowire rule
  @throws IllegalRuleException if an illegal rule is found