diff options
Diffstat (limited to 'dicore3/command/src/main/java/io/dico/dicore/command/ChildCommandAddress.java')
-rw-r--r-- | dicore3/command/src/main/java/io/dico/dicore/command/ChildCommandAddress.java | 16 |
1 files changed, 15 insertions, 1 deletions
diff --git a/dicore3/command/src/main/java/io/dico/dicore/command/ChildCommandAddress.java b/dicore3/command/src/main/java/io/dico/dicore/command/ChildCommandAddress.java index 022904e..9a26f61 100644 --- a/dicore3/command/src/main/java/io/dico/dicore/command/ChildCommandAddress.java +++ b/dicore3/command/src/main/java/io/dico/dicore/command/ChildCommandAddress.java @@ -10,6 +10,7 @@ public class ChildCommandAddress extends ModifiableCommandAddress { final List<String> namesModifiable = new ArrayList<>(4); List<String> names = namesModifiable; Command command; + boolean isCommandTrailing; public ChildCommandAddress() { } @@ -89,7 +90,7 @@ public class ChildCommandAddress extends ModifiableCommandAddress { } public void finalizeNames() { - if (names instanceof ArrayList) { + if (names == namesModifiable) { names = Collections.unmodifiableList(namesModifiable); } } @@ -103,4 +104,17 @@ public class ChildCommandAddress extends ModifiableCommandAddress { this.parent = parent; } + @Override + public boolean isCommandTrailing() { + return isCommandTrailing; + } + + @Override + public void setCommandTrailing(boolean trailing) { + if (hasChildren()) { + throw new IllegalStateException("Address already has children, this property can't be modified"); + } + isCommandTrailing = trailing; + } + } |