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()
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 <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 <T> java.util.List<T> register(StableKey<T> key, StableKeyExecutor<T> executor)
StableKeyRegisterregister 在接口中 StableKeyRegisterT - 类型key - 中间层的 keyexecutor - 处理逻辑