def __init__(self, entity_class, custom_join_clauses=None): """ Constructs a SqlOrderSpecificationVisitor :param klass: a class that is mapped to a selectable using SQLAlchemy """ OrderSpecificationVisitor.__init__(self) self.__entity_class = entity_class if custom_join_clauses is None: custom_join_clauses = {} self.__custom_join_clauses = custom_join_clauses self.__joins = set()
def visit_nullary(self, spec): OrderSpecificationVisitor.visit_nullary(self, spec) if spec.attr_name in self.__custom_join_clauses: self.__joins = set(self.__custom_join_clauses[spec.attr_name])