public abstract class Activator extends java.lang.Object implements ModuleSelector, ModuleStableRepository, ModuleStableRepositoryAccessor, EventEntry, StableKeyRegister
构造器和说明 |
---|
Activator() |
限定符和类型 | 方法和说明 |
---|---|
<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)
查找下级
|
Module |
getModule()
获取对应的Module
|
<T> java.util.List<T> |
getMutable(StableKey<T> key)
获取当前注册进来的Mutable
|
Module |
getParent()
父模块
|
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()
获取子模块仓库
|
<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()
以配置的顺序获取子模块
|
<T> java.util.List<T> |
register(StableKey<T> key,
StableKeyExecutor<T> executor)
注册可变的模块和相应的处理逻辑。
|
<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顺序是注册的顺序
|
<T> void |
setSingleton(java.lang.Class<T> clazz,
T singleton)
注册一个单例到Context中,通常是一个实现了某接口的单例,用于桥接一个模块的接口部分和实现部分
如已经存在了该类型的单例,会抛RuntimeException
|
abstract void |
start()
启动
|
protected void |
startSub(java.lang.Class<? extends Activator> clazz) |
abstract void |
stop()
停止
|
protected void |
stopSub(java.lang.Class<? extends Activator> clazz) |
<T> T |
upFindSingleton(java.lang.Class<T> clazz)
向上查找singleton,即当前模块不存在的话,会请求parent的findSingleton方法,直到root
这种模式可以用来让子模块覆盖上层模块的某些实现(overwrite)
用于模块的父子关系中,更具体(也就是更小的模块)可以覆盖所在大模块的某种实现,从而实现在局部范围内的特殊性
上下关系是父子关系
|
public abstract void start()
public abstract void stop()
public final Module getModule()
protected void startSub(java.lang.Class<? extends Activator> clazz)
protected void stopSub(java.lang.Class<? extends Activator> clazz)
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 <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 <T> java.util.List<T> register(StableKey<T> key, StableKeyExecutor<T> executor)
StableKeyRegister
register
在接口中 StableKeyRegister
T
- 类型key
- 中间层的 keyexecutor
- 处理逻辑