Consider the following simplified demonstration: Class X contain class Y. Class Y has public method, Y.doY Stuff().
How to design X interface which use Y methods as is?
If one append public method to X which simply forward the requst to Y, it results in an undesirable fat X interface and dependency of X code to Y code. This approach gets worst at multiply containment.
If one use indirect access, such as X.Y.doYStuff(), it becomes a much cleaner design, but results in breaking the X encapsulation.
So, is there a clean and correct design which enables using methods of inner class out of there wrapper class?