Submitted On 16-APR-1999
cabbey
I propose a combined solution to the "gradiations of exclusion"
Doug Kramer originally mentioned and the inclusion of _Stub and
_Skel type classes. Five new tags @public, @protected, @private,
@package, and @generated plus one new command line switch -incgen
(or however you want to abreviate "include generated"). The first
four tags would be placed to override the actual object visibility,
so that if you had a method that was required to be public, but
you only wanted to document it in say package level runs of javadoc
then you would include the @package tag and run the tool with the
normal -package option. The fifth tag @generated, I think does a
better job of identifing the objective than @hide, @skip or @ignore.
This tag would be placed by tools such as rmic, sfrmic and sfcg
(tools from the IBM SanFrancisco project) which generate code, and
unless the -incgen option is specified would cause the javadoc
generator to bypass that object entirely. Please contact me if
you have any questions on what I propose. -=Chris
Submitted On 24-JUN-1999
barcalow
This feature was brought up at a javadoc BOF and
3/4 of the people there wanted this feature.
The concensus was it would be great to have this
feature even if it had a simple implementation.
Submitted On 31-OCT-1999
brucechapman
Hello all.
We generate both API level documentation, and internal documentation for our
packages. They have different audiences. The internal javadocs are generated
with -private option of javadoc.
I was about to suggest that what we really need is to override the visibility
modifier of the class/method/field with a different one to be used by javadoc.
But now I see Cabbey has already made that suggestion. So I'll just add my vote
to that form of the solution. This seems a much more elegant solution.
Bruce
Submitted On 03-NOV-1999
greggwilliams
Here at Vitria Technology (one of the largest commercial implementations of
Java), we
have the same need for excluding interfaces, classes, methods, etc. and are
(unfor-
tunately) trying to hack the default doclet to implement a @vtexclude tag that
does
the right thing. (When we @vtexclude an interface, we also want to exclude all
the
mentions of methods etc. in the documentation for classes that implement that
interface, as well as to exclude any mention of the interface in the
documentation for
the implemented class.)
I too vote for some supported method of exclusion, and one that would allow for
gradiations of exclusion would be an even better solution.
I would love to hear from anybody who has created any kind of hack that solves
this problem in any way. We need a solution now instead of later. Many thanks.
Submitted On 13-JUN-2000
jdaverin
I was able to do this using @internal tag and -external
command line argument with a doclet, but only for things
internal to a class (inner classes, fields, constructors,
methods), not for classes themselves. This is because the
class tree (constructed in ClassTree.java) is not, as far
as i can see, easily modified. The ClassTree object
provides only read methods. Just doing the @internal tag
is virtually identical to the @deprecated tag, but the
@deprecated tag for classes is not handled on the doclet
side.
Submitted On 01-NOV-2000
tomwslogin
I vote for a simple solution. If the javadoc comment
contains the @exclude tag then the item which the comment
is for (class, member, whatever) gets excluded from the
javadoc and anything else in that comment block is ignored.
This way I can exclude the item or change my mind and re-
include it with just the addition or removal of this one
tag. ~Tom
Submitted On 04-NOV-2000
currier
I would like to add my vote for an exclude tag. We
routinely ship our API that is java based and need to
exclude out bits that may be inapproriate for others to
use. We don't necessarily want to not javadoc the method
or class because we still wish to use the docs ourselves
but, we don't want our customer to be notified of the
method.
Submitted On 25-JAN-2001
margalisix
I wrote my own doclet to do some of these things. Right now
if you use @exclude it will exclude any member. Also, a
class file is not included in less you use @include in the
class header comment (that could also be a command line
option). This behavior could easily be changed to do the
level of exclusion stuff. If people are interested in this
I could have it all working sometime tommorrow. Let me know
if you would like the source or compiled doclet. Is there
some way to stick it here somewhere. Thanks,
James Margaris
Submitted On 20-FEB-2001
adenfield
Another vote for a way to exclude classes, methods,
properties, interfaces, etc.
Submitted On 07-MAR-2001
vitalys
I wouldb be great if @exclude tag makes the item which the
comment is for (class, member, whatever) excluded from the
javadoc with anything else in that comment block getting
ignored.
Submitted On 19-APR-2001
luclaf
I also vote for the Cabbey proposal.
Don't have a way of exclusion is really a Javadoc weakness.
Luc
LucLaf@hotmail.com
Submitted On 09-AUG-2001
margalisix
Hi, I just wanted to update people on my doclet. It can
exclude entire files or individual members, and allows for
gradients of exlusion fairly easily. I can offer a jar file
and the source, as well as examples. The way it works is
that you can specify the level of a member, either by
keyword such as "user" or "developer" or a number, then you
can exclude everything under a certain level. (You can't
exclude some middle range though) You can also specify what
unmarked members should be considered as.
So, for example, I can run the exclude doclet to exclude
everything marked as "user", and consider unmarked members
to be "user" level. That way the only documentation
produced is stuff I specifically marked as for developers.
A few people have contacted me about it and it seems to get
the job done for them.
*Feel free to e-mail me for the the doclet.* Also I
remember reading some time ago that Sun would host a doclet
that solved this problem. If anyone knows how I could go
about getting that done please let me know.
Submitted On 08-FEB-2002
jose_araujo
I vote to exclude classes, methods, attributes
and interfaces prefixed by the @exclude tag from
the generated html files.
Submitted On 09-MAY-2002
dedmiston
So what's the hold up? It looks like this has been a
proposed solution for over three years. Will this ever
truly be implemented?
Submitted On 17-JUN-2003
sheldon_hearn
I didn't see what all the fuss was about until EJBs came along.
Having all 5 classes for my Session beans includeed in
package documentation is pointless. I want one of the
classes documented only. The rest are EJB implementation
details that I shouldn't have to explain just to avoid empty
entries in the package index.
I'm happy with explicit or category-driven exclusions, but
I'm not happy without either. What are we supposed to do to
get this ball moved further than it has moved in the last 6
years?
Submitted On 07-OCT-2003
johanley
I would love a quick, simple solution to this. Based on simple
naming conventions is fine with me. I would like to suppress
JUnit test classes using a simple naming convention, as
in "suppress javadoc for all classes named "TEST*". Some
choose to put JUnit tests in a separate tree. Such trees can
of course can be easily excluded from javadoc. But I find this
to be an unequivocally *bad* solution. Removing a test from
package X to package Y means that it no longer has access
to the package-private classes and members of package X!
To compensate, one would need to change the scope of
items from package-private to public, merely to ensure that
the test harnesses can access them!
Given the widespread use of JUnit test classes, I think adding
this feature would be more beneficial than most.
Submitted On 08-OCT-2003
dkramer
We currently have no plans to implement an exclude ability,
though
we notice it is the most requested feature with 39 votes now
for it.
The workaround to excluding public classes is to pass in
only the source filenames for the classes you want to
include (works best with 1.4.2). It should generate the
HTML you expect.
For example, if you have classes package.A, package.B and
package.C, you can exclude class C by supplying:
javadoc -d doc package/A.html package/B.html
An alternative is to use yDoc Doclet, described at:
http://java.sun.com/j2se/javadoc/faq/index.html#ydoc
By adding @y.exclude, you can exclude classes, fields, and
methods.
Submitted On 20-DEC-2004
musheno
Why concider this along the visability lines Java works with.
What we are really saying is, even though its technicaly public (or whatever), it shouldent be for these people...
how about a style like the following (example)...
@visability public internal, partner
@visability private external
then we run into the problem if you are an external partner, should you see it?
which could be fixed with a command line switch, or...
@visibility default=include scope=package
This should cover any possible scenerio, and be a verry simple interface.
Just a suggestion
musheno@users.sourceforge.net
Submitted On 04-JAN-2007
SirRandolf
When writing code that uses JFC/Swing, public methods such as actionPerformed() get documented, and a simple "@exclude" (with optional parameters to document the reason for the exclusion) on a per-method/per-class basis would solve my problem.
PLEASE NOTE: JDK6 is formerly known as Project Mustang
|