1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798 |
-
- -------------- Problems:
-
- ---- todo FIX output HTML is using "introduction" as labels.
- - use "[Summary|Details] of [fields|methods|constructors] declared for target types"
- ("target" rather than "other" since they may be defined on self?)
- - see also top index links:
- - super introductions...
-
- solution: change doclet resources
-
- ---- FIXED comments not displayed for inter-type declarations in the aspects
- solution: IntroducedDocImpl.java sets source location for the dec from the introduced dec
-
- > dec.setSourceLocation(introducedDec.getSourceLocation()); // PR790, 712
-
-
- ---- PARTIAL FIX: synthetic constructors are shown in the javadoc
- solution: post-process to remove unadvised constructors with same source location as parent class
-
- See ClassDocImpl.java
-
- problem with the solution: does not remove synthetic constructors on aspects??
- (only if they advise themselves?)
-
-
- ---- FIXED class cast exception trying to print introduced Constructor parameters
- solution:
- diff -r1.5 IntroducedDocImpl.java
- 105c107
- < makeParameters(((MethodDocImpl)cs[i]).
- ---
- > makeParameters(((ConstructorDocImpl)cs[i]).
-
- ---- introduced constructor names use the name of the declaring aspect, not the target
- solution:
- diff -r1.4 ConstructorDocImpl.java
- 53c56,58
- < return containingClass().name();
- ---
- > String qname = getQualifiedName();
- > return (null != qname ? qname : containingClass().name());
-
- ---- ok: in aspect docs, inter-type declarations targeting the aspect work as expected,
- with both the inter-type declaration and the aspect-declared member documented.
-
- ---- ajc prints out declare-warnings when compiling for ajdoc
-
- ---- in aspect docs, links out to affected classes not printed for introduced constructors
- essentially, the name of the constructor (should) differ for each target. sigh.
- - identifier should be the FQN of the aspect plus the type pattern and signature of the constructor.
- (parm signature - result, throws not required)
- - display label in the aspect should be the identifier
- -> currently is the name of the aspect plus ()
- - display label in affected classes should be the name of the affected class and the parm signature
- -> c
-
- ---- in target docs, links back to declaring aspects for introduced constructors fail
- (iff parms?)
-
- ---- in target docs, summaries of members declared by aspects do not list initial comment line.
-
- ---- is aspect docs, members declared on target types are displayed only with the member name,
- not the typepattern.
- see IntroducedDocImpl.java name()
-
- public String name() {
- // when using qualified name, unable to find links aout to targets
- // return (null != qualifiedName ? qualifiedName : dec().getId()); // XXX
- // when using id, only get simple name
- return dec().getId();
- }
- ==> get caller to use printedName as label
-
- UNFIXABLE - caller is sun doclet, and we only give it the member as parameter.
- We do control the names of the links out, but not the name of the member in the class,
- except to override qualifiedName, which causes the links out to fail (because
- IntroducedDocImpl.createTargets() uses MemberDocImpl.weakEquals() to discover
- all introduced members in other types to find out if they were introduced by this
- declaration (awful!), and [Method|Field|Member]DocImpl.weakEquals() implementations
- use name() - using qualifiedName() would result in false positives for any field
- in a target class). Overriding name() also causes other things to fail because it is
- used as an id. Even changing the name during the lifecycle seems risky. There's
- not a clean separation between the type name and the name as displayed.
-
- ---- in target class docs, introduced member links back to declaring aspect
- have the member name as their label; should have the aspect type.
-
- ---- bad fix: references to declaration targets lost and incomplete html thereafter
- is a result of modifying name() or qualifiedName() of memberDoc
-
- -------------- Background:
- ??
- declaration target - Introduced
- declaration source - Introduction
-
-
|