package net.minecraft.command.arg;
import net.minecraft.command.arg.CommandArg.Primitive;
import net.minecraft.command.type.management.TypeID;
public class ExArgWrapper<R, A extends CommandArg<R>> extends ArgWrapper<R>
{
public final A arg;
public ExArgWrapper(final TypeID<R> type, final A arg)
{
super(type);
this.arg = arg;
}
@Override
public A arg()
{
return this.arg;
}
public static class GetterWrapper<R> extends ExArgWrapper<R, Primitive<R>> implements TypedWrapper<R>
{
public GetterWrapper(final TypeID<R> type, final Primitive<R> arg)
{
super(type, arg);
}
@Override
public Getter<R> get()
{
return this.arg();
}
// This is checked...
@SuppressWarnings("unchecked")
@Override
public <T> Primitive<T> get(final TypeID<T> type)
{
this.checkTypes(type);
return (Primitive<T>) this.arg();
}
@Override
public TypeID<R> type()
{
return this.type;
}
}
}