程序包 org.xmeta

类 Thing

  • 直接已知子类:
    MetaThing

    public class Thing
    extends Object

    模型也称为事物,意思是用来表示各种东西。模型也是对象,有属性、行为和子对象(子节点)。

    模型实现了面向对象的方法。其中描述者(descriptor)相当于类,一个模型可以设置多个类,模型继承类的行为。 模型之间也有继承关系,一个模型可以继承多个其它模型,从而继承被继承模型的行为。

    作者:
    zyx
    • 字段详细资料

      • DESCRIPTORS

        public static final String DESCRIPTORS
        描述者属性的名字
        另请参阅:
        常量字段值
      • DESCRIPTION

        public static final String DESCRIPTION
        描述属性的名字
        另请参阅:
        常量字段值
      • ORIGIN_THING_PATH

        public static final String ORIGIN_THING_PATH
        原始模型的路径,尤其是在做detach时
        另请参阅:
        常量字段值
      • attributes

        protected Map<String,​Object> attributes
        模型的属性集合。
      • parent

        protected Thing parent
        父模型,包含此模型的父模型。
      • metadata

        protected ThingMetadata metadata
        模型的元数据,用于存放此模型在系统中的一些属性。
      • childs

        protected List<Thing> childs
        子模型列表
      • thingNames

        protected List<String> thingNames
        模型的名称(类名)的缓存列表
      • extendsCaches

        protected ThingEntry[] extendsCaches
        继承列表的缓存
      • descriptorsCaches

        protected ThingEntry[] descriptorsCaches
        描述者列表的缓存
      • isTransient

        protected boolean isTransient
        是否是瞬态的模型
      • action

        protected Action action
        每一个模型都有动作的形态
      • datas

        protected Map<String,​Object> datas
        附加于模型的用户数据
      • thingListener

        protected ThingListener thingListener
        模型监听器,监听模型的更新和移除事件等事件
    • 构造器详细资料

      • Thing

        public Thing()
        默认构造函数,构造一个空的瞬态模型。
      • Thing

        public Thing​(String descriptorPath)
        通过描述者的路径来构造一个瞬态模型。
        参数:
        descriptorPath - 描述者的路径
      • Thing

        public Thing​(Thing descriptor)
        使用指定的描述者来创建一个瞬态模型。
        参数:
        descriptor -
      • Thing

        public Thing​(String name,
                     String label)
        通过名称和标签创建一个瞬态模型。
        参数:
        name - 模型的名称
        label - 模型的标签
      • Thing

        public Thing​(String name,
                     String label,
                     String descriptorPath)
        通过名称、标签和描述者的路径来构造一个瞬态模型。
        参数:
        name - 模型的名称
        label - 模型的标签
        descriptorPath - 模型的路径
      • Thing

        public Thing​(String name,
                     String label,
                     String descriptorPath,
                     boolean isTransient)
        指定名称、标签、描述者和是否是瞬态的来构造一个模型。 非瞬态的模型一般有模型管理者创建。
        参数:
        name - 模型的名称
        label - 模型的标签
        descriptorPath - 模型的描述者
        isTransient - 是否是瞬态的
    • 方法详细资料

      • addChild

        public void addChild​(Thing childThing)
        添加一个子模型。
        参数:
        childThing - 子模型
      • addChild

        public void addChild​(Thing childThing,
                             int index)
      • addChild

        public void addChild​(Thing childThing,
                             boolean changeParen)
      • addChild

        public void addChild​(Thing childThing,
                             int index,
                             boolean changeParent)
        在指定的索引位置添加一个子模型。 如果指定索引不存在,那么尽量添加在最后面。
        参数:
        childThing - 子模型
        index - 位置索引
        changeParent - 是否改变子模型的父模型为本模型
      • addDescriptor

        public void addDescriptor​(int index,
                                  Thing descriptor)

        在指定位置添加一个描述者。

        如果描述者已经存在且位置不同,那么会切换到新的位置,如果index为-1那么添加至结尾。
        参数:
        index - 描述者的位置
        descriptor - 描述者
      • addDescritpor

        public void addDescritpor​(int index,
                                  String descriptorPath)
        通过描述者的路径加入描述者,可以加入多个,中间使用','号隔开。
        参数:
        index - 位置索引
        descriptorPath - 描述者的路径
      • addExtend

        public void addExtend​(int index,
                              Thing extendThing)

        在指定位置添加一个继承模型。

        如果继承已经存在且位置不同,那么会切换到新的位置,如果index为-1那么添加至结尾。
        参数:
        extendThing - 要继承的模型
        index - 参数位置
      • changeChildIndex

        public void changeChildIndex​(Thing child,
                                     int index,
                                     int moveStep)
        改变一个子模型的位置索引。
        参数:
        child - 子模型
        index - 要移动的位置,如果为-1,那么通过moveStep来上移或下移
        moveStep - 小于0表示上移,大于0表示下移,步伐为其绝对值
      • cognize

        public void cognize​(Map<String,​Object> adata)
        从一个Map数据认知并把认知结果保存到自身。
        参数:
        adata - 一个Map数据
      • cognize

        public void cognize​(Thing thing)

        认知另一模型并把认知结果作为自己的一部分。

        认识另一模型和认识非模型的对象的区别是,认识其他模型是把另一模型的所有内容保存到自身,而认识 非模型物时是根据自身的描述者所描述的属性和子模型去从认知对象上取值的。
        参数:
        thing - 另一模型
      • paste

        public void paste​(Thing data)
      • detach

        public Thing detach()
        克隆一个新模型,新的模型是瞬态的。 不会克隆模型的继承和描述,仅仅是克隆模型本身。
        返回:
        克隆的新模型
      • detach

        public Thing detach​(boolean detachToTransient)
        已过时。
        使用detach()。
        参数:
        detachToTransient - 是否detach到瞬态
        返回:
        模型
      • doAction

        public <T> T doAction​(String name)
        执行一个动作,把自己作为self变量放入动作上下文中。
        参数:
        name - 动作名称
        返回:
        执行后的返回结果
      • doAction

        public <T> T doAction​(String name,
                              Map<String,​Object> parameters)
        执行一个动作,把自己作为self变量放入动作上下文中,使用新的动作上下文和传入参数。
        参数:
        name - 动作名
        parameters - 参数
        返回:
        执行结果
      • doAction

        public <T> T doAction​(String name,
                              ActionContext actionContext)
        执行一个动作,把自己作为self变量放入动作上下文中。
        参数:
        name - 动作名称
        actionContext - 变量容器
        返回:
        执行后的返回结果
      • doAction

        public <T> T doAction​(String name,
                              ActionContext actionContext,
                              Map<String,​Object> parameters)
        执行一个动作,把自己作为self变量放入动作上下文中。
        参数:
        name - 动作名称
        actionContext - 变量容器
        parameters - 参数
        返回:
        执行后的返回结果
      • doAction

        public <T> T doAction​(String name,
                              ActionContext actionContext,
                              Map<String,​Object> parameters,
                              boolean isSubAction)
        执行一个动作,把自己作为self变量放入动作上下文中。
        参数:
        name - 动作名
        actionContext - 变量上下文
        parameters - 参数
        isSubAction - 是否是子动作
        返回:
        执行结果
      • run

        public <T> T run​(String name,
                         ActionContext context,
                         Map<String,​Object> parameters,
                         boolean isSubAction,
                         boolean includeSelf)
        执行一个动作。
        参数:
        name - 动作名
        context - 变量上下文
        parameters - 参数
        isSubAction - 是否是子动作
        includeSelf - 是否包含自己
        返回:
        执行结果
      • exec

        public <T> T exec​(String name,
                          Object... params)
      • doExec

        public <T> T doExec​(String name,
                            Object... params)
      • run

        public <T> T run​(String name,
                         ActionContext context,
                         Object[] parameters,
                         boolean isSubAction,
                         boolean includeSelf)
        按普通参数的方式执行。
        参数:
        name - 动作名
        context - 变量上下文
        parameters - 参数列表
        isSubAction - 是否是子动作
        includeSelf - 是否包含自己
        返回:
        执行结果
      • run

        public <T> T run​(String name,
                         ActionContext context,
                         Map<String,​Object> parameters,
                         boolean isSubAction)
        执行一个动作,不把自己放入动作上下文中。
        参数:
        name - 动作名
        context - 变量上下文
        parameters - 参数
        isSubAction - 是否是子动作
        返回:
        执行结果
      • run

        public <T> T run​(String name,
                         ActionContext context,
                         Map<String,​Object> parameters)
        执行一个动作,不把自己放入动作上下文中。
        参数:
        name - 动作名
        context - 变量上下文
        parameters - 参数
        返回:
        执行结果
      • run

        public <T> T run​(String name,
                         ActionContext context)
        执行一个动作,不把自己放入动作上下文中。
        参数:
        name - 动作名
        context - 变量上下文
        返回:
        执行结果
      • run

        public <T> T run​(String name,
                         Map<String,​Object> parameters)
        执行一个动作,不把自己放入动作上下文中,使用新的动作上下文和传入的参数。
        参数:
        name - 动作名
        parameters - 参数
        返回:
        执行结果
      • run

        public <T> T run​(String name)
        执行一个动作,不把自己放入动作上下文中。
        参数:
        name - 动作名
        返回:
        执行结果
      • get

        public Object get​(String path)

        通过路径获得模型的属性或者子模型,可返回属性值、子模型或者子模型列表。

        路径遵从模型的路径规则。
        参数:
        path - 路径
        返回:
        路径对应的对象,找不到返回null
      • getActionThing

        public Thing getActionThing​(String name)

        获得指定动作的模型定义。

        搜寻模型动作的规则是: 如果不是super的动作,那么先搜寻模型本身定义的动作。 依次搜寻描述者和描述者的继承定义的动作。 依次搜索模型的描述者的继承者定义的动作。
        参数:
        name - 动作名称
        返回:
        动作模型,如果不存在返回null
      • getActionThings

        public List<Thing> getActionThings​(String name)
        获取一个模型的指定动作的所有定义。依次从自己、描述者和继承上获取。
        参数:
        name -
        返回:
      • getAction

        public Action getAction()
      • getRunnable

        public Runnable getRunnable​(ActionContext actionContext)
        把当前模型转化为一个Runnable。
        参数:
        actionContext - 变量上下文
        返回:
        runnable
      • getRunnable

        public Runnable getRunnable​(ActionContext actionContext,
                                    Map<String,​Object> params)
        把当前模型转化为一个Runnable。
        参数:
        actionContext - 变量上下文
        params - 参数
        返回:
        runnable
      • getCallable

        public Callable<Object> getCallable​(ActionContext actionContext)
        把当前模型转化为一个Callable。
        参数:
        actionContext - 变量上下文
        返回:
        callable
      • getCallable

        public Callable<Object> getCallable​(ActionContext actionContext,
                                            Map<String,​Object> params)
        把当前模型转化为一个Callable。
        参数:
        actionContext - 变量上下文
        params - 参数
        返回:
        callable
      • getActionsThings

        public List<Thing> getActionsThings()
      • getActionThings

        public List<Thing> getActionThings()
        返回本模型的所有的动作定义,包括自身定义的、描述者定义的和继承定义的。
        返回:
        动作定义列表
      • getAllAttributesDescriptors

        public List<Thing> getAllAttributesDescriptors()
        取本模型的所有描述者所定义属性描述列表。
        返回:
        属性描述列表
      • getAllChilds

        public List<Thing> getAllChilds()
        获得所有的直接第一级子模型,包括继承的模型的子模型。
        返回:
        所有的子模型
      • getAllChilds

        public List<Thing> getAllChilds​(String thingName)

        根据描述者的名称来获取所有符合的子模型,包括继承的子模型。

        注:这里是描述者的名,不是描述者的路径。
        参数:
        thingName - 描述者的名称
        返回:
        描述者的名称为指定名称的子模型
      • getAllChildsDescriptors

        public List<Thing> getAllChildsDescriptors()
        获取子模型的描述者列表,返回本模型的所有描述者所定义的子模型的描述列表。
        返回:
        描述者列表
      • getAllExtends

        public List<Thing> getAllExtends()
        返回模型的所有继承模型列表,包括继承的继承...。
        返回:
        所有继承的模型列表
      • getAttribute

        public Object getAttribute​(String name)
        获得属性值。
        参数:
        name - 属性名称
        返回:
        属性的值。
      • getAttributeDescriptor

        public Thing getAttributeDescriptor​(String name)
        根据指定的属性名称获取该属性的描述者。
        参数:
        name - 属性名称
        返回:
        属性的描述者
      • getAttributes

        public Map<String,​Object> getAttributes()
        获得属性集合。
        返回:
        属性集合
      • getAttributesDescriptors

        public List<Thing> getAttributesDescriptors()

        根获取模型属性描述列表,只返回第一个描述者的属性描述列表。

        返回:
        模型的属性描述列表
      • getBoolean

        public boolean getBoolean​(String name)
      • getBoolean

        public boolean getBoolean​(String name,
                                  boolean defaultValue)
      • getBoolean

        public boolean getBoolean​(String name,
                                  boolean defaultValue,
                                  ActionContext actionContext)
      • getByte

        public byte getByte​(String name)
      • getByte

        public byte getByte​(String name,
                            byte defaultValue)
      • getByte

        public byte getByte​(String name,
                            byte defaultValue,
                            ActionContext actionContext)
      • getBytes

        public byte[] getBytes​(String name)
      • getBytes

        public byte[] getBytes​(String name,
                               byte[] defaultValue)
      • getBytes

        public byte[] getBytes​(String name,
                               byte[] defaultValue,
                               ActionContext actionContext)
      • getChar

        public char getChar​(String name)
      • getChar

        public char getChar​(String name,
                            char defaultValue)
      • getChar

        public char getChar​(String name,
                            char defaultValue,
                            ActionContext actionContext)
      • getChilds

        public List<Thing> getChilds()
        返回本模型的直接子模型,不包含继承的子模型。
        返回:
        本模型的直接子模型
      • getChilds

        public List<Thing> getChilds​(String thingName)
        根据描述者的名称来获取所有符合的子模型,不包括继承的子模型。
        参数:
        thingName - 描述者的名称
        返回:
        描述者的名称为指定名称的子模型
      • getChildsDescriptors

        public List<Thing> getChildsDescriptors()
        获取子模型的描述者列表,只返回第一个描述者所定义的子模型的描述列表。
        返回:
        子模型的描述者列表
      • getClassThing

        public Thing getClassThing()
      • getClasses

        public List<Thing> getClasses()
      • getDescriptor

        public Thing getDescriptor()
        返回模型的主要的描述者。
        返回:
        第一个描述者
      • getDescriptors

        public List<Thing> getDescriptors()

        返回本模型定义的的所有描述者的列表。

        一个模型的描述者列表是在属性descriptors里定义的,如果有多个那么之间用,号隔开。另外元模型是所有的 模型的基本描述,一般在描述者列表中元模型被放到了列表的末端

        如果模型的一个描述者继承了其他模型,那么继承的其他模型也是这个模型的描述者,这样的描述者在此方法里 不能获得,如想取得模型的所有包含描述者继承的描述者,那么可以是用getAllDescriptors()方法。

        返回:
        本模型的所有描述者的列表
      • getAllDescriptors

        public List<Thing> getAllDescriptors()

        返回本模型所有的描述者列表,包括描述者继承的模型。

        与getDescriptors方法不同的是getDescriptors方法只返回自身定义的描述者的列表。
        返回:
        包含描述者继承的模型所有的描述者列表
      • getDouble

        public double getDouble​(String name)
      • getDouble

        public double getDouble​(String name,
                                double defaultValue)
      • getDouble

        public double getDouble​(String name,
                                double defaultValue,
                                ActionContext actionContext)
      • getExtends

        public List<Thing> getExtends()
        返回本模型的继承模型列表。
        返回:
        继承模型列表
      • getFloat

        public float getFloat​(String name)
      • getFloat

        public float getFloat​(String name,
                              float defaultValue)
      • getFloat

        public float getFloat​(String name,
                              float defaultValue,
                              ActionContext actionContext)
      • getInt

        public int getInt​(String name)
      • getInt

        public int getInt​(String name,
                          int defaultValue)
      • getObject

        public Object getObject​(String name,
                                ActionContext actionContext)
        从模型中取指定的属性的字符串的值作为变量名,然后从ActionContext中取变量,支持var:或ognl:,默认相当于 var:。
        参数:
        name - 属性名
        actionContext - 变量上下文
        返回:
        返回对象
      • getLong

        public long getLong​(String name)
      • getLong

        public long getLong​(String name,
                            long defaultValue)
      • getLong

        public long getLong​(String name,
                            long defaultValue,
                            ActionContext actionContext)
      • getMetadata

        public ThingMetadata getMetadata()
        获得本模型的元数据。
        返回:
        当前模型的元数据
      • getParent

        public Thing getParent()
        返回本模型的父模型。
        返回:
        父模型,如果没有返回null
      • getRoot

        public Thing getRoot()
        返回本模型的最根级(顶层)父模型,如果当前模型已经是根模型,那么返回自身。
        返回:
        根父模型
      • getShort

        public short getShort​(String name)
      • getShort

        public short getShort​(String name,
                              short defaultValue)
      • getShort

        public short getShort​(String name,
                              short defaultValue,
                              ActionContext actionContext)
      • getStringBlankAsNull

        public String getStringBlankAsNull​(String name)
        获取字符串,trim()后的空字符串也返回null。
        参数:
        name - 属性名
        返回:
        结果
      • valueExists

        public boolean valueExists​(String name)
        返回指定的属性的值是否存在,在attributes里为null或空字符串都返回null。
        参数:
        name -
        返回:
      • getString

        public String getString​(String name,
                                String defaultValue,
                                ActionContext actionContext)
        通过属性值从上下文中取字符串,通过UtilString获取字符串,如果返回null或空,那么返回defaultValue。
        参数:
        name - 属性名
        defaultValue - 默认值
        actionContext - 变量上下文
        返回:
      • getThing

        public Thing getThing​(String childThingPath)
        通过指定的子模型的路径获取一个子模型。
        参数:
        childThingPath - 子模型的路径
        返回:
        子模型
      • getQuotedThing

        public Thing getQuotedThing​(String attribute)
        返回属性所指向的引用的模型,如果不存在替换为根模型的路径当前的根模型开始寻找。 有的时候一个属性的值是一个所引用的模型的路径,由于模型引擎总是使用全路径, 这样如果引用时本模型根模型的某个字模型,并且根模型拷贝到了其它目录下或改名了, 那么这个引用就会失效。 通过使用此方法可以避免这个问题,并且属性的值会重设,如果引用的模型同属一个根 模型的话。
        参数:
        attribute - 属性名称
        返回:
        所引用的模型
      • getThingName

        public String getThingName()
        返回模型的模型名,相当于Java对象的类名。
        返回:
        模型名
      • getThingNames

        public List<String> getThingNames()
        返回模型的所有模型名。
        返回:
        模型名
      • initDefaultValue

        public void initDefaultValue()
        初始化模型属性的默认值。
      • initDefaultValue

        public void initDefaultValue​(boolean forece)
        初始化模型属性的默认值。
        参数:
        forece - 如果为ture,那么即使模型的属性已经设置过了,也会被默认值代替,如果描述者设置了默认值。
      • initChildPath

        public void initChildPath()
        重新初始化所有子模型的路径。
      • initChildMetadata

        protected void initChildMetadata​(Thing child)
        初始化子模型的元数据。
        参数:
        child - 子模型
      • isThing

        public boolean isThing​(String descriptorPath)
        根据指定的描述者来判断该模型是否是这个指定描述者的所描述的模型。 类似Java的instanceof的作用。
        参数:
        descriptorPath - 描述者的路径
        返回:
        是否是描述者所描述的模型
      • isThing

        public boolean isThing​(Thing descriptor)
        根据指定的描述者来判断该模型是否这个指定描述者所描述的模型。 类似Java的instanceof的作用。
        参数:
        descriptor - 描述者
        返回:
        是否这个描述者所描述的模型
      • isThingByName

        public boolean isThingByName​(String descriptorName)
        根据描述者的名称返回当前模型是否是指定的模型,此判定方法并非严格。 类似Java的instanceof的作用。
        参数:
        descriptorName - 描述者的名称
        返回:
        是否是该模型
      • replace

        public void replace​(Thing thing)
        使用新的模型来覆盖当前模型。
        参数:
        thing -
      • isTransient

        public boolean isTransient()
        返回本模型是否是瞬态的。
        返回:
        是否是瞬态的
      • getChildsIterator

        public Iterator<Thing> getChildsIterator()
        返回遍历所有的子节点遍历器。
        返回:
        子节点遍历器
      • put

        public Object put​(String name,
                          Object value)
        设置属性的值。
        参数:
        name - 属性名称
        value - 属性的值
        返回:
      • putAll

        public void putAll​(Map<String,​Object> values)
        放入Map的全部值,但不触发descriptor和extends的改变事件,同时也会更新日期。
        参数:
        values - 值
      • set

        public void set​(String name,
                        Object value)
        设置属性。
        参数:
        name - 属性名
        value - 值
      • setParent

        public void setParent​(Thing parent)
      • removeDescriptor

        public void removeDescriptor​(Thing descriptor)
        从本模型的描述者列表中移除指定的描述者。
        参数:
        descriptor - 描述者
      • removeChild

        public void removeChild​(Thing child)
        删除指定的子模型。
        参数:
        child - 要删除的子模型
      • removeChild

        public void removeChild​(int index)
      • remove

        public boolean remove()
        删除调用自身的模型管理者删除自己,设置自身的状态为已删除。
        返回:
        是否成功
      • removeExtend

        public void removeExtend​(Thing extend)
        从本模型的继承列表中移除指定的继承模型。
        参数:
        extend - 继承的模型
      • save

        public boolean save()
        保存自己,通常是调用模型所在的模型管理者来保存。
        返回:
        是否成功
      • saveAs

        public void saveAs​(String thingManager,
                           String path)
        相当于move根节点,在原来的地方删除根节点,把根节点按照指定的路径保存到指定的目录下,如果目标模型存在那么会替换目标模型。
        参数:
        thingManager - 模型管理器
        path - 模型路径
      • copyTo

        public Thing copyTo​(String thingManager,
                            String category)
        把自己拷贝一个新的模型到指定的模型管理器的指定目录下。
        参数:
        thingManager - 模型管理器
        category - 目录
        返回:
        模型
      • beginModify

        public void beginModify()
        beginBigModifiy必须和endBigModify成对出现。
      • endModify

        public void endModify​(boolean change)
      • toXML

        public String toXML()
      • setThreadData

        public void setThreadData​(String key,
                                  Object data)
        设置绑定到当前模型的ThreadLocal的数据。
        参数:
        key -
        data -
      • getThreadData

        public Object getThreadData​(String key)
        返回绑定到本模型的ThradLocal中的数据。
        参数:
        key -
        返回:
      • getTempData

        public <T> T getTempData​(String key)
        返回一个和修改时间绑定的缓存,如果模型的当前修改时间和保存时不一样,那么缓存无效返回null。
        参数:
        key -
        返回:
      • setTempData

        public void setTempData​(String key,
                                Object data)
        设置一个缓存数据。如果模型被修改了,那么缓存也变得无效了。
        参数:
        key -
        data -
      • setData

        public void setData​(String key,
                            Object data)
        缓存一个对象到当前模型中。
        参数:
        key -
        data -
      • getData

        public <T> T getData​(String key)
        获取缓存到当前模型的对象。
        类型参数:
        T -
        参数:
        key -
        返回:
      • getDatas

        public Map<String,​Object> getDatas()
        返回保存Data数据的Map,有可能返回null,如果没有初始化(放过数据)。
        返回:
        保存的值
      • setCachedData

        public void setCachedData​(String key,
                                  Object data)
        设置缓存数据,如果模型在后面修改了,那么缓存失效。
        参数:
        key - key
        data - 数据
      • getCachedData

        public <T> T getCachedData​(String key)
        获取缓存的数据。
        参数:
        key - 键
        返回:
      • setStaticCachedData

        public void setStaticCachedData​(String key,
                                        Object data)
        设置缓存数据到World中,如果模型在后面修改了,那么缓存失效。
        参数:
        key - key
        data - 数据
      • getStaticCachedData

        public <T> T getStaticCachedData​(String key)
        获取缓存到World中的数据。
        参数:
        key - 键
        返回:
      • setStaticData

        public void setStaticData​(String key,
                                  Object value)
        数据是保存到到World中的,key是<当前模型的路径>_<key>。
        参数:
        key -
        value -
      • getStaticData

        public <T> T getStaticData​(String key)
        从World的对象缓存中取对象,其中从缓存中去对象的键是<当前模型的路径>_<key>。
        类型参数:
        T - 对象类型
        参数:
        key -
        返回:
      • setStaticThreadData

        public void setStaticThreadData​(String key,
                                        Object value)
        保存线程相关的对象到World中,key是<当前模型的路径>_<key>。
        参数:
        key -
        value -
      • getStaticThreadData

        public <T> T getStaticThreadData​(String key)
        从World的线程相关的对象缓存中取对象,其中从缓存中去对象的键是<当前模型的路径>_<key>。
        类型参数:
        T -
        参数:
        key -
        返回:
      • setTransient

        public void setTransient​(boolean isTransient)
        设置模型是否是内存型的。
        参数:
        isTransient -
      • getObject

        public <T> T getObject​(String key)
        获取属性,并强制转换到相应的类型。
        类型参数:
        T -
        参数:
        key -
        返回:
      • getChildAt

        public Thing getChildAt​(int index)
        返回指定索引位置的子节点,如果超出范围返回null。
        参数:
        index -
        返回:
        如果超出子节点的范围,返回null,否则返回对应的子节点。
      • getChildBy

        public Thing getChildBy​(Thing refChild,
                                int index)
        获取参考子节点的相对位置的子节点,首先找到参考子节点的位置索引,然后和目标index相加获得最终的索引位置。 所以如果index小于0,是指获取参考节点的索引更小的子节点,如果index大于0,则是获取后面的节点。
        参数:
        refChild -
        index -
        返回:
        如果超出子节点的范围或参考子节点不是当前模型的子节点返回null,否则返回对应的子节点。
      • getThingListener

        public ThingListener getThingListener()
        获取模型监听器,入股没有设置返回null。
        返回:
      • setThingListener

        public void setThingListener​(ThingListener thingListener)
        设置新的模型监听器,如果已有监听器将被覆盖。
        参数:
        thingListener -