|
3 | 3 | import java.util.ArrayList; |
4 | 4 |
|
5 | 5 | public interface IVitaminHolder { |
6 | | - ArrayList<VitaminLocation> getVitamins() ; |
| 6 | + ArrayList<VitaminLocation> getVitamins(); |
| 7 | + |
7 | 8 | default void addVitamin(VitaminLocation location) { |
8 | | - for(VitaminLocation v:getVitamins()) { |
9 | | - if(v.getName().contentEquals(location.getName())) { |
10 | | - new RuntimeException("Vitamin Name "+v.getName()+"already exists"); |
| 9 | + if(hasVitamin(location)) |
| 10 | + throw new RuntimeException("Vitamin Name "+location.getName()+"already exists"); |
| 11 | + addVitaminInternal( location); |
| 12 | + } |
| 13 | + |
| 14 | + default boolean hasVitamin(VitaminLocation location) { |
| 15 | + for (VitaminLocation v : getVitamins()) { |
| 16 | + String name = v.getName(); |
| 17 | + String name2 = location.getName(); |
| 18 | + if (name.contentEquals(name2)) { |
| 19 | + return true; |
11 | 20 | } |
12 | 21 | } |
13 | | - addVitaminInternal( location); |
| 22 | + return false; |
14 | 23 | } |
| 24 | + |
15 | 25 | void addVitaminInternal(VitaminLocation location); |
| 26 | + |
16 | 27 | void removeVitamin(VitaminLocation loc); |
17 | | - default ArrayList<VitaminLocation> getVitamins(VitaminFrame frame){ |
| 28 | + |
| 29 | + default ArrayList<VitaminLocation> getVitamins(VitaminFrame frame) { |
18 | 30 | ArrayList<VitaminLocation> copy = new ArrayList<>(); |
19 | | - for(VitaminLocation v:getVitamins()) { |
20 | | - if(v.getFrame()==frame) |
| 31 | + for (VitaminLocation v : getVitamins()) { |
| 32 | + if (v.getFrame() == frame) |
21 | 33 | copy.add(v); |
22 | 34 | } |
23 | 35 | return copy; |
24 | 36 | } |
25 | | - default ArrayList<VitaminLocation> getOriginVitamins(){ |
| 37 | + |
| 38 | + default ArrayList<VitaminLocation> getOriginVitamins() { |
26 | 39 | return getVitamins(VitaminFrame.LinkOrigin); |
27 | 40 | } |
28 | | - default ArrayList<VitaminLocation> getDefaultVitamins(){ |
| 41 | + |
| 42 | + default ArrayList<VitaminLocation> getDefaultVitamins() { |
29 | 43 | return getVitamins(VitaminFrame.DefaultFrame); |
30 | 44 | } |
31 | | - default ArrayList<VitaminLocation> getPreviousLinkVitamins(){ |
| 45 | + |
| 46 | + default ArrayList<VitaminLocation> getPreviousLinkVitamins() { |
32 | 47 | return getVitamins(VitaminFrame.previousLinkTip); |
33 | 48 | } |
34 | 49 | } |
0 commit comments