StupidBeauty
Read times:423Posted at:Tue Nov 27 17:24:05 2012
- no title specified

Prefuse文档翻译:数据 > 表达式,data > expressions

prefuse表达式语言提供了一种方便地 对 prefuse 数据结构中的数据进行操作的方法。例如: 可写出用来查询或者过滤 一个表或图的断言 Predicate )实例;或者 在一个数据集的基础之上创建任意的表达式,以生成新的 、继承的数据字段, 而这新的字段又可以用来进行 进一步的处理或者可视化。例如 TupleSet.tuples(Predicate)方法使用一个断言对象来 对请求的元组(tuples)集合进行过滤 Table.addColumn(String,Expression) 方法 会创建一个新的表列, 值是由所提供的表达式(Expression)来生成的。表达式机制 在整个工具包中被广泛使用--它是过滤和查询优化功能的基础 动态查询绑定 的一个关键组件 ,并且 被用来创建 DefaultRendererFactory ColorAction ShapeAction FontAction SizeAction 类来执行的规则链。

Expression接口非常简单:给定一个单个的元组之后, 它会计算并且返回一个值。返回 值可以是 一个对象(Object)、 一个逻辑值、 一个整数或其它的基本类型。 对每种类型都有对应的访问方法, 而对于 一个特定的表达式, 哪些方法是可用的则取决于表达式对象的类型。

表达式对象可直接使用Java 代码来创建, 只需 将所需要的表达式 实例化 再将它们组合起来。然而 这个过程可能会有些繁琐,所以prefuse 还提供了一个内置的解析器/编译器, 可用一种文字语言来生成这些表达式实例组合。 这种语言是基于SQL 的一个子集的, SQL是数据 库查询的标准语言。如果 妳曾经在 SQL 的"SELECT"查询中写过"WHERE"子句,那么妳应当已经 了解了这种语言的大部分东西了。 要解析一个表达式,只需要 将一个包含表达式语句的字符串传递给 parse(String) 方法就行了。如果字符串 被成功解析, 会返回 解析之后产生 的表达式实例。

ExpressionParser 类的编程接口文档里有一个完整的 prefuse表达式语言规范 以下是 一些prefuse 表达式常见用法 的示例:

// 为一个表创建一个新的继承列。假设"Gross Income" 和"Expenditures"是这个表中已有的列,其值都是数字型。

//

// 在表达式中,其它的列可通过 其名字 来引用,或者把名字放到括号里。如果 列的名字中含有空格,则括号是必需的。如果"Gross Income" 或"Expenditures"列中的数据发生了改变,则 数据字段"Profits" 的值会自动更新。

table.addColumn("Profits", "[Gross Income] - [Expenditures]");

// 获取一个针对表中的元组的 经过 过滤 的迭代器。

// 如果底层的列被索引了,则查询会被优化。例如,如果 在这个查询被调用之前已经调用了

// table.index("Expenditues");

//

// table.index("Profits");

// 则会使用它们所产生的索引来优化查询处理过程。

Iterator tuples = table.tuples("Profits > 34000 OR Expenditures < 10000");

// 假设一个叫做vis 的可视化对象实例存在, 以下的代码会查询出符合以下条件的可视化条目:可见 ,高亮, 同时是一个叫做"_search_"的数据或焦点分组的成员。

Iterator items = vis.items("_visible AND _highlight AND ingroup('_search_')");

// 这个示例演示的是如何使用 由一个动态查询实例返回的表达式断言对象。首先创建 一个范围查询,并且获取 该动态查询断言对象的一个引用。

RangeQueryBinding rquery = new RangeQueryBinding(table, "Profits");

Predicate queryPred = rquery.getPredicate();

// ... 假设这里有一些初始化和操作 ...

// 现在使用这个范围查询断言对象来获取一个 经过过滤的迭代器。

Iterator inRange = table.tuples(queryPred);

Your opinions
Your name:Email:Website url:Opinion content:
- no title specified

HxLauncher: Launch Android applications by voice commands

 
Recent comments
2017年4月~2019年4月垃圾短信排行榜Posted at:Thu Sep 26 04:51:48 2024
Qt5.7文档翻译:QWebEngineCookieStore类,QWebEngineCookieStore ClassPosted at:Fri Aug 11 06:50:35 2023盲盒kill -9 18289 Grebe.20230517.211749.552.mp4