public enum ModuleRole extends java.lang.Enum<ModuleRole> implements Module
| 枚举常量和说明 |
|---|
Root
根
|
ServerRoot
服务器应用模块的root
|
WorkspaceProvider
环境提供者
|
| 限定符和类型 | 方法和说明 |
|---|---|
<T> void |
addMutable(StableKey<T> key,
T... mutable)
添加mutable
|
void |
clearMutable(StableKey key)
清除当前模块中注册的mutable
|
Module |
findAncestor(java.lang.Class<? extends Activator> clazz)
查找上级
|
Module |
findDescendant(java.lang.Class<? extends Activator> clazz)
查找下级
|
java.lang.String |
getAttribute(ModuleAttribute attribute)
获取模块扩展属性(不包含name、activator和ref)
|
<T> java.util.List<T> |
getMutable(StableKey<T> key)
获取当前注册进来的Mutable
|
java.lang.String |
getName()
模块名
|
Module |
getParent()
父模块
|
java.lang.Class<? extends Activator> |
getRelevantActivator()
获取相关联的Activator类,用作模块的ID
|
Module |
getRoot()
根模块
|
<T> T |
getSingleton(java.lang.Class<T> clazz)
获取实现了某个接口的单例
|
Module |
getSub(java.lang.Class<? extends Activator> clazz)
根据Activator的class对象获取子Module
|
Module |
getSub(java.lang.String name)
获取子模块
|
ModuleGroup |
getSubRepo()
获取子模块仓库
|
java.lang.String |
getTag() |
boolean |
isAbsent()
缺席
|
boolean |
isNotAbsent()
是否就位
|
boolean |
isRunning()
状态判断
|
<T> T |
leftFindSingleton(java.lang.Class<T> clazz)
向左查找singleton
|
<T> void |
listenEvent(Event<T>[] events,
Listener<T> listener)
监听一大堆事件
|
<T> void |
listenEvent(Event<T> eventType,
Listener<T> listener)
监听某事件
|
<T> void |
listenEvent(Event<T> eventType,
Listener<T> listener,
Filter<T> filter)
包含事件过滤器
|
java.util.List<Module> |
listSubs()
以配置的顺序获取子模块
|
Lifecycle |
once(LifecycleEvent event,
LifecycleListener listener)
添加监听
|
<T> void |
registerMutable(StableKey<T> key,
StableKeyExecutor<T> executor)
向右(所有比当前模块后启动的模块)收集对象,用于实现上层向下层的注册
收集到的List顺序是注册的顺序
同时接收插件提供的StableKey
|
<T> T |
removeSingleton(java.lang.Class<T> clazz)
删除singleton
|
<T> java.util.List<T> |
rightCollectMutable(StableKey<T> key)
向右(所有比当前模块后启动的模块)收集对象,用于实现上层向下层的注册
收集到的List顺序是注册的顺序
|
void |
set(Module module) |
<T> void |
setSingleton(java.lang.Class<T> clazz,
T singleton)
注册一个单例到Context中,通常是一个实现了某接口的单例,用于桥接一个模块的接口部分和实现部分
如已经存在了该类型的单例,会抛RuntimeException
|
void |
start()
启动
|
void |
stop()
关闭
|
<T> T |
upFindSingleton(java.lang.Class<T> clazz)
向上查找singleton,即当前模块不存在的话,会请求parent的findSingleton方法,直到root
这种模式可以用来让子模块覆盖上层模块的某些实现(overwrite)
用于模块的父子关系中,更具体(也就是更小的模块)可以覆盖所在大模块的某种实现,从而实现在局部范围内的特殊性
上下关系是父子关系
|
static ModuleRole |
valueOf(java.lang.String name)
返回带有指定名称的该类型的枚举常量。
|
static ModuleRole[] |
values()
按照声明该枚举类型的常量的顺序, 返回
包含这些常量的数组。
|
public static final ModuleRole Root
public static final ModuleRole WorkspaceProvider
public static final ModuleRole ServerRoot
public static ModuleRole[] values()
for (ModuleRole c : ModuleRole.values()) System.out.println(c);
public static ModuleRole valueOf(java.lang.String name)
name - 要返回的枚举常量的名称。java.lang.IllegalArgumentException - 如果该枚举类型没有带有指定名称的常量java.lang.NullPointerException - 如果参数为空值public void set(Module module)
public java.lang.Class<? extends Activator> getRelevantActivator()
ModulegetRelevantActivator 在接口中 Modulepublic java.lang.String getAttribute(ModuleAttribute attribute)
ModulegetAttribute 在接口中 Modulepublic <T> void listenEvent(Event<T>[] events, Listener<T> listener)
EventEntrylistenEvent 在接口中 EventEntrypublic <T> void listenEvent(Event<T> eventType, Listener<T> listener)
EventEntrylistenEvent 在接口中 EventEntrypublic <T> void listenEvent(Event<T> eventType, Listener<T> listener, Filter<T> filter)
EventEntrylistenEvent 在接口中 EventEntrypublic Module getParent()
ModuleSelectorgetParent 在接口中 ModuleSelectorpublic Module getRoot()
ModuleSelectorgetRoot 在接口中 ModuleSelectorpublic Module findAncestor(java.lang.Class<? extends Activator> clazz)
ModuleSelectorfindAncestor 在接口中 ModuleSelectorpublic Module findDescendant(java.lang.Class<? extends Activator> clazz)
ModuleSelectorfindDescendant 在接口中 ModuleSelectorpublic Module getSub(java.lang.String name)
ModuleSelectorgetSub 在接口中 ModuleSelectorpublic Module getSub(java.lang.Class<? extends Activator> clazz)
ModuleSelectorgetSub 在接口中 ModuleSelectorpublic java.util.List<Module> listSubs()
ModuleSelectorlistSubs 在接口中 ModuleSelectorpublic ModuleGroup getSubRepo()
ModuleSelectorgetSubRepo 在接口中 ModuleSelectorpublic <T> void setSingleton(java.lang.Class<T> clazz,
T singleton)
ModuleStableRepositorysetSingleton 在接口中 ModuleStableRepositorypublic <T> T getSingleton(java.lang.Class<T> clazz)
ModuleStableRepositorygetSingleton 在接口中 ModuleStableRepositorypublic <T> T removeSingleton(java.lang.Class<T> clazz)
ModuleStableRepositoryremoveSingleton 在接口中 ModuleStableRepositorypublic <T> void addMutable(StableKey<T> key, T... mutable)
ModuleStableRepositoryaddMutable 在接口中 ModuleStableRepositorypublic <T> java.util.List<T> getMutable(StableKey<T> key)
ModuleStableRepositorygetMutable 在接口中 ModuleStableRepositorypublic void clearMutable(StableKey key)
ModuleStableRepositoryclearMutable 在接口中 ModuleStableRepositorypublic <T> T upFindSingleton(java.lang.Class<T> clazz)
ModuleStableRepositoryAccessorpublic <T> T leftFindSingleton(java.lang.Class<T> clazz)
ModuleStableRepositoryAccessorpublic <T> java.util.List<T> rightCollectMutable(StableKey<T> key)
ModuleStableRepositoryAccessorpublic <T> void registerMutable(StableKey<T> key, StableKeyExecutor<T> executor)
ModuleStableRepositoryAccessorpublic Lifecycle once(LifecycleEvent event, LifecycleListener listener)
Lifecyclepublic java.lang.String getTag()
public boolean isNotAbsent()
public boolean isAbsent()