程序包 org.xmeta

类 Thing

java.lang.Object
org.xmeta.Thing
直接已知子类:
MetaThing

public class Thing
extends Object

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

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

作者:
zyx
  • 字段详细资料

  • 构造器详细资料

    • Thing

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

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

      public Thing​(Thing 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​(String xml) throws ParserConfigurationException, SAXException, IOException
      抛出:
      ParserConfigurationException
      SAXException
      IOException
    • 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​(String xmlData) throws ParserConfigurationException, SAXException, IOException
      从一个XML数据认知并把认知结果保存到自身。
      参数:
      xmlData - 一个XML数据(字符串)
      抛出:
      IOException - IO异常
      SAXException - SAX异常
      ParserConfigurationException - 分析异常
    • cognize

      public void cognize​(Thing thing)

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

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

      public void paste​(Map<String,​Object> data)
    • paste

      public void paste​(String data) throws ParserConfigurationException, SAXException, IOException
      抛出:
      ParserConfigurationException
      SAXException
      IOException
    • parseXML

      public void parseXML​(String xml) throws ParserConfigurationException, SAXException, IOException
      抛出:
      ParserConfigurationException
      SAXException
      IOException
    • 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, ActionContext actionContext)
      执行一个动作,把自己作为self变量放入动作上下文中。
      参数:
      name - 动作名称
      actionContext - 变量容器
      返回:
      执行后的返回结果
    • doAction

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

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

      public <T> T doExec​(String name, ActionContext context, 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​(Path path)
    • get

      public Object get​(String path)

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

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

      public Thing getActionThing​(String name)

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

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

      public List<Thing> getActionThings​(String 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()

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

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

      public BigDecimal getBigDecimal​(String name)
    • getBigDecimal

      public BigDecimal getBigDecimal​(String name, BigDecimal defaultValue)
    • getBigDecimal

      public BigDecimal getBigDecimal​(String name, BigDecimal defaultValue, ActionContext actionContext)
    • getBigInteger

      public BigInteger getBigInteger​(String name)
    • getBigInteger

      public BigInteger getBigInteger​(String name, BigInteger defaultValue)
    • getBigInteger

      public BigInteger getBigInteger​(String name, BigInteger defaultValue, ActionContext actionContext)
    • 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()
      获取子模型的描述者列表,只返回第一个描述者所定义的子模型的描述列表。
      返回:
      子模型的描述者列表
    • getDate

      public Date getDate​(String name)
    • getDate

      public Date getDate​(String name, Date defaultValue)
    • getDate

      public Date getDate​(String name, Date defaultValue, ActionContext actionContext)
    • 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)
    • getInt

      public int getInt​(String name, int defaultValue, ActionContext actionContext)
    • 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)
    • getString

      public String getString​(String name)
    • getStringBlankAsNull

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

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

      public String getString​(String name, String defaultValue)
    • 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()
      保存自己,通常是调用模型所在的模型管理者来保存。
      返回:
      是否成功
    • moveTo

      public void moveTo​(String thingManager, String path)
      移动到指定的模型管理器和新的路径下,同saveAs()方法。
    • 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)
    • toString

      public String toString()
      覆盖:
      toString 在类中 Object
    • toXML

      public String toXML()
    • setThreadData

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

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

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

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

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

      public <T> T getData​(String 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>。
    • getStaticData

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

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

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

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

      public <T> T getObject​(String 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)
      设置新的模型监听器,如果已有监听器将被覆盖。