`
luoxuanufo
  • 浏览: 21902 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

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

阅读更多

顺序是一个设置(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>, <text, ”annotation text”>, <letters, ”A”>, <numbers, 2>, <letters, ”B”>}

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()方法移走从fromIndextoIndex之间的入口。

为了在顺序的末尾创建数据对象,可以使用数据对象的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);

}

分享到:
评论

相关推荐

    java表述的数据结构(顺序表)

    在这个场景中,我们有两个关键文件:`node.java` 和 `SplitList.java`,分别代表顺序表的节点类和测试类。 首先,让我们详细了解顺序表。顺序表是一种数组实现的线性表,它的特点是元素在内存中的位置是连续的。这...

    UML for Java Programmers中文版

    根据提供的文件信息,本文将围绕“UML for Java Programmers中文版”这一主题展开,深入探讨UML在Java编程中的应用及其重要性。 ### UML简介 统一建模语言(Unified Modeling Language,简称UML)是一种图形化表示...

    DNASequence.java

    DNASequence.java ssd

    sdo规范及其应用介绍

    Service Data Object(SDO)是一种数据访问标准,由OASIS(Organization for the Advancement of Structured Information Standards)制定,旨在提供统一的数据访问框架,简化多源数据的处理。在分布式系统中,尤其...

    UML for Java Programmers 中文版

    3. **序列图(Sequence Diagrams)**:用于描述对象间的交互顺序,强调时间顺序,特别适合展示消息传递的时序关系。 4. **协作图(Collaboration Diagrams)**:类似于序列图,但更注重对象间的合作关系,显示了...

    Agreement on Target-Bidirectional LSTMs for Sequence-to-Sequence Learning

    memory networks, are extremely appealing for sequence-tosequence learning tasks. Despite their great success, they typically suffer from a fundamental shortcoming: they are prone to generate ...

    Java实现斐波那契数列(Fibonacci sequence)

    斐波那契数列(Fibonacci sequence),又称黄金分割数列、因数学家列昂纳多·斐波那契(Leonardoda Fibonacci)以兔子繁殖为例子而引入,故又称为“兔子数列”。java代码实现该数列

    UML图解:顺序图(sequencediagram)

    按照时间顺序,把活动编排顺序,这就是活动图。参见:2.列出对象,按照时间的顺序,描述各个对象的交互,这就是交互图。而顺序图属于交互图的一种(除此之外,还有:通信图、交互概览图、时间图,参见:)。描述活动...

    java顺序表的基本操作.zip

    Java顺序表是一种常见的数据结构,它在编程中扮演着重要的角色。这个压缩包"java顺序表的基本操作.zip"很可能包含了关于如何在Java中创建、操作和管理顺序表的相关示例和教程。顺序表通常指的是一个数组,其中元素...

    Pervasive Attention 2D Convolutional Neural Networks for Sequence-to-Sequence

    提供的PDF文档《Pervasive Attention 2D Convolutional Neural Networks for Sequence-to-Sequence Prediction.pdf》详细阐述了模型的理论基础、实现方法以及实验结果,源代码文件《Pervasive Attention 2D ...

    Sequence_2_Sequence_Modelling

    ———————————————————————————————————————————————— 此处使用的数据集包含每个手写单词的图像,并以短划线分隔的文件名格式。 第一个字段代表单词id,第二个字段...

    论文研究-Multilevel LSTM for Action Recognition Based on Skeleton Sequence.pdf

    从上述分析中可以看出,文档中提到的研究主题——基于骨骼序列的多层级LSTM动作识别,是结合了深度学习和计算机视觉先进技术,对动作识别领域有着重要的意义。随着算法的不断优化和改进,未来该技术有望在智能系统中...

    DNAsequence java_java_

    标题 "DNAsequence java_java_" 暗示我们讨论的是一个使用Java编程语言实现的与DNA序列分析相关的程序。描述中的 "algorithm that calculates the leap year" 提到的是计算闰年的算法,这可能是程序的一部分,用于...

    UML for Java Programmers中文版.pdf

    ### UML for Java Programmers知识点总结 #### 一、UML概述 - **UML** (Unified Modeling Language) 是一种标准化的图形表示方法,用于软件系统的建模。 - **类图**(Class Diagram): 描述系统中的类以及它们之间的...

    Java Call Trace to UML Sequence Diagram-开源

    Java Call Trace to UML Sequence Diagram 是一款开源工具,专门用于将Java程序的调用跟踪转换为UML序列图。这个工具对于理解复杂程序的行为、调试多线程问题以及剖析部署在应用服务器上的J2EE应用程序尤其有用。UML...

    UML FOR JAVA

    《UML for Java》这本书由Robert Cecil Martin撰写,是针对Java程序员学习统一建模语言(Unified Modeling Language,简称UML)的一本指南。UML是一种用于软件工程的标准建模语言,它提供了一套图形化的符号系统,...

Global site tag (gtag.js) - Google Analytics