/**
   * Finds the accounting line that matches the capital accounting line.
   *
   * @param capitalAccountLine
   * @return accounting line
   */
  protected AccountingLine findAccountingLine(
      List<AccountingLine> accountingLines, CapitalAccountingLines capitalAccountingLine) {
    AccountingLine accountingLine = null;

    for (AccountingLine line : accountingLines) {
      if (capitalAccountingLine.getChartOfAccountsCode().equals(line.getChartOfAccountsCode())
          && capitalAccountingLine.getAccountNumber().equals(line.getAccountNumber())
          && capitalAccountingLine.getFinancialObjectCode().equals(line.getFinancialObjectCode())
          && capitalAccountingLine
              .getLineType()
              .equalsIgnoreCase(
                  line instanceof SourceAccountingLine
                      ? KFSConstants.SOURCE
                      : KFSConstants.TARGET)) {
        return line;
      }
    }

    return accountingLine;
  }