Summary: | Add 'DelegateImplementation', manually impl. may delegate to renamed original | ||
---|---|---|---|
Product: | [JogAmp] Gluegen | Reporter: | Sven Gothel <sgothel> |
Component: | core | Assignee: | Sven Gothel <sgothel> |
Status: | RESOLVED FIXED | ||
Severity: | enhancement | ||
Priority: | --- | ||
Version: | 2.3.0 | ||
Hardware: | All | ||
OS: | all | ||
Type: | --- | SCM Refs: |
454fac44efd1728d8f5c09ed4abd4041f6187e44
c3b2a86bb9051d6f03c3f104eff2dbe6cefc1803
f664f7e950ff60d73e488801cf7f37878588203d
405512e1c8a2e24834b0d057f0b020b4a0f4c25b
bbea09816015ecf3596acdcc033553127fcc0ef3
213d01cac6bb0b91e85dbacb5cd4dff539881780
|
Workaround: | --- | ||
Bug Depends on: | |||
Bug Blocks: | 1135 |
Description
Sven Gothel
2015-03-10 08:10:42 CET
Configuration: DelegateImplementation <ORIG-SYMBOL> <RENAMED-IMPL-SYMBOL> I.e. delegation model shall apply to <ORIG-SYMBOL> and the Java and native-code implementation renamed to <RENAMED-IMPL-SYMBOL>. The user manual implementation of <ORIG-SYMBOL> may delegate to <RENAMED-IMPL-SYMBOL>. 454fac44efd1728d8f5c09ed4abd4041f6187e44 c3b2a86bb9051d6f03c3f104eff2dbe6cefc1803 f664f7e950ff60d73e488801cf7f37878588203d 405512e1c8a2e24834b0d057f0b020b4a0f4c25b 'DelegateImplementation' is a variation of 'ManuallyImplement'. 'ManuallyImplement' emits the interface method, but suppresses the Java and native-code implementation. The latter shall be implemented manually by the user. 'DelegateImplementation' emits the interface method, and the _private_ renamed Java and native-code implementation. Both can be called from the manual user implementation, hence delegation. Configuration: DelegateImplementation <ORIG-SYMBOL> <RENAMED-IMPL-SYMBOL> I.e. delegation model shall apply to <ORIG-SYMBOL> and the Java and native-code implementation renamed to <RENAMED-IMPL-SYMBOL>. The user manual implementation of <ORIG-SYMBOL> may delegate to <RENAMED-IMPL-SYMBOL>. bbea09816015ecf3596acdcc033553127fcc0ef3 - DelegateImplementation requires own MethodBinding for delegates impl. The delegation name must be included within the FunctionSymbol's aliases _only_ for implementations, where delegation applies. This allows all subsequent type/cfg checks to hit on AliasedSymbol! Hence we need to create individual MethodBinding instances for interfaces and public/private implementations. - Adding ReturnsOpaque Configuration: ReturnsOpaque <Primitive Java Type> <Function Name> This feature is necessary to achieve 'Opaque' functionality for function's return type - instead of types in general. - Fix AliasedSymbolImpl copy-ctor, i.e. this.name = o.name ! 213d01cac6bb0b91e85dbacb5cd4dff539881780 |