Description
In the UI, listing privilegees is significantly slower than listing members. The main reason for this is that when listing members the UI deals with Membership objects and only instantiates a Subject if it is being displayed (assuming the resultset is larger than the sort limit). When returning privilegees the API internally retrieves Membership oblects and calls getMember().getSubject().
I propose that we create a new class which implements Subject and takes a Membership object in the constructor. The new class would return available attributes such as subject_id, source_id (available through the Membership object), but other attribute calls would lazily instantiate teh associated Subject and delegate calls to it. In this way we won't unnecessarily instantiate Subjects.