程序包 org.xmeta
类 World
java.lang.Object
org.xmeta.World
public class World extends Object
- 作者:
- zyx
-
字段概要
字段 修饰符和类型 字段 说明 protected List<ThingEntry>
globalContexts
全局上下文int
helpSize
帮助列表的最大个数Thing
metaThing
元模型static byte
MODE_PROGRAMING
编程模式,默认static byte
MODE_WORKING
工作模式,一般JavaAction等发生变更时不重新编译protected ThreadLocal<Map<String,Object>>
threadLocalDatas
绑定到线程上的数据static String
WEBROOT_TEMP_THINGMANAGER
在WEB模式下,会把webroot作为一个模型管理器 -
方法概要
修饰符和类型 方法 说明 void
addFileThingManager(String name, File dir, boolean hasThingDir, boolean first)
把一个目录当作文件模型管理器加入到模型管理器列表中,如果目录是world的home目录,那么过滤不生效。void
addGlobalActionListener(Thing listener)
添加全局动作监听器。void
addGlobalActionListener(Thing listener, int index)
添加全局动作监听器。void
addGlobalContext(Thing contextThing, int index)
已过时。void
addHelp(String title, String sourcePath, String helpPath)
添加运行期的帮助。void
addLib(String lib)
void
addThingManager(ThingManager thingManager)
添加模型管理器。void
addThingManagerFirst(ThingManager thingManager)
添加模型管理器到最前面。ThingManager
createThingManager(String name, File managerRootFile, String link)
ThingManager
createThingManager(String name, String link)
创建一个ThingManager,必须是全路径<projectName>:<thingManagerName>。void
debug(ActionContext actionContext)
执行一个已经设置了断点的动作,可以把该方法的调用嵌入到代码中,从而可以 实现在代码中的调试断点。Object
get(String pathStr)
通过路径来获得模型,可能会返回项目、模型管理者、目录、模型或者模型的列表。Action
getAction(String actionPath)
通过动作模型的路径获得动作。Action
getAction(Thing actionThing)
通过模型获得一个动作。Class
getActionClass(String actionPath, ActionContext actionContext)
返回动作类,通常是动作模型对应的类,有些动作可能没有对应类。Class
getActionClass(Thing actionThing, ActionContext actionContext)
返回动作类,通常是动作模型对应的类,有些动作可能没有对应类。ActionListener
getActionListener()
ThingClassLoader
getClassLoader()
ClassThingManager
getClassThingManager()
<T> T
getData(String key)
获取一个用户数据。List<String>
getFailureThingManangers()
获取加载和初始化失败的模型管理器名称的列表。List<Help>
getHelps()
String
getHome(String name)
String
getHomeFormSytsem()
String
getHomeFromSystem(String name)
static World
getInstance()
取得世界的实例。String
getJVMBit()
List<String>
getLibList()
byte
getMode()
String
getOS()
String
getPath()
获得当前世界的路径。URL
getResource(String path)
通过路径获取资源。InputStream
getResourceAsStream(String path)
以流的形式返回资源,如果没有返回null。Thing
getThing(String path)
通过模型的路径来访问具体的模型。Thing
getThing(String path, String thingManager, String descriptor)
通过模型的路径获取指定的模型,如果存在那么使用给定的descriptor创建模型,并保存到指定的thingManager下。ThingCoder
getThingCoder(String type)
通过类型返回模型的编码器,类型通常是文件的后缀名。List<ThingCoder>
getThingCoders()
返回编码器列表。ThingManager
getThingManager(String name)
根据模型管理器的名称返回模型管理器。List<ThingManagerListener>
getThingManagerListeners(String thingManagerName)
获得注册的模型管理者的监听列表。List<ThingManager>
getThingManagers()
获取模型管理器列表。<T> T
getThreadData(String key)
返回绑定到本模型的ThradLocal中的数据。TransientThingManager
getTransientThingManager()
String
getWebFileRoot()
ThingManager
getWorkDirThingManager()
返回工作目录对应的模型管理器,用于XWorker之外项目获取自身的模型管理器。void
init(String worldPath)
void
init(String worldPath, ClassLoader classLoader)
通过给定模型的存放路径来初始化世界。ThingManager
initThingManager(File rootPath)
ThingManager
initThingManager(File rootPath, String name)
boolean
isFailureThingManager(String thingManager)
返回指定的模型管理器是否是加载或初始化失败。boolean
isHaveActionListener()
boolean
isInited()
返回是否已经初始化过。boolean
isThingFile(String fileName)
返回指定的文件名是否是保存模型的文件。boolean
isVerbose()
Thing
loadThingFromClasspath(String thingPath)
从类的路径中装载模型。void
moveThingManagerToFirst(ThingManager thingManager)
先从模型管理器列表中移除,然后再加到最前面。void
refresh()
刷新当前世界中项目。void
registThingCoder(ThingCoder thingCoder)
注册模型的编码编码和解码器。void
registThingManagerListener(String thingManagerName, ThingManagerListener listener)
注册模型管理器的监听者。void
removeData(String key)
移除一个用户数据。void
removeFailureThingManager(String thingManager)
从加载或初始化失败的模型管理器列表中移除指定的模型管理器。void
removeGlobalActionListener(Thing listener)
移除一个全局动作监听器。void
removeGlobalContext(Thing contextThing)
已过时。void
removeThingManager(ThingManager thingManager)
移除模型管理器。void
removeThingManager(ThingManager thingManager, boolean deleteRes)
Object
runAction(String actionPath, ActionContext actionContext)
Object
runAction(String actionPath, ActionContext actionContext, Map<String,Object> parameters)
执行一个动作。void
runActionAsync(String actionPath, ActionContext actionContext)
void
runActionAsync(String actionPath, ActionContext actionContext, Map<String,Object> parameters)
void
setActionListener(ActionListener actionListener)
void
setData(String key, Object value)
设置一个用户数据。void
setMode(byte mode)
void
setThreadData(String key, Object data)
设置绑定到当前模型的ThreadLocal的数据。void
setVerbose(boolean verbose)
void
setWebFileRoot(String webFileRoot)
String
testFileHome(String filePath)
void
unregistThingManagerListener(String thingManagerName, ThingManagerListener listener)
取消模型管理者的监听者。
-
字段详细资料
-
MODE_PROGRAMING
public static byte MODE_PROGRAMING编程模式,默认 -
MODE_WORKING
public static byte MODE_WORKING工作模式,一般JavaAction等发生变更时不重新编译 -
WEBROOT_TEMP_THINGMANAGER
在WEB模式下,会把webroot作为一个模型管理器 -
metaThing
元模型 -
globalContexts
全局上下文 -
threadLocalDatas
绑定到线程上的数据 -
helpSize
public int helpSize帮助列表的最大个数
-
-
方法详细资料
-
getInstance
取得世界的实例。- 返回:
- 世界的实例
-
setMode
public void setMode(byte mode) -
getMode
public byte getMode() -
getLibList
-
addLib
-
createThingManager
创建一个ThingManager,必须是全路径<projectName>:<thingManagerName>。- 参数:
name
- 名称link
- 连接- 返回:
- 模型管理器
-
createThingManager
-
getFailureThingManangers
获取加载和初始化失败的模型管理器名称的列表。- 返回:
- 模型管理器列表
-
isFailureThingManager
返回指定的模型管理器是否是加载或初始化失败。- 参数:
thingManager
- 模型管理器- 返回:
- 是否失败
-
removeFailureThingManager
从加载或初始化失败的模型管理器列表中移除指定的模型管理器。- 参数:
thingManager
- 模型管理器名
-
addGlobalContext
已过时。添加全局上下文。动作上下文已改名为动作监听器,使用addGlobalActionListener。- 参数:
contextThing
- 模型index
- 位置
-
addGlobalActionListener
添加全局动作监听器。全局动作监听器可以监听除了全局监听器的动作之外的所有动作的执行。- 参数:
listener
- 监听器
-
addGlobalActionListener
添加全局动作监听器。全局动作监听器可以监听除了全局监听器的动作之外的所有动作的执行。- 参数:
listener
- 监听器index
- 位置
-
removeGlobalContext
已过时。移除一个全局上下文。- 参数:
contextThing
- 模型
-
removeGlobalActionListener
移除一个全局动作监听器。- 参数:
listener
- 全局监听器
-
get
通过路径来获得模型,可能会返回项目、模型管理者、目录、模型或者模型的列表。- 参数:
pathStr
- 路径- 返回:
- 路径所对应的模型
-
loadThingFromClasspath
从类的路径中装载模型。- 参数:
thingPath
- 模型路径- 返回:
- 模型
-
getResource
通过路径获取资源。- 参数:
path
- 路径- 返回:
- 资源,没找到返回null
- 抛出:
IOException
- 异常
-
getResourceAsStream
以流的形式返回资源,如果没有返回null。首先从文件系统中找,其次从classpath下寻找资源。- 参数:
path
- 路径- 返回:
- 输入流
- 抛出:
IOException
- IO异常
-
getAction
通过动作模型的路径获得动作。- 参数:
actionPath
- 动作路径- 返回:
- Action
-
getActionClass
返回动作类,通常是动作模型对应的类,有些动作可能没有对应类。- 参数:
actionPath
- 动作路径actionContext
- 变量上下文- 返回:
- 类
-
getActionClass
返回动作类,通常是动作模型对应的类,有些动作可能没有对应类。- 参数:
actionThing
- 动作模型actionContext
- 变量上下文- 返回:
- 类
-
getAction
通过模型获得一个动作。- 参数:
actionThing
- 定义动作的模型- 返回:
- 动作
-
getData
获取一个用户数据。- 参数:
key
- 键- 返回:
- 值
-
setThreadData
设置绑定到当前模型的ThreadLocal的数据。 -
getThreadData
返回绑定到本模型的ThradLocal中的数据。- 参数:
key
-- 返回:
-
getPath
获得当前世界的路径。- 返回:
- 世界的路径
-
debug
执行一个已经设置了断点的动作,可以把该方法的调用嵌入到代码中,从而可以 实现在代码中的调试断点。- 参数:
actionContext
- 变量上下文
-
getThing
通过模型的路径来访问具体的模型。- 参数:
path
- 模型的路径- 返回:
- 模型,不存在则返回null
-
getThing
通过模型的路径获取指定的模型,如果存在那么使用给定的descriptor创建模型,并保存到指定的thingManager下。- 参数:
path
- 模型的路径thingManager
- 模型管理器descriptor
- 描述者- 返回:
- 模型
-
getThingManagers
获取模型管理器列表。- 返回:
- 模型管理器列表
-
getThingManagerListeners
获得注册的模型管理者的监听列表。- 参数:
thingManagerName
- 模型管理者的名称- 返回:
- 模型管理者的监听者列表
-
getClassLoader
-
getHome
-
getHomeFromSystem
-
testFileHome
-
getHomeFormSytsem
-
init
-
init
通过给定模型的存放路径来初始化世界。- 参数:
worldPath
- 世界的路径
-
isInited
public boolean isInited()返回是否已经初始化过。- 返回:
- 是否已经初始化
-
refresh
public void refresh()刷新当前世界中项目。 -
registThingManagerListener
注册模型管理器的监听者。
这里注册的监听者是所有模型管理者共有的,注册的键值是模型管理者的名称,不同项目下同名的模型管理者可以通过自身的名字获得相同 的模型管理者事件监听者列表,如果注册时模型管理者名称为*,那么表示此事件监听者监听所有模型管理者的事件。
虽然在World中注册了模型管理者监听事件,但在具体的模型管理者实现中要使用注册的监听者,那么需在触发 事件通过World取得相应的监听者列表。
如要监听具体的模型管理者,可获得具体的模型管理者然后调用模型管理者的addListener方法添加监听。- 参数:
thingManagerName
- 模型管理者的名称listener
- 模型管理者事件监听者
-
runActionAsync
-
runActionAsync
public void runActionAsync(String actionPath, ActionContext actionContext, Map<String,Object> parameters) -
runAction
-
runAction
public Object runAction(String actionPath, ActionContext actionContext, Map<String,Object> parameters)执行一个动作。- 参数:
actionPath
- 动作路径actionContext
- 动作上下文parameters
- 参数- 返回:
- 动作执行后的返回结果
-
setData
设置一个用户数据。- 参数:
key
- 键value
- 值
-
removeData
移除一个用户数据。- 参数:
key
- 键
-
unregistThingManagerListener
取消模型管理者的监听者。- 参数:
thingManagerName
- 模型管理者的名称listener
- 模型管理者监听
-
getActionListener
-
setActionListener
-
isHaveActionListener
public boolean isHaveActionListener() -
isThingFile
返回指定的文件名是否是保存模型的文件。- 参数:
fileName
- 文件名- 返回:
- 是否是模型文件
-
addThingManager
添加模型管理器。- 参数:
thingManager
- 模型管理器
-
getClassThingManager
-
addThingManagerFirst
添加模型管理器到最前面。- 参数:
thingManager
- 模型管理器
-
moveThingManagerToFirst
先从模型管理器列表中移除,然后再加到最前面。如果移除失败(不在模型管理器列表中),则不会添加。- 参数:
thingManager
-
-
getThingManager
根据模型管理器的名称返回模型管理器。- 参数:
name
- 名称- 返回:
- 模型管理器
-
removeThingManager
移除模型管理器。- 参数:
thingManager
- 模型管理器
-
removeThingManager
-
getOS
-
getJVMBit
-
initThingManager
-
initThingManager
-
addHelp
添加运行期的帮助。- 参数:
title
- 标题sourcePath
- 范围helpPath
- 路径模型
-
getHelps
-
isVerbose
public boolean isVerbose() -
setVerbose
public void setVerbose(boolean verbose) -
getTransientThingManager
-
registThingCoder
注册模型的编码编码和解码器。- 参数:
thingCoder
- 编码器的实例
-
getThingCoders
返回编码器列表。- 返回:
- 模型编码劣列表
-
getThingCoder
通过类型返回模型的编码器,类型通常是文件的后缀名。- 参数:
type
- 编码类型- 返回:
- 模型编码器
-
getWebFileRoot
-
setWebFileRoot
-
addFileThingManager
public void addFileThingManager(String name, File dir, boolean hasThingDir, boolean first) throws IOException把一个目录当作文件模型管理器加入到模型管理器列表中,如果目录是world的home目录,那么过滤不生效。- 参数:
name
- 模型管理器名称dir
- 目录hasThingDir
- 是否包含things子目录first
- 是否添加到第一个模型管理器中- 抛出:
IOException
- 异常
-
getWorkDirThingManager
返回工作目录对应的模型管理器,用于XWorker之外项目获取自身的模型管理器。- 返回:
- 模型管理器,总是返回第一个模型管理
-