mirror of
https://github.com/SimplexDevelopment/FreedomNetworkSuite.git
synced 2024-12-22 11:37:38 +00:00
Add financial transaction classes
This commit is contained in:
parent
2f18e4d8ef
commit
8b692d1b11
@ -0,0 +1,30 @@
|
||||
package me.totalfreedom.fossil.economy;
|
||||
|
||||
import me.totalfreedom.economy.CompletedTransaction;
|
||||
import me.totalfreedom.economy.Transaction;
|
||||
import me.totalfreedom.economy.TransactionResult;
|
||||
|
||||
public class SimpleCompletedTransaction implements CompletedTransaction
|
||||
{
|
||||
private final Transaction transaction;
|
||||
private final TransactionResult transactionResult;
|
||||
|
||||
public SimpleCompletedTransaction(Transaction transaction, TransactionResult transactionResult)
|
||||
{
|
||||
this.transaction = transaction.copy();
|
||||
this.transactionResult = transactionResult;
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public Transaction getTransaction()
|
||||
{
|
||||
return transaction.copy();
|
||||
}
|
||||
|
||||
@Override
|
||||
public TransactionResult getResult()
|
||||
{
|
||||
return transactionResult;
|
||||
}
|
||||
}
|
@ -0,0 +1,56 @@
|
||||
package me.totalfreedom.fossil.economy;
|
||||
|
||||
import me.totalfreedom.economy.EconomicEntity;
|
||||
import me.totalfreedom.economy.Transaction;
|
||||
|
||||
import java.util.concurrent.atomic.AtomicLong;
|
||||
|
||||
public class SimpleTransaction implements Transaction
|
||||
{
|
||||
private final EconomicEntity source;
|
||||
private final EconomicEntity destination;
|
||||
private final AtomicLong transferAmount;
|
||||
|
||||
public SimpleTransaction(EconomicEntity source, EconomicEntity destination, long transferAmount)
|
||||
{
|
||||
this.source = source;
|
||||
this.destination = destination;
|
||||
this.transferAmount = new AtomicLong(transferAmount);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Transaction copy()
|
||||
{
|
||||
return new SimpleTransaction(source, destination, transferAmount.get());
|
||||
}
|
||||
|
||||
@Override
|
||||
public EconomicEntity getSource()
|
||||
{
|
||||
return this.source;
|
||||
}
|
||||
|
||||
@Override
|
||||
public EconomicEntity getDestination()
|
||||
{
|
||||
return this.destination;
|
||||
}
|
||||
|
||||
@Override
|
||||
public long getTransferAmount()
|
||||
{
|
||||
return this.transferAmount.get();
|
||||
}
|
||||
|
||||
@Override
|
||||
public long addBalance(long amount)
|
||||
{
|
||||
return this.transferAmount.addAndGet(amount);
|
||||
}
|
||||
|
||||
@Override
|
||||
public long removeBalance(long amount)
|
||||
{
|
||||
return this.addBalance(-amount);
|
||||
}
|
||||
}
|
@ -0,0 +1,42 @@
|
||||
package me.totalfreedom.fossil.economy;
|
||||
|
||||
import me.totalfreedom.economy.TransactionResult;
|
||||
import net.kyori.adventure.text.Component;
|
||||
import net.kyori.adventure.text.format.NamedTextColor;
|
||||
|
||||
public class SimpleTransactionResult implements TransactionResult
|
||||
{
|
||||
private final String message;
|
||||
private final Component component;
|
||||
private final boolean successful;
|
||||
|
||||
public SimpleTransactionResult(String message, boolean successful)
|
||||
{
|
||||
this(message, Component.text(message, successful ? NamedTextColor.GREEN : NamedTextColor.RED), successful);
|
||||
}
|
||||
|
||||
public SimpleTransactionResult(String message, Component component, boolean successful)
|
||||
{
|
||||
this.message = message;
|
||||
this.component = component;
|
||||
this.successful = successful;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getMessage()
|
||||
{
|
||||
return message;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isSuccessful()
|
||||
{
|
||||
return successful;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Component getComponent()
|
||||
{
|
||||
return component;
|
||||
}
|
||||
}
|
@ -0,0 +1,8 @@
|
||||
package me.totalfreedom.economy;
|
||||
|
||||
public interface CompletedTransaction
|
||||
{
|
||||
Transaction getTransaction();
|
||||
|
||||
TransactionResult getResult();
|
||||
}
|
@ -0,0 +1,16 @@
|
||||
package me.totalfreedom.economy;
|
||||
|
||||
public interface Transaction
|
||||
{
|
||||
Transaction copy();
|
||||
|
||||
EconomicEntity getSource();
|
||||
|
||||
EconomicEntity getDestination();
|
||||
|
||||
long getTransferAmount();
|
||||
|
||||
long addBalance(final long amount);
|
||||
|
||||
long removeBalance(final long amount);
|
||||
}
|
@ -0,0 +1,12 @@
|
||||
package me.totalfreedom.economy;
|
||||
|
||||
import net.kyori.adventure.text.Component;
|
||||
|
||||
public interface TransactionResult
|
||||
{
|
||||
String getMessage();
|
||||
|
||||
boolean isSuccessful();
|
||||
|
||||
Component getComponent();
|
||||
}
|
Loading…
Reference in New Issue
Block a user