54 lines
1.2 KiB
Java
54 lines
1.2 KiB
Java
package com.example.workutils.tool;
|
|
|
|
import java.util.Scanner;
|
|
|
|
/**
|
|
* 工具策略接口
|
|
* 所有可插拔工具实现此接口,Spring自动发现Tool Bean
|
|
*/
|
|
public interface Tool {
|
|
|
|
/**
|
|
* 工具唯一标识(用于配置启用/禁用)
|
|
* 示例: "scan", "mybatis", "batch", "git-health", "mybatis-generator"
|
|
*/
|
|
String getId();
|
|
|
|
/**
|
|
* 菜单显示名称
|
|
* 示例: "关键词扫描", "MyBatis导出"
|
|
*/
|
|
String getName();
|
|
|
|
/**
|
|
* 子菜单选项
|
|
* 返回空数组表示无子菜单
|
|
*/
|
|
String[] getMenuOptions();
|
|
|
|
/**
|
|
* 命令行模式下的命令名,如 "sql", "scan", "batch"
|
|
* 返回空字符串表示不支持命令行模式
|
|
*/
|
|
default String getCommandName() {
|
|
return "";
|
|
}
|
|
|
|
/**
|
|
* 执行工具的交互会话
|
|
*
|
|
* @param scanner 控制台输入
|
|
*/
|
|
void execute(Scanner scanner);
|
|
|
|
/**
|
|
* 命令行模式执行(无交互)
|
|
* 默认实现打印不支持提示
|
|
*
|
|
* @param args 命令行参数(不含命令名本身)
|
|
*/
|
|
default void executeCommand(String... args) throws Exception {
|
|
System.out.println("工具 [" + getName() + "] 不支持命令行模式");
|
|
}
|
|
}
|