Files
HW-09-Advanced-Multithreading/src/main/java/dev/banking/model/TransferTransaction.java
T

57 lines
1.4 KiB
Java

package dev.banking.model;
/**
* Represents a transfer operation between two accounts.
*/
public final class TransferTransaction
extends Transaction {
private final int sourceAccountId;
private final int targetAccountId;
public TransferTransaction(
int sourceAccountId,
int targetAccountId,
int amount
) {
super(amount);
if (sourceAccountId < 0) {
throw new IllegalArgumentException(
"Invalid source account id."
);
}
if (targetAccountId < 0) {
throw new IllegalArgumentException(
"Invalid target account id."
);
}
if (sourceAccountId == targetAccountId) {
throw new IllegalArgumentException(
"Source and target accounts must be different."
);
}
this.sourceAccountId = sourceAccountId;
this.targetAccountId = targetAccountId;
}
public int getSourceAccountId() {
return sourceAccountId;
}
public int getTargetAccountId() {
return targetAccountId;
}
@Override
public String toString() {
return "TransferTransaction{" +
"sourceAccountId=" + sourceAccountId +
", targetAccountId=" + targetAccountId +
", amount=" + getAmount() +
'}';
}
}