From 5984bc2774af61af2726c8ab07130c19c4281122 Mon Sep 17 00:00:00 2001 From: Olof Larsson Date: Fri, 24 Apr 2015 01:06:57 +0200 Subject: [PATCH] Fix some generics. Avoid an NPE. --- .../massivecore/cmd/arg/ARList.java | 30 +++++++++---------- .../massivecore/cmd/arg/ARSet.java | 30 +++++++++---------- .../massivecraft/massivecore/util/MUtil.java | 3 ++ 3 files changed, 33 insertions(+), 30 deletions(-) diff --git a/src/com/massivecraft/massivecore/cmd/arg/ARList.java b/src/com/massivecraft/massivecore/cmd/arg/ARList.java index 60cd6a54..f2445ca6 100644 --- a/src/com/massivecraft/massivecore/cmd/arg/ARList.java +++ b/src/com/massivecraft/massivecore/cmd/arg/ARList.java @@ -8,27 +8,27 @@ import org.bukkit.command.CommandSender; import com.massivecraft.massivecore.MassiveException; -public class ARList extends ARAbstract> +public class ARList extends ARAbstract> { // -------------------------------------------- // // FIELDS // -------------------------------------------- // - protected AR innerArgReader; - public AR getInnerArgReader() { return this.innerArgReader; } + protected AR elementArgReader; + public AR getElementArgReader() { return this.elementArgReader; } // -------------------------------------------- // // INSTANCE & CONSTRUCT // -------------------------------------------- // - public static ARList get(AR innerArgReader) + public static ARList get(AR elementArgReader) { - return new ARList(innerArgReader); + return new ARList(elementArgReader); } - public ARList(AR innerArgReader) + public ARList(AR elementArgReader) { - this.innerArgReader = innerArgReader; + this.elementArgReader = elementArgReader; } // -------------------------------------------- // @@ -38,25 +38,25 @@ public class ARList extends ARAbstract> @Override public String getTypeName() { - return innerArgReader.getTypeName(); + return elementArgReader.getTypeName(); } // NOTE: Must be used with argConcatFrom and setErrorOnTooManyArgs(false). @Override - public List read(String arg, CommandSender sender) throws MassiveException + public List read(String arg, CommandSender sender) throws MassiveException { // Split into inner args - String[] innerArgs = arg.split("\\s+"); + String[] elementArgs = arg.split("\\s+"); // Create Ret - List ret = new ArrayList(); + List ret = new ArrayList(); // For Each - for (String innerArg : innerArgs) + for (String elementArg : elementArgs) { - T innerArgResult = this.getInnerArgReader().read(innerArg, sender); + E element = this.getElementArgReader().read(elementArg, sender); - ret.add(innerArgResult); + ret.add(element); } // Return Ret @@ -66,7 +66,7 @@ public class ARList extends ARAbstract> @Override public Collection getTabList(CommandSender sender, String arg) { - return this.getInnerArgReader().getTabList(sender, arg); + return this.getElementArgReader().getTabList(sender, arg); } } diff --git a/src/com/massivecraft/massivecore/cmd/arg/ARSet.java b/src/com/massivecraft/massivecore/cmd/arg/ARSet.java index aa31cc50..9f429cd6 100644 --- a/src/com/massivecraft/massivecore/cmd/arg/ARSet.java +++ b/src/com/massivecraft/massivecore/cmd/arg/ARSet.java @@ -9,14 +9,14 @@ import org.bukkit.command.CommandSender; import com.massivecraft.massivecore.MassiveException; import com.massivecraft.massivecore.mixin.Mixin; -public class ARSet extends ARAbstract> +public class ARSet extends ARAbstract> { // -------------------------------------------- // // FIELDS // -------------------------------------------- // - private final AR innerArgReader; - public AR getInnerArgReader() { return this.innerArgReader; } + private final AR elementArgReader; + public AR getElementArgReader() { return this.elementArgReader; } private final boolean warnOnDuplicates; public boolean getWarnOnDuplicate() { return warnOnDuplicates; } @@ -25,14 +25,14 @@ public class ARSet extends ARAbstract> // INSTANCE & CONSTRUCT // -------------------------------------------- // - public static ARSet get(AR innerArgReader, boolean warnOnDuplicates) + public static ARSet get(AR elementArgReader, boolean warnOnDuplicates) { - return new ARSet(innerArgReader, warnOnDuplicates); + return new ARSet(elementArgReader, warnOnDuplicates); } - public ARSet(AR innerArgReader, boolean warnOnDuplicates) + public ARSet(AR elementArgReader, boolean warnOnDuplicates) { - this.innerArgReader = innerArgReader; + this.elementArgReader = elementArgReader; this.warnOnDuplicates = warnOnDuplicates; } @@ -43,27 +43,27 @@ public class ARSet extends ARAbstract> @Override public String getTypeName() { - return innerArgReader.getTypeName(); + return elementArgReader.getTypeName(); } // NOTE: Must be used with argConcatFrom and setErrorOnTooManyArgs(false). @Override - public Set read(String arg, CommandSender sender) throws MassiveException + public Set read(String arg, CommandSender sender) throws MassiveException { // Split into inner args - String[] innerArgs = arg.split("\\s+"); + String[] elementArgs = arg.split("\\s+"); // Create Ret - Set ret = new LinkedHashSet(); + Set ret = new LinkedHashSet(); boolean duplicates = false; // For Each - for (String innerArg : innerArgs) + for (String elementArg : elementArgs) { - T innerArgResult = this.getInnerArgReader().read(innerArg, sender); + E element = this.getElementArgReader().read(elementArg, sender); - duplicates = ( ! ret.add(innerArgResult) || duplicates); + duplicates = ( ! ret.add(element) || duplicates); } if (warnOnDuplicates && duplicates) @@ -78,7 +78,7 @@ public class ARSet extends ARAbstract> @Override public Collection getTabList(CommandSender sender, String arg) { - return innerArgReader.getTabList(sender, arg); + return elementArgReader.getTabList(sender, arg); } } diff --git a/src/com/massivecraft/massivecore/util/MUtil.java b/src/com/massivecraft/massivecore/util/MUtil.java index 0ec8e74c..4884bada 100644 --- a/src/com/massivecraft/massivecore/util/MUtil.java +++ b/src/com/massivecraft/massivecore/util/MUtil.java @@ -1325,6 +1325,9 @@ public class MUtil // Create Ret List ret = new MassiveList(); + // Empty + if (list.isEmpty()) return ret; + // Fill Ret for (int i = 0; i < count; i++) {