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, once
public FineModule(java.lang.String name, Activator activator, Module parent, java.util.Map<ModuleAttribute,java.lang.String> attributes)
public java.lang.Class<? extends Activator> getRelevantActivator()
Module
getRelevantActivator
在接口中 Module
public void start()
Lifecycle
start
在接口中 Lifecycle
start
在类中 AbstractLifecycle
public void stop()
Lifecycle
stop
在接口中 Lifecycle
stop
在类中 AbstractLifecycle
protected void executeStart()
executeStart
在类中 AbstractLifecycle
protected void executeStop()
executeStop
在类中 AbstractLifecycle
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 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 FineModuleGroup getSubRepo()
ModuleSelector
getSubRepo
在接口中 ModuleSelector
public java.lang.String getAttribute(ModuleAttribute attribute)
Module
getAttribute
在接口中 Module
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 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)
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 final boolean equals(java.lang.Object obj)
equals
在类中 java.lang.Object
public final int hashCode()
hashCode
在类中 java.lang.Object
public java.lang.String toString()
toString
在类中 java.lang.Object