Fix some generics. Avoid an NPE.
This commit is contained in:
parent
469cf9ea24
commit
5984bc2774
@ -8,27 +8,27 @@ import org.bukkit.command.CommandSender;
|
|||||||
|
|
||||||
import com.massivecraft.massivecore.MassiveException;
|
import com.massivecraft.massivecore.MassiveException;
|
||||||
|
|
||||||
public class ARList<T> extends ARAbstract<List<T>>
|
public class ARList<E> extends ARAbstract<List<E>>
|
||||||
{
|
{
|
||||||
// -------------------------------------------- //
|
// -------------------------------------------- //
|
||||||
// FIELDS
|
// FIELDS
|
||||||
// -------------------------------------------- //
|
// -------------------------------------------- //
|
||||||
|
|
||||||
protected AR<T> innerArgReader;
|
protected AR<E> elementArgReader;
|
||||||
public AR<T> getInnerArgReader() { return this.innerArgReader; }
|
public AR<E> getElementArgReader() { return this.elementArgReader; }
|
||||||
|
|
||||||
// -------------------------------------------- //
|
// -------------------------------------------- //
|
||||||
// INSTANCE & CONSTRUCT
|
// INSTANCE & CONSTRUCT
|
||||||
// -------------------------------------------- //
|
// -------------------------------------------- //
|
||||||
|
|
||||||
public static <T> ARList<T> get(AR<T> innerArgReader)
|
public static <E> ARList<E> get(AR<E> elementArgReader)
|
||||||
{
|
{
|
||||||
return new ARList<T>(innerArgReader);
|
return new ARList<E>(elementArgReader);
|
||||||
}
|
}
|
||||||
|
|
||||||
public ARList(AR<T> innerArgReader)
|
public ARList(AR<E> elementArgReader)
|
||||||
{
|
{
|
||||||
this.innerArgReader = innerArgReader;
|
this.elementArgReader = elementArgReader;
|
||||||
}
|
}
|
||||||
|
|
||||||
// -------------------------------------------- //
|
// -------------------------------------------- //
|
||||||
@ -38,25 +38,25 @@ public class ARList<T> extends ARAbstract<List<T>>
|
|||||||
@Override
|
@Override
|
||||||
public String getTypeName()
|
public String getTypeName()
|
||||||
{
|
{
|
||||||
return innerArgReader.getTypeName();
|
return elementArgReader.getTypeName();
|
||||||
}
|
}
|
||||||
|
|
||||||
// NOTE: Must be used with argConcatFrom and setErrorOnTooManyArgs(false).
|
// NOTE: Must be used with argConcatFrom and setErrorOnTooManyArgs(false).
|
||||||
@Override
|
@Override
|
||||||
public List<T> read(String arg, CommandSender sender) throws MassiveException
|
public List<E> read(String arg, CommandSender sender) throws MassiveException
|
||||||
{
|
{
|
||||||
// Split into inner args
|
// Split into inner args
|
||||||
String[] innerArgs = arg.split("\\s+");
|
String[] elementArgs = arg.split("\\s+");
|
||||||
|
|
||||||
// Create Ret
|
// Create Ret
|
||||||
List<T> ret = new ArrayList<T>();
|
List<E> ret = new ArrayList<E>();
|
||||||
|
|
||||||
// For Each
|
// 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
|
// Return Ret
|
||||||
@ -66,7 +66,7 @@ public class ARList<T> extends ARAbstract<List<T>>
|
|||||||
@Override
|
@Override
|
||||||
public Collection<String> getTabList(CommandSender sender, String arg)
|
public Collection<String> getTabList(CommandSender sender, String arg)
|
||||||
{
|
{
|
||||||
return this.getInnerArgReader().getTabList(sender, arg);
|
return this.getElementArgReader().getTabList(sender, arg);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -9,14 +9,14 @@ import org.bukkit.command.CommandSender;
|
|||||||
import com.massivecraft.massivecore.MassiveException;
|
import com.massivecraft.massivecore.MassiveException;
|
||||||
import com.massivecraft.massivecore.mixin.Mixin;
|
import com.massivecraft.massivecore.mixin.Mixin;
|
||||||
|
|
||||||
public class ARSet<T> extends ARAbstract<Set<T>>
|
public class ARSet<E> extends ARAbstract<Set<E>>
|
||||||
{
|
{
|
||||||
// -------------------------------------------- //
|
// -------------------------------------------- //
|
||||||
// FIELDS
|
// FIELDS
|
||||||
// -------------------------------------------- //
|
// -------------------------------------------- //
|
||||||
|
|
||||||
private final AR<T> innerArgReader;
|
private final AR<E> elementArgReader;
|
||||||
public AR<T> getInnerArgReader() { return this.innerArgReader; }
|
public AR<E> getElementArgReader() { return this.elementArgReader; }
|
||||||
|
|
||||||
private final boolean warnOnDuplicates;
|
private final boolean warnOnDuplicates;
|
||||||
public boolean getWarnOnDuplicate() { return warnOnDuplicates; }
|
public boolean getWarnOnDuplicate() { return warnOnDuplicates; }
|
||||||
@ -25,14 +25,14 @@ public class ARSet<T> extends ARAbstract<Set<T>>
|
|||||||
// INSTANCE & CONSTRUCT
|
// INSTANCE & CONSTRUCT
|
||||||
// -------------------------------------------- //
|
// -------------------------------------------- //
|
||||||
|
|
||||||
public static <T> ARSet<T> get(AR<T> innerArgReader, boolean warnOnDuplicates)
|
public static <E> ARSet<E> get(AR<E> elementArgReader, boolean warnOnDuplicates)
|
||||||
{
|
{
|
||||||
return new ARSet<T>(innerArgReader, warnOnDuplicates);
|
return new ARSet<E>(elementArgReader, warnOnDuplicates);
|
||||||
}
|
}
|
||||||
|
|
||||||
public ARSet(AR<T> innerArgReader, boolean warnOnDuplicates)
|
public ARSet(AR<E> elementArgReader, boolean warnOnDuplicates)
|
||||||
{
|
{
|
||||||
this.innerArgReader = innerArgReader;
|
this.elementArgReader = elementArgReader;
|
||||||
this.warnOnDuplicates = warnOnDuplicates;
|
this.warnOnDuplicates = warnOnDuplicates;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -43,27 +43,27 @@ public class ARSet<T> extends ARAbstract<Set<T>>
|
|||||||
@Override
|
@Override
|
||||||
public String getTypeName()
|
public String getTypeName()
|
||||||
{
|
{
|
||||||
return innerArgReader.getTypeName();
|
return elementArgReader.getTypeName();
|
||||||
}
|
}
|
||||||
|
|
||||||
// NOTE: Must be used with argConcatFrom and setErrorOnTooManyArgs(false).
|
// NOTE: Must be used with argConcatFrom and setErrorOnTooManyArgs(false).
|
||||||
@Override
|
@Override
|
||||||
public Set<T> read(String arg, CommandSender sender) throws MassiveException
|
public Set<E> read(String arg, CommandSender sender) throws MassiveException
|
||||||
{
|
{
|
||||||
// Split into inner args
|
// Split into inner args
|
||||||
String[] innerArgs = arg.split("\\s+");
|
String[] elementArgs = arg.split("\\s+");
|
||||||
|
|
||||||
// Create Ret
|
// Create Ret
|
||||||
Set<T> ret = new LinkedHashSet<T>();
|
Set<E> ret = new LinkedHashSet<E>();
|
||||||
|
|
||||||
boolean duplicates = false;
|
boolean duplicates = false;
|
||||||
|
|
||||||
// For Each
|
// 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)
|
if (warnOnDuplicates && duplicates)
|
||||||
@ -78,7 +78,7 @@ public class ARSet<T> extends ARAbstract<Set<T>>
|
|||||||
@Override
|
@Override
|
||||||
public Collection<String> getTabList(CommandSender sender, String arg)
|
public Collection<String> getTabList(CommandSender sender, String arg)
|
||||||
{
|
{
|
||||||
return innerArgReader.getTabList(sender, arg);
|
return elementArgReader.getTabList(sender, arg);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -1325,6 +1325,9 @@ public class MUtil
|
|||||||
// Create Ret
|
// Create Ret
|
||||||
List<E> ret = new MassiveList<E>();
|
List<E> ret = new MassiveList<E>();
|
||||||
|
|
||||||
|
// Empty
|
||||||
|
if (list.isEmpty()) return ret;
|
||||||
|
|
||||||
// Fill Ret
|
// Fill Ret
|
||||||
for (int i = 0; i < count; i++)
|
for (int i = 0; i < count; i++)
|
||||||
{
|
{
|
||||||
|
Loading…
Reference in New Issue
Block a user