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()
Module
getRelevantActivator
在接口中 Module
public java.lang.String getAttribute(ModuleAttribute attribute)
Module
getAttribute
在接口中 Module
public <T> void listenEvent(Event<T>[] events, Listener<T> listener)
EventEntry
listenEvent
在接口中 EventEntry
public <T> void listenEvent(Event<T> eventType, Listener<T> listener)
EventEntry
listenEvent
在接口中 EventEntry
public <T> void listenEvent(Event<T> eventType, Listener<T> listener, Filter<T> filter)
EventEntry
listenEvent
在接口中 EventEntry
public Module getParent()
ModuleSelector
getParent
在接口中 ModuleSelector
public Module getRoot()
ModuleSelector
getRoot
在接口中 ModuleSelector
public Module findAncestor(java.lang.Class<? extends Activator> clazz)
ModuleSelector
findAncestor
在接口中 ModuleSelector
public Module findDescendant(java.lang.Class<? extends Activator> clazz)
ModuleSelector
findDescendant
在接口中 ModuleSelector
public Module getSub(java.lang.String name)
ModuleSelector
getSub
在接口中 ModuleSelector
public Module getSub(java.lang.Class<? extends Activator> clazz)
ModuleSelector
getSub
在接口中 ModuleSelector
public java.util.List<Module> listSubs()
ModuleSelector
listSubs
在接口中 ModuleSelector
public ModuleGroup getSubRepo()
ModuleSelector
getSubRepo
在接口中 ModuleSelector
public <T> void setSingleton(java.lang.Class<T> clazz, T singleton)
ModuleStableRepository
setSingleton
在接口中 ModuleStableRepository
public <T> T getSingleton(java.lang.Class<T> clazz)
ModuleStableRepository
getSingleton
在接口中 ModuleStableRepository
public <T> T removeSingleton(java.lang.Class<T> clazz)
ModuleStableRepository
removeSingleton
在接口中 ModuleStableRepository
public <T> void addMutable(StableKey<T> key, T... mutable)
ModuleStableRepository
addMutable
在接口中 ModuleStableRepository
public <T> java.util.List<T> getMutable(StableKey<T> key)
ModuleStableRepository
getMutable
在接口中 ModuleStableRepository
public void clearMutable(StableKey key)
ModuleStableRepository
clearMutable
在接口中 ModuleStableRepository
public <T> T upFindSingleton(java.lang.Class<T> clazz)
ModuleStableRepositoryAccessor
public <T> T leftFindSingleton(java.lang.Class<T> clazz)
ModuleStableRepositoryAccessor
public <T> java.util.List<T> rightCollectMutable(StableKey<T> key)
ModuleStableRepositoryAccessor
public <T> void registerMutable(StableKey<T> key, StableKeyExecutor<T> executor)
ModuleStableRepositoryAccessor
public Lifecycle once(LifecycleEvent event, LifecycleListener listener)
Lifecycle
public java.lang.String getTag()
public boolean isNotAbsent()
public boolean isAbsent()