public final class Interpreter extends Object
整个框架的核心功能实现类, 负责解释执行命令行,提供API调用框架中管理的方法。
| 限定符和类型 | 类和说明 |
|---|---|
static class |
Interpreter.MethodActuator
对 Actuator 进行包装
对于同包下的类提供一些便捷方法 |
| 限定符和类型 | 字段和说明 |
|---|---|
protected ThreadLocal<InvokeInfo> |
lastInvokeInfo |
| 限定符和类型 | 方法和说明 |
|---|---|
InvokeInfo |
call(String name)
根据方法名调用无参方法
|
InvokeInfo |
call(String name,
Object... args)
根据方法名,方法参数来调用方法
这个方法必须是容器管理的,否则无法调用 |
protected InvokeInfo |
doFilterChain(Interpreter.MethodActuator actuator,
List<String> cmdArgs)
执行过滤链
|
protected Optional<Interpreter.MethodActuator> |
findActuatorByName(String name)
根据一个命令名,返回对应的执行器
|
ConsoleConfig |
getConfig() |
static Client |
getCurrentUser()
获取当前用户的客户端对象,可以通过这个对象操作给当前用户分配的资源
|
static Interpreter |
getInstance(ConsoleConfig config) |
static Set<String> |
getSysCommands()
返回可调用的系统命令集
|
InvokeInfo |
interpret(String cmd)
解释执行一段命令行
|
protected void |
loadCommandMethod(Interpreter.MethodActuator actuator) |
protected void |
loadFilter(Interpreter.MethodActuator actuator) |
void |
set(String key,
Object value)
将一个键值对放置到当前用户的变量池中
|
ResourcesHandler |
setUser(String userKey)
为当前线程创建一个新的用户
假如是多用户环境,为了区别不同的用户,需要为使用解释器功能的用户分配一些独立的资源
|
protected void |
sortFilter() |
protected ThreadLocal<InvokeInfo> lastInvokeInfo
public static Interpreter getInstance(ConsoleConfig config)
public static Client getCurrentUser()
public ResourcesHandler setUser(String userKey)
假如是多用户环境,为了区别不同的用户,需要为使用解释器功能的用户分配一些独立的资源
userKey - 用户标识,此标识必须是唯一的public InvokeInfo interpret(String cmd)
cmd - 命令行public InvokeInfo call(String name)
name - 框架容器中管理的无参方法的方法名public InvokeInfo call(String name, Object... args)
name - 方法名args - 此方法需要的参数public ConsoleConfig getConfig()
protected InvokeInfo doFilterChain(Interpreter.MethodActuator actuator, List<String> cmdArgs)
actuator - 方法执行器cmdArgs - 方法参数protected Optional<Interpreter.MethodActuator> findActuatorByName(String name)
name - 命令名,或者方法名protected void loadCommandMethod(Interpreter.MethodActuator actuator)
protected void loadFilter(Interpreter.MethodActuator actuator)
protected void sortFilter()
Copyright © 2021. All rights reserved.