From 14e39fffbe928273c2f6f1cd186da7adff049b53 Mon Sep 17 00:00:00 2001
From: Robert Goldmann <deadlocker@gmx.de>
Date: Mon, 13 Feb 2023 23:34:42 +0100
Subject: [PATCH] #731 - refactoring: convert CsvColumnSettings to record

---
 .../TransactionImportService.java             |  6 +-
 .../csvimport/CsvColumnSettings.java          | 87 +------------------
 2 files changed, 5 insertions(+), 88 deletions(-)

diff --git a/BudgetMasterServer/src/main/java/de/deadlocker8/budgetmaster/transactions/TransactionImportService.java b/BudgetMasterServer/src/main/java/de/deadlocker8/budgetmaster/transactions/TransactionImportService.java
index 747cc5fcd..26604fd76 100644
--- a/BudgetMasterServer/src/main/java/de/deadlocker8/budgetmaster/transactions/TransactionImportService.java
+++ b/BudgetMasterServer/src/main/java/de/deadlocker8/budgetmaster/transactions/TransactionImportService.java
@@ -31,17 +31,17 @@ public class TransactionImportService
 	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));
diff --git a/BudgetMasterServer/src/main/java/de/deadlocker8/budgetmaster/transactions/csvimport/CsvColumnSettings.java b/BudgetMasterServer/src/main/java/de/deadlocker8/budgetmaster/transactions/csvimport/CsvColumnSettings.java
index 7ecc044fa..9eabb5695 100644
--- a/BudgetMasterServer/src/main/java/de/deadlocker8/budgetmaster/transactions/csvimport/CsvColumnSettings.java
+++ b/BudgetMasterServer/src/main/java/de/deadlocker8/budgetmaster/transactions/csvimport/CsvColumnSettings.java
@@ -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 +
-				'}';
-	}
 }
-- 
GitLab