PropertyTokenizer
- 该类主要是解析一些稍微复杂的表达式
- orders[O].item[0].name这种表达式
/**
* @author Clinton Begin
* 属性标记器
*/
/**
* 假设传入的为student[sId].name
* 则各个属性得到以下结果
*
* 该属性标记器只能处理一级,即点后面的都作为children
*/
public class PropertyTokenizer implements Iterator<PropertyTokenizer> {
// 当前表达式的名称orders
private String name;
// 当前表达式的索引名orders[0]
private final String indexedName;
// 索引下表0
private String index;
// 子表达式item[0].name
private final String children;
public PropertyTokenizer(String fullname) {
int delim = fullname.indexOf('.');
if (delim > -1) {
name = fullname.substring(0, delim);
children = fullname.substring(delim + 1);
} else {
name = fullname;
children = null;
}
indexedName = name;
delim = name.indexOf('[');
if (delim > -1) {
index = name.substring(delim + 1, n