2007-12-01 00:00:00 +00:00
/ *
2010-05-25 22:54:51 +00:00
* Copyright ( c ) 2003 , 2004 , Oracle and / or its affiliates . All rights reserved .
2007-12-01 00:00:00 +00:00
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER .
*
* This code is free software ; you can redistribute it and / or modify it
* under the terms of the GNU General Public License version 2 only , as
* published by the Free Software Foundation .
*
* This code is distributed in the hope that it will be useful , but WITHOUT
* ANY WARRANTY ; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE . See the GNU General Public License
* version 2 for more details ( a copy is included in the LICENSE file that
* accompanied this code ) .
*
* You should have received a copy of the GNU General Public License version
* 2 along with this work ; if not , write to the Free Software Foundation ,
* Inc . , 51 Franklin St , Fifth Floor , Boston , MA 02110 - 1301 USA .
*
2010-05-25 22:54:51 +00:00
* Please contact Oracle , 500 Oracle Parkway , Redwood Shores , CA 94065 USA
* or visit www . oracle . com if you need additional information or have any
* questions .
2007-12-01 00:00:00 +00:00
* /
/ *
* @test
* @bug 4682448 4947464 5029946
* @summary Verify that the public modifier does not show up in the
* documentation for public methods , as recommended by the JLS .
* If A implements I and B extends A , B should be in the list of
* implementing classes in the documentation for I .
* @author jamieh
* @library . . / lib /
* @build JavadocTester
* @build TestInterface
* @run main TestInterface
* /
public class TestInterface extends JavadocTester {
//Test information.
private static final String BUG_ID = " 4682448-4947464-5029946 " ;
//Javadoc arguments.
private static final String [ ] ARGS = new String [ ] {
2009-05-28 05:34:43 +00:00
" -d " , BUG_ID , " -sourcepath " , SRC_DIR , " pkg "
2007-12-01 00:00:00 +00:00
} ;
//Input for string search tests.
private static final String [ ] [ ] TEST = {
{ BUG_ID + FS + " pkg " + FS + " Interface.html " ,
2009-01-09 00:26:59 +00:00
" int <STRONG>method</STRONG>() " } ,
2007-12-01 00:00:00 +00:00
{ BUG_ID + FS + " pkg " + FS + " Interface.html " ,
2009-01-09 00:26:59 +00:00
" static final int <STRONG>field</STRONG> " } ,
2007-12-01 00:00:00 +00:00
// Make sure known implementing class list is correct and omits type parameters.
{ BUG_ID + FS + " pkg " + FS + " Interface.html " ,
2009-02-28 02:57:17 +00:00
" <DT><STRONG>All Known Implementing Classes:</STRONG></DT> " +
2007-12-01 00:00:00 +00:00
" <DD><A HREF= \" ../pkg/Child.html \" " +
" title= \" class in pkg \" >Child</A>, " +
" <A HREF= \" ../pkg/Parent.html \" title= \" class in pkg \" > " +
" Parent</A></DD> " } ,
// Make sure "All Implemented Interfaces": has substituted type parameters
{ BUG_ID + FS + " pkg " + FS + " Child.html " ,
2009-02-28 02:57:17 +00:00
" <STRONG>All Implemented Interfaces:</STRONG></DT> <DD> " +
" <A HREF= \" ../pkg/Interface.html \" title= \" interface in pkg \" > " +
" Interface</A><T> "
2007-12-01 00:00:00 +00:00
} ,
//Make sure Class Tree has substituted type parameters.
{ BUG_ID + FS + " pkg " + FS + " Child.html " ,
" <PRE> " + NL +
" java.lang.Object " + NL +
" <IMG SRC= \" ../resources/inherit.gif \" ALT= \" extended by \" ><A HREF= \" ../pkg/Parent.html \" title= \" class in pkg \" >pkg.Parent</A><T> " + NL +
2009-01-09 00:26:59 +00:00
" <IMG SRC= \" ../resources/inherit.gif \" ALT= \" extended by \" ><STRONG>pkg.Child<T></STRONG> " + NL +
2007-12-01 00:00:00 +00:00
" </PRE> "
} ,
//Make sure "Direct Know Subclasses" omits type parameters
{ BUG_ID + FS + " pkg " + FS + " Parent.html " ,
2009-02-28 02:57:17 +00:00
" <STRONG>Direct Known Subclasses:</STRONG></DT> <DD><A HREF= \" ../pkg/Child.html \" title= \" class in pkg \" >Child</A> "
2007-12-01 00:00:00 +00:00
} ,
//Make sure "Specified By" has substituted type parameters.
{ BUG_ID + FS + " pkg " + FS + " Child.html " ,
2009-02-28 02:57:17 +00:00
" <STRONG>Specified by:</STRONG></DT><DD><CODE><A HREF= \" ../pkg/Interface.html#method() \" >method</A></CODE> in interface <CODE><A HREF= \" ../pkg/Interface.html \" title= \" interface in pkg \" >Interface</A><<A HREF= \" ../pkg/Child.html \" title= \" type parameter in Child \" >T</A>></CODE> "
2007-12-01 00:00:00 +00:00
} ,
//Make sure "Overrides" has substituted type parameters.
{ BUG_ID + FS + " pkg " + FS + " Child.html " ,
2009-02-28 02:57:17 +00:00
" <STRONG>Overrides:</STRONG></DT><DD><CODE><A HREF= \" ../pkg/Parent.html#method() \" >method</A></CODE> in class <CODE><A HREF= \" ../pkg/Parent.html \" title= \" class in pkg \" >Parent</A><<A HREF= \" ../pkg/Child.html \" title= \" type parameter in Child \" >T</A>></CODE> "
2007-12-01 00:00:00 +00:00
} ,
} ;
private static final String [ ] [ ] NEGATED_TEST = {
{ BUG_ID + FS + " pkg " + FS + " Interface.html " ,
2009-01-09 00:26:59 +00:00
" public int <STRONG>method</STRONG>() " } ,
2007-12-01 00:00:00 +00:00
{ BUG_ID + FS + " pkg " + FS + " Interface.html " ,
2009-01-09 00:26:59 +00:00
" public static final int <STRONG>field</STRONG> " } ,
2007-12-01 00:00:00 +00:00
} ;
/ * *
* The entry point of the test .
* @param args the array of command line arguments .
* /
public static void main ( String [ ] args ) {
TestInterface tester = new TestInterface ( ) ;
run ( tester , ARGS , TEST , NEGATED_TEST ) ;
tester . printSummary ( ) ;
}
/ * *
* { @inheritDoc }
* /
public String getBugId ( ) {
return BUG_ID ;
}
/ * *
* { @inheritDoc }
* /
public String getBugName ( ) {
return getClass ( ) . getName ( ) ;
}
}