public Code Field(Code baseExpr, String name) { Type scope = (baseExpr == null) ? cls : ((Node)baseExpr).Type; FieldInfo f = QueryImpl.lookupField(scope, name); if (f == null) { throw new CodeGeneratorException("No such field " + name + " in class " + scope); } return(new LoadNode((Node)baseExpr, f)); }
public void OrderBy(String name, bool ascent) { FieldInfo f = QueryImpl.lookupField(cls, name); OrderNode node; if (f == null) { MethodInfo m = QueryImpl.lookupMethod(cls, name, QueryImpl.defaultProfile); if (m == null) { throw new CodeGeneratorException("No such field " + name + " in class " + cls); } else { node = new OrderNode(m); } } else { node = new OrderNode(f); } node.ascent = ascent; if (query.order == null) { query.order = node; } else { OrderNode last; for (last = query.order; last.next != null; last = last.next) { ; } last.next = node; } }