Skip to content

Commit

Permalink
#731 - refactoring: convert CsvColumnSettings to record
Browse files Browse the repository at this point in the history
  • Loading branch information
deadlocker8 committed Feb 13, 2023
1 parent 32f9078 commit 14e39ff
Show file tree
Hide file tree
Showing 2 changed files with 5 additions and 88 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -31,17 +31,17 @@ public TransactionImportService(HelpersService helpersService, SettingsService s
public CsvTransaction createCsvTransactionFromCsvRow(CsvRow csvRow, CsvColumnSettings csvColumnSettings, Integer index) throws CsvTransactionParseException
{
final String date = csvRow.getColumns().get(csvColumnSettings.columnDate() - 1);
final Optional<LocalDate> parsedDateOptional = DateParser.parse(date, csvColumnSettings.getDatePattern(), settingsService.getSettings().getLanguage().getLocale());
final Optional<LocalDate> parsedDateOptional = DateParser.parse(date, csvColumnSettings.datePattern(), settingsService.getSettings().getLanguage().getLocale());
if(parsedDateOptional.isEmpty())
{
throw new CsvTransactionParseException(Localization.getString("transactions.import.error.parse.date", index + 1, date, csvColumnSettings.getDatePattern()));
throw new CsvTransactionParseException(Localization.getString("transactions.import.error.parse.date", index + 1, date, csvColumnSettings.datePattern()));
}

final String name = csvRow.getColumns().get(csvColumnSettings.columnName() - 1);
final String description = csvRow.getColumns().get(csvColumnSettings.columnDescription() - 1);

final String amount = csvRow.getColumns().get(csvColumnSettings.columnAmount() - 1);
final Optional<Integer> parsedAmountOptional = AmountParser.parse(amount, csvColumnSettings.getDecimalSeparator().charAt(0), csvColumnSettings.getGroupingSeparator().charAt(0));
final Optional<Integer> parsedAmountOptional = AmountParser.parse(amount, csvColumnSettings.decimalSeparator().charAt(0), csvColumnSettings.groupingSeparator().charAt(0));
if(parsedAmountOptional.isEmpty())
{
throw new CsvTransactionParseException(Localization.getString("transactions.import.error.parse.amount", index + 1));
Expand Down
Original file line number Diff line number Diff line change
@@ -1,89 +1,6 @@
package de.deadlocker8.budgetmaster.transactions.csvimport;

import java.util.Objects;

public final class CsvColumnSettings
public record CsvColumnSettings(int columnDate, String datePattern, int columnName, int columnAmount,
String decimalSeparator, String groupingSeparator, int columnDescription)
{
private final int columnDate;
private final String datePattern;
private final int columnName;
private final int columnAmount;
private final String decimalSeparator;
private final String groupingSeparator;
private final int columnDescription;

public CsvColumnSettings(int columnDate, String datePattern, int columnName, int columnAmount, String decimalSeparator, String groupingSeparator, int columnDescription)
{
this.columnDate = columnDate;
this.datePattern = datePattern;
this.columnName = columnName;
this.columnAmount = columnAmount;
this.decimalSeparator = decimalSeparator;
this.groupingSeparator = groupingSeparator;
this.columnDescription = columnDescription;
}

public int columnDate()
{
return columnDate;
}

public String getDatePattern()
{
return datePattern;
}

public int columnName()
{
return columnName;
}

public int columnAmount()
{
return columnAmount;
}

public String getDecimalSeparator()
{
return decimalSeparator;
}

public String getGroupingSeparator()
{
return groupingSeparator;
}

public int columnDescription()
{
return columnDescription;
}

@Override
public boolean equals(Object o)
{
if(this == o) return true;
if(o == null || getClass() != o.getClass()) return false;
CsvColumnSettings that = (CsvColumnSettings) o;
return columnDate == that.columnDate && columnName == that.columnName && columnAmount == that.columnAmount && columnDescription == that.columnDescription && Objects.equals(datePattern, that.datePattern) && Objects.equals(decimalSeparator, that.decimalSeparator) && Objects.equals(groupingSeparator, that.groupingSeparator);
}

@Override
public int hashCode()
{
return Objects.hash(columnDate, datePattern, columnName, columnAmount, decimalSeparator, groupingSeparator, columnDescription);
}

@Override
public String toString()
{
return "CsvColumnSettings{" +
"columnDate=" + columnDate +
", datePattern='" + datePattern + '\'' +
", columnName=" + columnName +
", columnAmount=" + columnAmount +
", decimalSeparator='" + decimalSeparator + '\'' +
", groupingSeparator='" + groupingSeparator + '\'' +
", columnDescription=" + columnDescription +
'}';
}
}

0 comments on commit 14e39ff

Please sign in to comment.