public Query descend(final String a_field) {
// modified by S.C. 02-Dec-2010 ->
// This hack supports q.descend("f1.f2.f3.f4")
// it equals q.descend("f1").descend("f2").descend("f3").descend("f4")
// BTW, I don't like F4. I think they're 4 freaks.
if(a_field != null && a_field.indexOf(".") > -1) {
String[] fields = a_field.split("\\.");
Query ret = descend(fields[0]);
for(int i=1;i<fields.length;i++) {
ret = ret.descend(fields[i]);
}
return ret;
} else {
synchronized (streamLock()) {
final QQuery query = new QQuery(_trans, _this, a_field);
IntByRef run = new IntByRef(1);
if (!descend1(query, a_field, run)) {
// try to add unparented nodes on the second run,
// if not added in the first run and a descendant
// was not found
if (run.value == 1) {
run.value = 2;
if (!descend1(query, a_field, run)) {
new QConUnconditional(_trans, false).attach(query, a_field);
}
}
}
return query;
}
}
// modified by S.C. 02-Dec-2010 <-
}
db4o SODA hacking之改写QQueryBase#descend
最新推荐文章于 2022-03-09 14:53:15 发布