public class FineModule extends AbstractLifecycle implements Module
| 构造器和说明 |
|---|
FineModule(java.lang.String name,
Activator activator,
Module parent,
java.util.Map<ModuleAttribute,java.lang.String> attributes)
只要调用FineModule的构造函数,就必须保证当前模块是一个正确的、可用的模块。
|
| 限定符和类型 | 方法和说明 |
|---|---|
<T> void |
addMutable(StableKey<T> key,
T... mutable)
添加mutable
|
java.util.List<FineModule> |
calculateStartSequence()
动态计算模块的启动次序,用于Builder连接left、right
|
void |
clearMutable(StableKey key)
清除当前模块中注册的mutable
|
boolean |
equals(java.lang.Object obj) |
protected void |
executeStart() |
protected void |
executeStop() |
Module |
findAncestor(java.lang.Class<? extends Activator> clazz)
查找上级
|
Module |
findDescendant(java.lang.Class<? extends Activator> clazz)
查找下级
|
Activator |
getActivator() |
java.lang.String |
getAttribute(ModuleAttribute attribute)
获取模块扩展属性(不包含name、activator和ref)
|
FineModule |
getFirst()
获取左右视图中的第一个
|
<T> java.util.List<T> |
getMutable(StableKey<T> key)
获取当前注册进来的Mutable
|
java.lang.String |
getName()
模块名
|
FineModule |
getNext()
获取左右视图中的下一个
|
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)
获取子模块
|
FineModuleGroup |
getSubRepo()
获取子模块仓库
|
int |
hashCode() |
<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> 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 |
setLeft(FineModule left) |
void |
setParent(FineModule parent) |
void |
setRight(FineModule right) |
<T> void |
setSingleton(java.lang.Class<T> clazz,
T singleton)
注册一个单例到Context中,通常是一个实现了某接口的单例,用于桥接一个模块的接口部分和实现部分
如已经存在了该类型的单例,会抛RuntimeException
|
void |
start()
启动
|
void |
stop()
关闭
|
java.lang.String |
toString() |
<T> T |
upFindSingleton(java.lang.Class<T> clazz)
向上查找singleton,即当前模块不存在的话,会请求parent的findSingleton方法,直到root
这种模式可以用来让子模块覆盖上层模块的某些实现(overwrite)
用于模块的父子关系中,更具体(也就是更小的模块)可以覆盖所在大模块的某种实现,从而实现在局部范围内的特殊性
上下关系是父子关系
|
isRunning, oncepublic FineModule(java.lang.String name,
Activator activator,
Module parent,
java.util.Map<ModuleAttribute,java.lang.String> attributes)
public java.lang.Class<? extends Activator> getRelevantActivator()
ModulegetRelevantActivator 在接口中 Modulepublic void start()
Lifecyclestart 在接口中 Lifecyclestart 在类中 AbstractLifecyclepublic void stop()
Lifecyclestop 在接口中 Lifecyclestop 在类中 AbstractLifecycleprotected void executeStart()
executeStart 在类中 AbstractLifecycleprotected void executeStop()
executeStop 在类中 AbstractLifecyclepublic <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 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 FineModuleGroup getSubRepo()
ModuleSelectorgetSubRepo 在接口中 ModuleSelectorpublic java.lang.String getAttribute(ModuleAttribute attribute)
ModulegetAttribute 在接口中 Modulepublic <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 Activator getActivator()
public java.util.List<FineModule> calculateStartSequence()
public void setParent(FineModule parent)
public void setLeft(FineModule left)
public void setRight(FineModule right)
public FineModule getNext()
public FineModule getFirst()
public <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 final boolean equals(java.lang.Object obj)
equals 在类中 java.lang.Objectpublic final int hashCode()
hashCode 在类中 java.lang.Objectpublic java.lang.String toString()
toString 在类中 java.lang.Object