Returns the representation of this type in code model.
This operation requires the whole model to be built, and hence it takes {@link Outline}.
Under some code generation strategy, some bean classes are considered implementation specific (such as impl.FooImpl class) These classes always have accompanying "exposed" type (such as the Foo interface).
For such Jekyll and Hyde type, the aspect parameter determines which personality is returned.
@param aspect If {@link Aspect#IMPLEMENTATION}, this method returns the implementation specific class that this type represents. If {@link Aspect#EXPOSED}, this method returns the publicly exposed type that this type represents. For ordinary classes, the aspect parameter is meaningless.