org.xworker
类 World

java.lang.Object
  继承者 org.xworker.World

public class World
extends java.lang.Object

世界是存放所有事物的空间。

可以通过事物的路径访问这个世界下的所有事物。 事物的路径规则是:

     <projectName>:<thingFactoryName>:<categoryName>.<thingName>:/<childDescriptor>@<childId>/...
 比如:
     core                   //取名为core的项目
     core:things            //取core项目下名为things的事物管理者
     core:things:lang       //取core项目下名为things的事物管理者下的名为lang的目录或事物
     core:things:lang.Desc  //取core项目下名为things的事物管理者下的名为lang的目录下的名为Desc的目录或事物
     core:things.lang.Desc:/@attribute
                            //取core项目下名为things的事物管理者下的名为lang的目录下的名为Desc的事物下的id为
                              attribute的子事物
     core:things.lang.Desc:/attribute@
                            //取core项目下名为things的事物管理者下的名为lang的目录下的名为Desc的事物下的事物名为
                              attribute的子事物列表
     /attribute@label       //取当前事物下的事物名为attribute且表示为label的子事物                         
 

作者:
zyx

字段摘要
private  java.util.Map<java.lang.String,ProjectClassLoader> classLoaders
          类装载器的缓存
 java.util.List<ThingEntry> globalContexts
          全局上下文
private static org.apache.commons.logging.Log log
          日志
 Thing metaThing
          元事物
private  java.util.List<Project> projects
          项目列表
private  java.util.Map<java.lang.String,java.util.List<ThingManagerListener>> thingManagerListeners
          公共事物管理这的监听者注册列表
 TransientThingManager transientThingManager
          瞬态事物的管理者
private  java.util.Map<java.lang.String,java.lang.Object> userDatas
          用户数据
private static World worldInstance
          世界的唯一单态实例
private  java.lang.String worldPath
          世界的路径,项目、目录和存放事物的根目录
 
构造方法摘要
private World()
          私有构造方法,目前系统中只允许存在一个世界。
 
方法摘要
 Project createProject(java.lang.String projectName, boolean isPlugIn)
          添加一个新项目,如果项目已经存在返回已存在的项目。
 java.lang.Object get(java.lang.String path)
          通过路径来获得事物,可能会返回项目、事物管理者、目录、事物或者事物的列表。
 Action getAction(java.lang.String actionPath)
          通过动作事物的路径获得动作。
 Action getAction(Thing actionThing)
          通过事物获得一个动作。
 java.util.List<Project> getAllProjects()
          返回所有的项目的列表,包括项目和插件。
 Category getCategory(java.lang.String path)
           
 java.lang.Object getData(java.lang.String key)
           
static World getInstance()
          取得世界的实例。
 java.lang.String getPath()
          获得当前世界的路径。
 java.util.List<Project> getPlugIns()
          返回所有的插件列表。
 Project getProject(java.lang.String projectName)
          通过项目的名称取得对应的项目。
 ProjectClassLoader getProjectClassLoader(java.lang.String projectName)
           
 java.util.List<Project> getProjects()
          返回所有的项目列表。
 Thing getThing(java.lang.String path)
          通过事物的路径来访问具体的事物。
 java.util.List<ThingManagerListener> getThingManagerListeners(java.lang.String thingManagerName)
          获得注册的事物管理者的监听列表。
 ProjectClassLoader getWorldClassLoader()
           
 void init(java.lang.String worldPath)
          通过给定事物的存放路径来初始化世界。
 void refresh()
          刷新当前世界中项目。
 void registThingManagerListener(java.lang.String thingManagerName, ThingManagerListener listener)
          注册事物管理器的监听者。
 java.lang.Object runAction(java.lang.String actionPath, ActionContext actionContext)
           
 java.lang.Object runAction(java.lang.String actionPath, ActionContext actionContext, java.util.Map<java.lang.String,java.lang.Object> parameters)
          执行一个动作。
 void setData(java.lang.String key, java.lang.Object value)
           
 void unregistThingManagerListener(java.lang.String thingManagerName, ThingManagerListener listener)
          取消事物管理者的监听者。
 
从类 java.lang.Object 继承的方法
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

字段详细信息

log

private static org.apache.commons.logging.Log log
日志


worldInstance

private static final World worldInstance
世界的唯一单态实例


transientThingManager

public TransientThingManager transientThingManager
瞬态事物的管理者


metaThing

public Thing metaThing
元事物


