/*
   * @see org.kuali.keyvalues.KeyValuesFinder#getKeyValues()
   */
  public List getKeyValues() {

    // get a list of all CreditCardTypes
    List<CreditCardType> codes =
        (List<CreditCardType>)
            SpringContext.getBean(KeyValuesService.class).findAll(CreditCardType.class);
    // copy the list of codes before sorting, since we can't modify the results from this method
    if (codes == null) {
      codes = new ArrayList<CreditCardType>(0);
    } else {
      codes = new ArrayList<CreditCardType>(codes);
    }

    // sort using comparator
    Collections.sort(codes, new CreditCardTypeComparator());

    // create a new list (code, name)
    List<KeyValue> labels = new ArrayList<KeyValue>();
    labels.add(new ConcreteKeyValue("", "")); // blank first entry

    for (CreditCardType creditCardType : codes) {
      if (creditCardType.isActive()) {
        labels.add(
            new ConcreteKeyValue(
                creditCardType.getFinancialDocumentCreditCardTypeCode(),
                creditCardType.getFinancialDocumentCreditCardTypeCode()
                    + "-"
                    + creditCardType.getFinancialDocumentCreditCardCompanyName()));
      }
    }

    return labels;
  }