Class PaperBasicCommandProcessor
java.lang.Object
javax.annotation.processing.AbstractProcessor
io.github.projectunified.craftcommand.processor.BaseCommandProcessor
io.github.projectunified.craftcommand.processor.paper.PaperBasicCommandProcessor
- All Implemented Interfaces:
Processor
@AutoService(javax.annotation.processing.Processor.class)
@SupportedAnnotationTypes("io.github.projectunified.craftcommand.annotation.Command")
@SupportedSourceVersion(RELEASE_8)
public class PaperBasicCommandProcessor
extends BaseCommandProcessor
-
Field Summary
Fields inherited from class javax.annotation.processing.AbstractProcessor
processingEnv -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprotected voidbuildAdditionalHelpers(com.palantir.javapoet.TypeSpec.Builder typeSpec, CommandModel model) Generates additional platform-independent helper methods (like suggestBoolean and sender casting helpers).protected voidbuildEntryMethods(com.palantir.javapoet.TypeSpec.Builder typeSpec, CommandModel model, TypeElement typeElement) Generates platform-specific main wrapper entry methods (e.g. onCommand or execute).protected voidconfigureSuperType(com.palantir.javapoet.TypeSpec.Builder typeSpec) Configures the super interfaces/classes that the generated wrapper should implement/extend.protected voidgeneratePlatformParamSuggestions(com.palantir.javapoet.MethodSpec.Builder methodSpec, com.palantir.javapoet.TypeName typeName, String senderCastVar, String argsVar, String currentVar, int tempIdx) protected com.palantir.javapoet.TypeNameReturns the platform-specific command manager type.protected intgetPlatformBuiltInWidth(com.palantir.javapoet.TypeName typeName) protected com.palantir.javapoet.CodeBlockgetSenderExpression(String senderVar) protected com.palantir.javapoet.ClassNameReturns the platform-specific command sender type name (e.g.protected StringReturns the wrapper class suffix specific to the platform.protected booleanisPlatformBuiltInType(com.palantir.javapoet.TypeName typeName) protected booleanisSenderBaseType(com.palantir.javapoet.TypeName typeName) protected booleanisSenderType(com.palantir.javapoet.TypeName typeName) Checks if the sender type is supportedprotected voidresolvePlatformMultiParameter(com.palantir.javapoet.MethodSpec.Builder methodSpec, com.palantir.javapoet.TypeName typeName, String varName, String argsVar, String argIdxVar, String senderVar, int i) protected voidresolvePlatformParameter(com.palantir.javapoet.MethodSpec.Builder methodSpec, com.palantir.javapoet.TypeName typeName, String varName, String argStrVar) Methods inherited from class io.github.projectunified.craftcommand.processor.BaseCommandProcessor
buildAliasesExpression, buildBuiltInParameter, buildExecutionRouting, buildLocalResolverParameter, buildMethodExecution, buildMethodExecution, buildParameterSuggestionHelper, buildParameterSuggestions, buildSenderResolution, buildSubcommandSuggestionRouting, buildSuggestionRouting, buildWrapperClass, configureConstructor, findLocalResolver, findModelForClass, findSuggestMethod, firstParamIsSender, generateDefaultSenderCastForSuggestion, generateExecuteMethodBody, generateFieldsAndConstructorStatements, generateLocalResolverInvocation, generateSubcommandClassExecutors, generateUnknownSubcommandMessage, getAssignmentValueForType, getDefaultPrimitiveValue, getDynamicResolverTypes, getInstanceVarExpression, getLocalResolverMaxWidth, getLocalResolverMinWidth, getParameterSuggestionMethodName, getResolverMethodName, getSimpleName, getSubcommandFieldName, getSubcommandNames, getUsage, init, isBuiltInType, isField, onBeforeExecute, onBeforeSuggest, onSuggestionAdd, processMethods inherited from class javax.annotation.processing.AbstractProcessor
getCompletions, getSupportedAnnotationTypes, getSupportedOptions, getSupportedSourceVersion, isInitialized
-
Constructor Details
-
PaperBasicCommandProcessor
public PaperBasicCommandProcessor()
-
-
Method Details
-
isSenderType
protected boolean isSenderType(com.palantir.javapoet.TypeName typeName) Description copied from class:BaseCommandProcessorChecks if the sender type is supported- Overrides:
isSenderTypein classBaseCommandProcessor
-
isSenderBaseType
protected boolean isSenderBaseType(com.palantir.javapoet.TypeName typeName) - Overrides:
isSenderBaseTypein classBaseCommandProcessor
-
isPlatformBuiltInType
protected boolean isPlatformBuiltInType(com.palantir.javapoet.TypeName typeName) - Overrides:
isPlatformBuiltInTypein classBaseCommandProcessor
-
getPlatformBuiltInWidth
protected int getPlatformBuiltInWidth(com.palantir.javapoet.TypeName typeName) - Overrides:
getPlatformBuiltInWidthin classBaseCommandProcessor
-
generatePlatformParamSuggestions
protected void generatePlatformParamSuggestions(com.palantir.javapoet.MethodSpec.Builder methodSpec, com.palantir.javapoet.TypeName typeName, String senderCastVar, String argsVar, String currentVar, int tempIdx) - Overrides:
generatePlatformParamSuggestionsin classBaseCommandProcessor
-
getSenderExpression
- Overrides:
getSenderExpressionin classBaseCommandProcessor
-
getWrapperClassSuffix
Description copied from class:BaseCommandProcessorReturns the wrapper class suffix specific to the platform.- Specified by:
getWrapperClassSuffixin classBaseCommandProcessor- Returns:
- the class name suffix (e.g. "_Executor" or "_Standalone")
-
configureSuperType
protected void configureSuperType(com.palantir.javapoet.TypeSpec.Builder typeSpec) Description copied from class:BaseCommandProcessorConfigures the super interfaces/classes that the generated wrapper should implement/extend.- Specified by:
configureSuperTypein classBaseCommandProcessor- Parameters:
typeSpec- the class definition builder
-
getSenderTypeName
protected com.palantir.javapoet.ClassName getSenderTypeName()Description copied from class:BaseCommandProcessorReturns the platform-specific command sender type name (e.g. Bukkit CommandSender or Object).- Specified by:
getSenderTypeNamein classBaseCommandProcessor
-
getManagerType
protected com.palantir.javapoet.TypeName getManagerType()Description copied from class:BaseCommandProcessorReturns the platform-specific command manager type.- Specified by:
getManagerTypein classBaseCommandProcessor
-
buildEntryMethods
protected void buildEntryMethods(com.palantir.javapoet.TypeSpec.Builder typeSpec, CommandModel model, TypeElement typeElement) Description copied from class:BaseCommandProcessorGenerates platform-specific main wrapper entry methods (e.g. onCommand or execute).- Specified by:
buildEntryMethodsin classBaseCommandProcessor
-
resolvePlatformParameter
protected void resolvePlatformParameter(com.palantir.javapoet.MethodSpec.Builder methodSpec, com.palantir.javapoet.TypeName typeName, String varName, String argStrVar) - Overrides:
resolvePlatformParameterin classBaseCommandProcessor
-
resolvePlatformMultiParameter
protected void resolvePlatformMultiParameter(com.palantir.javapoet.MethodSpec.Builder methodSpec, com.palantir.javapoet.TypeName typeName, String varName, String argsVar, String argIdxVar, String senderVar, int i) - Overrides:
resolvePlatformMultiParameterin classBaseCommandProcessor
-
buildAdditionalHelpers
protected void buildAdditionalHelpers(com.palantir.javapoet.TypeSpec.Builder typeSpec, CommandModel model) Description copied from class:BaseCommandProcessorGenerates additional platform-independent helper methods (like suggestBoolean and sender casting helpers).- Overrides:
buildAdditionalHelpersin classBaseCommandProcessor
-