ITPub博客

首页 > 应用开发 > Java > SDO For Java 规范(六)——顺序(Sequence)

SDO For Java 规范(六)——顺序(Sequence)

原创 Java 作者:94nidaye 时间:2007-03-28 12:53:09 0 删除 编辑
作者 高科技文盲[@more@]

顺序是一个设置(settings)的有序集合。顺序的每一个入口都有一个索引。

顺序的关键点是设置的顺序可以被保存,跨越多个不同属性之间的设置也可以被保存。因此,如果属性A被更新了,接着属性B被更新,最后属性A又被更新,则一个顺序可以反映这个过程。

每一个设置都是一个属性和值对。对于SDO文本属性,具有一个使用文本的快捷方式。

非结构化的文本

使用SDO文本属性,非结构化的文本可以被添加入顺序。add(String text)方法使用SDO文本属性添加一个新的入口到顺序的末尾。add(int index, String text)方法使用SDO文本属性将一个新的入口添加到顺序中指定索引的位置。

使用顺序

顺序经常用在处理半结构化业务数据时,例如混有文本的XML元素。假定一个顺序有两个多值属性,分别为numbers(整型属性)和letters(字符串型属性)。同时,假定顺序被如下初始化:

  1. 值1被加入到numbers属性。
  2. 字符串annotation text被添加到顺序中。
  3. 值A被添加到letters属性。
  4. 值2被加入到numbers属性。
  5. 值B被添加到letters属性。

则初始化结束后,顺序包含如下设置:

{, , , , }

numbers属性被设置为{1, 2},letters属性将被设置为{“A”, ”B”},,但是如果只是使用访问器(accessors)而不使用顺序的话,则将无法获得跨越numbers属性和letters属性的设置顺序。

顺序和数据对象的比较

数据对象跟踪属性和值的顺序的方式与顺序(Sequence)使用的跟踪方式很不同。

数据对象是不保存添加到其之中的不同属性之间的顺序的。在一个多值属性的情况下,添加到该属性的不同值之间的顺序是可以保存的,但是当值被加入到两个不同的属性时,就没有办法知道哪一个属性被先设置了。在一个顺序内,对于多个属性的设置顺序是可以被保存的。

顺序(Sequence)内出现的相同属性同样可以通过数据对象获得,但是数据对象没有保存多个属性设置的顺序(order)。

注意如果数据对象的类型是一个顺序类型(即getType().isSequenced()返回值为true),那么该数据对象将有一个顺序(Sequence)。

顺序的方法:

  • size()方法返回顺序上的入口的数目。
  • getProperty(int index) 访问器返回指定索引位置的属性。
  • getValue(int index)访问器返回指定索引位置的值。
  • setValue(int index, Object value) 访问器更新指定索引位置的值并且维护顺序的位置。
  • 布尔型add()访问器添加到顺序的末尾。
  • add(int index, String text) 访问器在指定的索引位置添加非结构化的文本。
  • add(String text)访问器将非结构化文本添加到顺序的末尾。
  • 其它add(int index)访问器将一个特定的位置添加到顺序中,如同java.util.List,将其后位置的接口依次加一。
  • remove()方法移走指定索引位置的入口并且将其之后位置的索引依次减一。
  • move()方法移走从fromIndex到toIndex之间的入口。

为了在顺序的末尾创建数据对象,可以使用数据对象的create()方法。

顺序接口

public interface Sequence

{

int size();

Property getProperty(int index);

Object getValue(int index);

Object setValue(int index, Object value);

boolean add(String propertyName, Object value);

boolean add(int propertyIndex, Object value);

boolean add(Property property, Object value);

void add(int index, String propertyName, Object value);

void add(int index, int propertyIndex, Object value);

void add(int index, Property property, Object value);

void add(int index, String text);

void add(String text);

void remove(int index);

void move(int toIndex, int fromIndex);

}

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/8042616/viewspace-907248/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
  • 博文量
    17
  • 访问量
    25054