| 1 | package com.takenoko.inventory; | |
| 2 | ||
| 3 | import com.takenoko.layers.tile.ImprovementType; | |
| 4 | import java.util.ArrayList; | |
| 5 | import java.util.List; | |
| 6 | ||
| 7 | /** | |
| 8 | * InventoryImprovements contains the improvements picked by the player after getting Cloudy weather | |
| 9 | * InventoryImprovements is an attribute in Inventory | |
| 10 | */ | |
| 11 | public class InventoryImprovements extends ArrayList<ImprovementType> { | |
| 12 | public InventoryImprovements() { | |
| 13 | super(); | |
| 14 | } | |
| 15 | ||
| 16 | public InventoryImprovements(List<ImprovementType> inventoryImprovements) { | |
| 17 | this.addAll(inventoryImprovements); | |
| 18 | } | |
| 19 | ||
| 20 | /** | |
| 21 | * @return copy of the stash of improvement stored by the bot | |
| 22 | */ | |
| 23 | public InventoryImprovements copy() { | |
| 24 |
1
1. copy : replaced return value with null for com/takenoko/inventory/InventoryImprovements::copy → KILLED |
return new InventoryImprovements(this); |
| 25 | } | |
| 26 | ||
| 27 | /** | |
| 28 | * @param pickedImprovement store the chosen improvement in the inventory | |
| 29 | */ | |
| 30 | public void store(ImprovementType pickedImprovement) { | |
| 31 | super.add(pickedImprovement); | |
| 32 | } | |
| 33 | ||
| 34 | /** | |
| 35 | * @param toUse remove used improvement from list or throw exception if not possessed | |
| 36 | */ | |
| 37 | public void use(ImprovementType toUse) { | |
| 38 |
1
1. use : negated conditional → KILLED |
if (!contains(toUse)) { |
| 39 | throw new IllegalArgumentException( | |
| 40 | "You do not possess any improvements of type: " + toUse); | |
| 41 | } | |
| 42 | super.remove(toUse); | |
| 43 | } | |
| 44 | ||
| 45 | public boolean hasImprovement(ImprovementType improvementType) { | |
| 46 |
2
1. hasImprovement : replaced boolean return with false for com/takenoko/inventory/InventoryImprovements::hasImprovement → KILLED 2. hasImprovement : replaced boolean return with true for com/takenoko/inventory/InventoryImprovements::hasImprovement → KILLED |
return contains(improvementType); |
| 47 | } | |
| 48 | ||
| 49 | public int getImprovementCount(ImprovementType improvementType) { | |
| 50 |
1
1. getImprovementCount : replaced int return with 0 for com/takenoko/inventory/InventoryImprovements::getImprovementCount → TIMED_OUT |
return Math.toIntExact( |
| 51 |
2
1. lambda$getImprovementCount$0 : negated conditional → TIMED_OUT 2. lambda$getImprovementCount$0 : replaced boolean return with true for com/takenoko/inventory/InventoryImprovements::lambda$getImprovementCount$0 → TIMED_OUT |
this.stream().filter(improvement -> improvement == improvementType).count()); |
| 52 | } | |
| 53 | } | |
Mutations | ||
| 24 |
1.1 |
|
| 38 |
1.1 |
|
| 46 |
1.1 2.2 |
|
| 50 |
1.1 |
|
| 51 |
1.1 2.2 |