Applied changes to reflect on the moving of classes
Implement sub interface to prevent class cast exceptions
Added missing JavaDoc
Don't externalise Strings from exceptions or toSting Method
Fix some depriciation issues
Use casting for the correct return type
Implement IGeneratedJavaClass2 instead of its sub interface
Reimplement equals and override hashCode to match equals
Override hashCode method