package net.minecraft.command.descriptors;
import java.util.Set;
import net.minecraft.command.IPermission;
import net.minecraft.command.SyntaxErrorException;
import net.minecraft.command.arg.ArgWrapper;
import net.minecraft.command.completion.TCDSet;
import net.minecraft.command.descriptors.SelectorDescriptorNoContent.PrimitiveData;
import net.minecraft.command.parser.CompletionParser.CompletionData;
import net.minecraft.command.parser.Parser;
import net.minecraft.command.type.management.TypeID;
public class SelectorDescriptorNoContent extends SelectorDescriptor<PrimitiveData>
{
public static class PrimitiveData extends SParserData
{
public PrimitiveData(final Parser parser)
{
super(parser);
}
@Override
public ArgWrapper<?> finalize(final ArgWrapper<?> selector)
{
return selector;
}
@Override
public boolean requiresKey()
{
return false;
}
}
public static abstract class PrimitiveConstructable
{
public abstract ArgWrapper<?> construct(PrimitiveData data);
}
private final PrimitiveConstructable constructable;
public SelectorDescriptorNoContent(final Set<TypeID<?>> resultTypes, final IPermission permission, final PrimitiveConstructable constructable)
{
super(resultTypes, permission);
this.constructable = constructable;
}
@Override
public void complete(final TCDSet tcDataSet, final Parser parser, final int startIndex, final CompletionData cData, final PrimitiveData data)
{
}
@Override
public ArgWrapper<?> construct(final PrimitiveData data) throws SyntaxErrorException
{
return this.constructable.construct(data);
}
@Override
public void parse(final Parser parser, final String key, final PrimitiveData data) throws SyntaxErrorException
{
throw parser.SEE("Selector does not have any parameters ");
}
@Override
public void parse(final Parser parser, final PrimitiveData data) throws SyntaxErrorException
{
throw parser.SEE("Selector does not have any parameters ");
}
@Override
public PrimitiveData newParserData(final Parser parser)
{
return new PrimitiveData(parser);
}
}