Class Repo will provide information about its ``outside caller'' to any of its subclasses. Protected method getCallerState() returns this information as a StackState object. (See section 4.5). Figure 9 shows that Repo finds the first StackState that does not correspond to Repo or a subclass of Repo.
As a convenience, method getCallerClass() returns a Class object for its ``outside caller.'' This method is provided for certain subclasses that need to access resources of their ``outside caller.''