globalContexts

public java.util.List<ThingEntry> globalContexts
全局上下文


worldPath

private java.lang.String worldPath
世界的路径,项目、目录和存放事物的根目录


projects

private java.util.List<Project> projects
项目列表


classLoaders

private java.util.Map<java.lang.String,ProjectClassLoader> classLoaders
类装载器的缓存


userDatas

private java.util.Map<java.lang.String,java.lang.Object> userDatas
用户数据


thingManagerListeners

private java.util.Map<java.lang.String,java.util.List<ThingManagerListener>> thingManagerListeners
公共事物管理这的监听者注册列表

构造方法详细信息

World

private World()
私有构造方法,目前系统中只允许存在一个世界。

方法详细信息

getInstance

public static World getInstance()
取得世界的实例。

返回:
世界的实例

createProject

public Project createProject(java.lang.String projectName,
                             boolean isPlugIn)
添加一个新项目,如果项目已经存在返回已存在的项目。

参数:
projectName - 项目名称
isPlugIn - 是否是插件
返回:
项目

get

public java.lang.Object get(java.lang.String path)
通过路径来获得事物,可能会返回项目、事物管理者、目录、事物或者事物的列表。

参数:
path - 路径
返回:
路径所对应的事物

getAction

public Action getAction(java.lang.String actionPath)
通过动作事物的路径获得动作。

参数:
actionPath - 动作路径
返回:
Action

getAction

public Action getAction(Thing actionThing)
通过事物获得一个动作。

参数:
actionThing - 定义动作的事物
返回:
动作

getAllProjects

public java.util.List<Project> getAllProjects()
返回所有的项目的列表,包括项目和插件。列表的顺序是先项目后插件。

返回:
所有项目和插件的列表

getCategory

public Category getCategory(java.lang.String path)

getData

public java.lang.Object getData(java.lang.String key)

getPath

public java.lang.String getPath()
获得当前世界的路径。

返回:
世界的路径

getPlugIns

public java.util.List<Project> getPlugIns()
返回所有的插件列表。

返回:
插件列表

getProject

public Project getProject(java.lang.String projectName)
通过项目的名称取得对应的项目。

参数:
projectName - 项目名称
返回:
项目,如果不存在返回null

getProjectClassLoader

public ProjectClassLoader getProjectClassLoader(java.lang.String projectName)

getProjects

public java.util.List<Project> getProjects()
返回所有的项目列表。

返回:
项目列表

getThing

public Thing getThing(java.lang.String path)
通过事物的路径来访问具体的事物。

参数:
path - 事物的路径
返回:
事物,不存在则返回null

getThingManagerListeners

public java.util.List<ThingManagerListener> getThingManagerListeners(java.lang.String thingManagerName)
获得注册的事物管理者的监听列表。

参数:
thingManagerName - 事物管理者的名称
返回:
事物管理者的监听者列表

getWorldClassLoader

public ProjectClassLoader getWorldClassLoader()

init

public void init(java.lang.String worldPath)
通过给定事物的存放路径来初始化世界。

参数:
worldPath - 世界的路径

refresh

public void refresh()
刷新当前世界中项目。


registThingManagerListener

public void registThingManagerListener(java.lang.String thingManagerName,
                                       ThingManagerListener listener)
注册事物管理器的监听者。 虽然在World中注册了事物管理者监听事件,但在具体的事物管理者实现中要使用注册的监听者,那么需在触发 事件通过World取得相应的监听者列表。

如要监听具体的事物管理者,可获得具体的事物管理者然后调用事物管理者的addListener方法添加监听。

参数:
thingManagerName - 事物管理者的名称
listener - 事物管理者事件监听者

runAction

public java.lang.Object runAction(java.lang.String actionPath,
                                  ActionContext actionContext)

runAction

public java.lang.Object runAction(java.lang.String actionPath,
                                  ActionContext actionContext,
                                  java.util.Map<java.lang.String,java.lang.Object> parameters)
执行一个动作。

参数:
actionPath - 动作路径
actionContext - 动作上下文
parameters - 参数
返回:
动作执行后的返回结果

setData

public void setData(java.lang.String key,
                    java.lang.Object value)

unregistThingManagerListener

public void unregistThingManagerListener(java.lang.String thingManagerName,
                                         ThingManagerListener listener)
取消事物管理者的监听者。

参数:
thingManagerName - 事物管理者的名称
listener - 事物管理者监听