init
This commit is contained in:
56
source/src/main/model/Amount.java
Normal file
56
source/src/main/model/Amount.java
Normal file
@@ -0,0 +1,56 @@
|
||||
package model;
|
||||
|
||||
/**
|
||||
* Represents a monetary amount. Immutable; all arithmetic returns new instances.
|
||||
*/
|
||||
public class Amount {
|
||||
private final double value;
|
||||
|
||||
/**
|
||||
* Creates an Amount with the specified value.
|
||||
*
|
||||
* @param value The monetary value.
|
||||
*/
|
||||
public Amount(double value) {
|
||||
this.value = value;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns a new Amount that is the sum of this amount and the given amount.
|
||||
*
|
||||
* @param other The amount to add.
|
||||
* @return A new Amount representing the sum.
|
||||
*/
|
||||
public Amount add(Amount other) {
|
||||
return new Amount(this.value + other.value);
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns a new Amount that is the difference of this amount minus the given amount.
|
||||
*
|
||||
* @param other The amount to subtract.
|
||||
* @return A new Amount representing the difference.
|
||||
*/
|
||||
public Amount subtract(Amount other) {
|
||||
return new Amount(this.value - other.value);
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the raw numeric value of this amount.
|
||||
*
|
||||
* @return The monetary value as a double.
|
||||
*/
|
||||
public double getValue() {
|
||||
return value;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns a formatted string representation of this amount.
|
||||
*
|
||||
* @return A string in the form {@code "123.45 SEK"}.
|
||||
*/
|
||||
@Override
|
||||
public String toString() {
|
||||
return String.format("%.2f SEK", value);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user