diff options
author | jsdelfino <jsdelfino@13f79535-47bb-0310-9956-ffa450edef68> | 2013-08-26 03:04:23 +0000 |
---|---|---|
committer | jsdelfino <jsdelfino@13f79535-47bb-0310-9956-ffa450edef68> | 2013-08-26 03:04:23 +0000 |
commit | 7905926c413e843d9497948cb824059f2c017f6a (patch) | |
tree | 0f88f849a2b6a170319b9ba22b6434ab586a1283 /sca-cpp/trunk/kernel/element.hpp | |
parent | 64fed3fe80c115c775d45f9b46f661a4d6043e5a (diff) |
Support sorting database search results by rank, and add a rank attribute to ATOM entries.
git-svn-id: http://svn.us.apache.org/repos/asf/tuscany@1517412 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'sca-cpp/trunk/kernel/element.hpp')
-rw-r--r-- | sca-cpp/trunk/kernel/element.hpp | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/sca-cpp/trunk/kernel/element.hpp b/sca-cpp/trunk/kernel/element.hpp index 4798570982..5c1d515004 100644 --- a/sca-cpp/trunk/kernel/element.hpp +++ b/sca-cpp/trunk/kernel/element.hpp @@ -167,6 +167,8 @@ inline const bool elementToValueIsSymbol(const value& v) { } inline const list<value> elementToValueGroupValues(const value& v, const list<value>& l) { + debug(v, "elementToValueGroupValues::v"); + debug(l, "elementToValueGroupValues::l"); if (isNull(l) || !elementToValueIsSymbol(v) || !elementToValueIsSymbol(car(l))) return cons(v, l); if (car<value>(car(l)) != car<value>(v)) @@ -175,7 +177,8 @@ inline const list<value> elementToValueGroupValues(const value& v, const list<va const value g = mklist<value>(car<value>(v), mklist<value>(isList(cadr<value>(v))? (value)cdr<value>(v) : cadr<value>(v), isList(cadr<value>(car(l)))? (value)cdr<value>(car(l)) : cadr<value>(car(l)))); return elementToValueGroupValues(g, cdr(l)); } - const value g = mklist<value>(car<value>(v), cons<value>(isList(cadr<value>(v))? (value)cdr<value>(v) : cadr<value>(v), (list<value>)cadr<value>(car(l)))); + const value g = isNull(cdr<value>(v))? mklist<value>(car<value>(v), (list<value>)cadr<value>(car(l))) : + mklist<value>(car<value>(v), cons<value>(isList(cadr<value>(v))? (value)cdr<value>(v) : cadr<value>(v), (list<value>)cadr<value>(car(l)))); return elementToValueGroupValues(g, cdr(l)); } |