Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openanolis
dragonwell8_langtools
提交
9dd871cd
D
dragonwell8_langtools
项目概览
openanolis
/
dragonwell8_langtools
通知
0
Star
2
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
D
dragonwell8_langtools
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
提交
9dd871cd
编写于
7月 22, 2008
作者:
T
tbell
浏览文件
操作
浏览文件
下载
差异文件
Merge
上级
841b6fcb
a29293ba
变更
55
隐藏空白更改
内联
并排
Showing
55 changed file
with
844 addition
and
725 deletion
+844
-725
src/share/classes/com/sun/tools/doclets/formats/html/AbstractMemberWriter.java
.../sun/tools/doclets/formats/html/AbstractMemberWriter.java
+4
-4
src/share/classes/com/sun/tools/doclets/formats/html/ClassUseWriter.java
...es/com/sun/tools/doclets/formats/html/ClassUseWriter.java
+31
-31
src/share/classes/com/sun/tools/doclets/formats/html/ConfigurationImpl.java
...com/sun/tools/doclets/formats/html/ConfigurationImpl.java
+2
-2
src/share/classes/com/sun/tools/doclets/formats/html/ConstantsSummaryWriterImpl.java
...ools/doclets/formats/html/ConstantsSummaryWriterImpl.java
+1
-1
src/share/classes/com/sun/tools/doclets/formats/html/ConstructorWriterImpl.java
...sun/tools/doclets/formats/html/ConstructorWriterImpl.java
+3
-3
src/share/classes/com/sun/tools/doclets/formats/html/HtmlDocletWriter.java
.../com/sun/tools/doclets/formats/html/HtmlDocletWriter.java
+4
-4
src/share/classes/com/sun/tools/doclets/formats/html/HtmlSerialMethodWriter.java
...un/tools/doclets/formats/html/HtmlSerialMethodWriter.java
+1
-1
src/share/classes/com/sun/tools/doclets/formats/html/PackageFrameWriter.java
...om/sun/tools/doclets/formats/html/PackageFrameWriter.java
+1
-1
src/share/classes/com/sun/tools/doclets/formats/html/PackageIndexWriter.java
...om/sun/tools/doclets/formats/html/PackageIndexWriter.java
+3
-4
src/share/classes/com/sun/tools/doclets/formats/html/PackageUseWriter.java
.../com/sun/tools/doclets/formats/html/PackageUseWriter.java
+4
-4
src/share/classes/com/sun/tools/doclets/internal/toolkit/Configuration.java
...com/sun/tools/doclets/internal/toolkit/Configuration.java
+10
-10
src/share/classes/com/sun/tools/doclets/internal/toolkit/ConstantsSummaryWriter.java
...ools/doclets/internal/toolkit/ConstantsSummaryWriter.java
+1
-1
src/share/classes/com/sun/tools/doclets/internal/toolkit/builders/AbstractBuilder.java
...ls/doclets/internal/toolkit/builders/AbstractBuilder.java
+1
-1
src/share/classes/com/sun/tools/doclets/internal/toolkit/builders/AnnotationTypeBuilder.java
...lets/internal/toolkit/builders/AnnotationTypeBuilder.java
+1
-1
src/share/classes/com/sun/tools/doclets/internal/toolkit/builders/AnnotationTypeOptionalMemberBuilder.java
...toolkit/builders/AnnotationTypeOptionalMemberBuilder.java
+1
-1
src/share/classes/com/sun/tools/doclets/internal/toolkit/builders/AnnotationTypeRequiredMemberBuilder.java
...toolkit/builders/AnnotationTypeRequiredMemberBuilder.java
+2
-2
src/share/classes/com/sun/tools/doclets/internal/toolkit/builders/ClassBuilder.java
...tools/doclets/internal/toolkit/builders/ClassBuilder.java
+1
-1
src/share/classes/com/sun/tools/doclets/internal/toolkit/builders/ConstantsSummaryBuilder.java
...ts/internal/toolkit/builders/ConstantsSummaryBuilder.java
+11
-11
src/share/classes/com/sun/tools/doclets/internal/toolkit/builders/ConstructorBuilder.java
...doclets/internal/toolkit/builders/ConstructorBuilder.java
+4
-6
src/share/classes/com/sun/tools/doclets/internal/toolkit/builders/EnumConstantBuilder.java
...oclets/internal/toolkit/builders/EnumConstantBuilder.java
+2
-2
src/share/classes/com/sun/tools/doclets/internal/toolkit/builders/FieldBuilder.java
...tools/doclets/internal/toolkit/builders/FieldBuilder.java
+3
-3
src/share/classes/com/sun/tools/doclets/internal/toolkit/builders/LayoutParser.java
...tools/doclets/internal/toolkit/builders/LayoutParser.java
+6
-6
src/share/classes/com/sun/tools/doclets/internal/toolkit/builders/MemberSummaryBuilder.java
...clets/internal/toolkit/builders/MemberSummaryBuilder.java
+4
-4
src/share/classes/com/sun/tools/doclets/internal/toolkit/builders/MethodBuilder.java
...ools/doclets/internal/toolkit/builders/MethodBuilder.java
+2
-2
src/share/classes/com/sun/tools/doclets/internal/toolkit/taglets/CodeTaglet.java
...un/tools/doclets/internal/toolkit/taglets/CodeTaglet.java
+2
-1
src/share/classes/com/sun/tools/doclets/internal/toolkit/taglets/LiteralTaglet.java
...tools/doclets/internal/toolkit/taglets/LiteralTaglet.java
+1
-1
src/share/classes/com/sun/tools/doclets/internal/toolkit/taglets/ParamTaglet.java
...n/tools/doclets/internal/toolkit/taglets/ParamTaglet.java
+5
-5
src/share/classes/com/sun/tools/doclets/internal/toolkit/taglets/TagletManager.java
...tools/doclets/internal/toolkit/taglets/TagletManager.java
+42
-43
src/share/classes/com/sun/tools/doclets/internal/toolkit/taglets/ThrowsTaglet.java
.../tools/doclets/internal/toolkit/taglets/ThrowsTaglet.java
+6
-6
src/share/classes/com/sun/tools/doclets/internal/toolkit/util/ClassDocCatalog.java
.../tools/doclets/internal/toolkit/util/ClassDocCatalog.java
+23
-23
src/share/classes/com/sun/tools/doclets/internal/toolkit/util/ClassTree.java
...om/sun/tools/doclets/internal/toolkit/util/ClassTree.java
+30
-30
src/share/classes/com/sun/tools/doclets/internal/toolkit/util/ClassUseMapper.java
...n/tools/doclets/internal/toolkit/util/ClassUseMapper.java
+89
-69
src/share/classes/com/sun/tools/doclets/internal/toolkit/util/DeprecatedAPIListBuilder.java
...clets/internal/toolkit/util/DeprecatedAPIListBuilder.java
+7
-7
src/share/classes/com/sun/tools/doclets/internal/toolkit/util/DocFinder.java
...om/sun/tools/doclets/internal/toolkit/util/DocFinder.java
+1
-1
src/share/classes/com/sun/tools/doclets/internal/toolkit/util/Extern.java
...s/com/sun/tools/doclets/internal/toolkit/util/Extern.java
+3
-3
src/share/classes/com/sun/tools/doclets/internal/toolkit/util/Group.java
...es/com/sun/tools/doclets/internal/toolkit/util/Group.java
+15
-15
src/share/classes/com/sun/tools/doclets/internal/toolkit/util/ImplementedMethods.java
...ols/doclets/internal/toolkit/util/ImplementedMethods.java
+6
-6
src/share/classes/com/sun/tools/doclets/internal/toolkit/util/IndexBuilder.java
...sun/tools/doclets/internal/toolkit/util/IndexBuilder.java
+11
-11
src/share/classes/com/sun/tools/doclets/internal/toolkit/util/MetaKeywords.java
...sun/tools/doclets/internal/toolkit/util/MetaKeywords.java
+6
-6
src/share/classes/com/sun/tools/doclets/internal/toolkit/util/SourceToHTMLConverter.java
.../doclets/internal/toolkit/util/SourceToHTMLConverter.java
+2
-2
src/share/classes/com/sun/tools/doclets/internal/toolkit/util/Util.java
...ses/com/sun/tools/doclets/internal/toolkit/util/Util.java
+17
-17
src/share/classes/com/sun/tools/doclets/internal/toolkit/util/VisibleMemberMap.java
...tools/doclets/internal/toolkit/util/VisibleMemberMap.java
+31
-33
src/share/classes/com/sun/tools/doclets/internal/toolkit/util/links/LinkFactory.java
...ools/doclets/internal/toolkit/util/links/LinkFactory.java
+3
-3
src/share/classes/com/sun/tools/javac/util/AbstractLog.java
src/share/classes/com/sun/tools/javac/util/AbstractLog.java
+197
-0
src/share/classes/com/sun/tools/javac/util/DiagnosticFormatter.java
...classes/com/sun/tools/javac/util/DiagnosticFormatter.java
+0
-1
src/share/classes/com/sun/tools/javac/util/DiagnosticSource.java
...re/classes/com/sun/tools/javac/util/DiagnosticSource.java
+214
-0
src/share/classes/com/sun/tools/javac/util/JCDiagnostic.java
src/share/classes/com/sun/tools/javac/util/JCDiagnostic.java
+0
-12
src/share/classes/com/sun/tools/javac/util/Log.java
src/share/classes/com/sun/tools/javac/util/Log.java
+22
-316
src/share/classes/com/sun/tools/javadoc/DocletInvoker.java
src/share/classes/com/sun/tools/javadoc/DocletInvoker.java
+1
-1
src/share/classes/com/sun/tools/javadoc/ExecutableMemberDocImpl.java
...lasses/com/sun/tools/javadoc/ExecutableMemberDocImpl.java
+1
-1
src/share/classes/com/sun/tools/javadoc/JavadocEnter.java
src/share/classes/com/sun/tools/javadoc/JavadocEnter.java
+1
-1
src/share/classes/com/sun/tools/javadoc/JavadocMemberEnter.java
...are/classes/com/sun/tools/javadoc/JavadocMemberEnter.java
+2
-2
src/share/classes/com/sun/tools/javadoc/SeeTagImpl.java
src/share/classes/com/sun/tools/javadoc/SeeTagImpl.java
+1
-1
src/share/classes/com/sun/tools/javadoc/SerializedForm.java
src/share/classes/com/sun/tools/javadoc/SerializedForm.java
+1
-1
src/share/classes/com/sun/tools/javah/Gen.java
src/share/classes/com/sun/tools/javah/Gen.java
+1
-1
未找到文件。
src/share/classes/com/sun/tools/doclets/formats/html/AbstractMemberWriter.java
浏览文件 @
9dd871cd
...
...
@@ -345,18 +345,18 @@ public abstract class AbstractMemberWriter {
/**
* Print use info.
*/
protected
void
printUseInfo
(
Object
mems
,
String
heading
)
{
protected
void
printUseInfo
(
List
<?
extends
ProgramElementDoc
>
mems
,
String
heading
)
{
if
(
mems
==
null
)
{
return
;
}
List
members
=
(
List
)
mems
;
List
<?
extends
ProgramElementDoc
>
members
=
mems
;
if
(
members
.
size
()
>
0
)
{
writer
.
tableIndexSummary
();
writer
.
tableUseInfoHeaderStart
(
"#CCCCFF"
);
writer
.
print
(
heading
);
writer
.
tableHeaderEnd
();
for
(
Iterator
it
=
members
.
iterator
();
it
.
hasNext
();
)
{
ProgramElementDoc
pgmdoc
=
(
ProgramElementDoc
)
it
.
next
();
for
(
Iterator
<?
extends
ProgramElementDoc
>
it
=
members
.
iterator
();
it
.
hasNext
();
)
{
ProgramElementDoc
pgmdoc
=
it
.
next
();
ClassDoc
cd
=
pgmdoc
.
containingClass
();
writer
.
printSummaryLinkType
(
this
,
pgmdoc
);
...
...
src/share/classes/com/sun/tools/doclets/formats/html/ClassUseWriter.java
浏览文件 @
9dd871cd
...
...
@@ -39,28 +39,28 @@ public class ClassUseWriter extends SubWriterHolderWriter {
final
ClassDoc
classdoc
;
Set
pkgToPackageAnnotations
=
null
;
final
Map
pkgToClassTypeParameter
;
final
Map
pkgToClassAnnotations
;
final
Map
pkgToMethodTypeParameter
;
final
Map
pkgToMethodArgTypeParameter
;
final
Map
pkgToMethodReturnTypeParameter
;
final
Map
pkgToMethodAnnotations
;
final
Map
pkgToMethodParameterAnnotations
;
final
Map
pkgToFieldTypeParameter
;
final
Map
pkgToFieldAnnotations
;
final
Map
pkgToSubclass
;
final
Map
pkgToSubinterface
;
final
Map
pkgToImplementingClass
;
final
Map
pkgToField
;
final
Map
pkgToMethodReturn
;
final
Map
pkgToMethodArgs
;
final
Map
pkgToMethodThrows
;
final
Map
pkgToConstructorAnnotations
;
final
Map
pkgToConstructorParameterAnnotations
;
final
Map
pkgToConstructorArgs
;
final
Map
pkgToConstructorArgTypeParameter
;
final
Map
pkgToConstructorThrows
;
final
SortedSet
pkgSet
;
final
Map
<
String
,
List
<
ProgramElementDoc
>>
pkgToClassTypeParameter
;
final
Map
<
String
,
List
<
ProgramElementDoc
>>
pkgToClassAnnotations
;
final
Map
<
String
,
List
<
ProgramElementDoc
>>
pkgToMethodTypeParameter
;
final
Map
<
String
,
List
<
ProgramElementDoc
>>
pkgToMethodArgTypeParameter
;
final
Map
<
String
,
List
<
ProgramElementDoc
>>
pkgToMethodReturnTypeParameter
;
final
Map
<
String
,
List
<
ProgramElementDoc
>>
pkgToMethodAnnotations
;
final
Map
<
String
,
List
<
ProgramElementDoc
>>
pkgToMethodParameterAnnotations
;
final
Map
<
String
,
List
<
ProgramElementDoc
>>
pkgToFieldTypeParameter
;
final
Map
<
String
,
List
<
ProgramElementDoc
>>
pkgToFieldAnnotations
;
final
Map
<
String
,
List
<
ProgramElementDoc
>>
pkgToSubclass
;
final
Map
<
String
,
List
<
ProgramElementDoc
>>
pkgToSubinterface
;
final
Map
<
String
,
List
<
ProgramElementDoc
>>
pkgToImplementingClass
;
final
Map
<
String
,
List
<
ProgramElementDoc
>>
pkgToField
;
final
Map
<
String
,
List
<
ProgramElementDoc
>>
pkgToMethodReturn
;
final
Map
<
String
,
List
<
ProgramElementDoc
>>
pkgToMethodArgs
;
final
Map
<
String
,
List
<
ProgramElementDoc
>>
pkgToMethodThrows
;
final
Map
<
String
,
List
<
ProgramElementDoc
>>
pkgToConstructorAnnotations
;
final
Map
<
String
,
List
<
ProgramElementDoc
>>
pkgToConstructorParameterAnnotations
;
final
Map
<
String
,
List
<
ProgramElementDoc
>>
pkgToConstructorArgs
;
final
Map
<
String
,
List
<
ProgramElementDoc
>>
pkgToConstructorArgTypeParameter
;
final
Map
<
String
,
List
<
ProgramElementDoc
>>
pkgToConstructorThrows
;
final
SortedSet
<
PackageDoc
>
pkgSet
;
final
MethodWriterImpl
methodSubWriter
;
final
ConstructorWriterImpl
constrSubWriter
;
final
FieldWriterImpl
fieldSubWriter
;
...
...
@@ -81,9 +81,9 @@ public class ClassUseWriter extends SubWriterHolderWriter {
super
(
configuration
,
path
,
filename
,
relpath
);
this
.
classdoc
=
classdoc
;
if
(
mapper
.
classToPackageAnnotations
.
containsKey
(
classdoc
.
qualifiedName
()))
pkgToPackageAnnotations
=
new
HashSet
((
List
)
mapper
.
classToPackageAnnotations
.
get
(
classdoc
.
qualifiedName
()));
pkgToPackageAnnotations
=
new
HashSet
<
PackageDoc
>(
mapper
.
classToPackageAnnotations
.
get
(
classdoc
.
qualifiedName
()));
configuration
.
currentcd
=
classdoc
;
this
.
pkgSet
=
new
TreeSet
();
this
.
pkgSet
=
new
TreeSet
<
PackageDoc
>
();
this
.
pkgToClassTypeParameter
=
pkgDivide
(
mapper
.
classToClassTypeParam
);
this
.
pkgToClassAnnotations
=
pkgDivide
(
mapper
.
classToClassAnnotations
);
this
.
pkgToMethodTypeParameter
=
pkgDivide
(
mapper
.
classToExecMemberDocTypeParam
);
...
...
@@ -135,19 +135,19 @@ public class ClassUseWriter extends SubWriterHolderWriter {
}
}
private
Map
pkgDivide
(
Map
classMap
)
{
Map
map
=
new
HashMap
();
List
list
=
(
List
)
classMap
.
get
(
classdoc
.
qualifiedName
());
private
Map
<
String
,
List
<
ProgramElementDoc
>>
pkgDivide
(
Map
<
String
,?
extends
List
<?
extends
ProgramElementDoc
>>
classMap
)
{
Map
<
String
,
List
<
ProgramElementDoc
>>
map
=
new
HashMap
<
String
,
List
<
ProgramElementDoc
>>
();
List
<?
extends
ProgramElementDoc
>
list
=
classMap
.
get
(
classdoc
.
qualifiedName
());
if
(
list
!=
null
)
{
Collections
.
sort
(
list
);
Iterator
it
=
list
.
iterator
();
Iterator
<?
extends
ProgramElementDoc
>
it
=
list
.
iterator
();
while
(
it
.
hasNext
())
{
ProgramElementDoc
doc
=
(
ProgramElementDoc
)
it
.
next
();
ProgramElementDoc
doc
=
it
.
next
();
PackageDoc
pkg
=
doc
.
containingPackage
();
pkgSet
.
add
(
pkg
);
List
inPkg
=
(
List
)
map
.
get
(
pkg
.
name
());
List
<
ProgramElementDoc
>
inPkg
=
map
.
get
(
pkg
.
name
());
if
(
inPkg
==
null
)
{
inPkg
=
new
ArrayList
();
inPkg
=
new
ArrayList
<
ProgramElementDoc
>
();
map
.
put
(
pkg
.
name
(),
inPkg
);
}
inPkg
.
add
(
doc
);
...
...
src/share/classes/com/sun/tools/doclets/formats/html/ConfigurationImpl.java
浏览文件 @
9dd871cd
...
...
@@ -253,7 +253,7 @@ public class ConfigurationImpl extends Configuration {
}
}
if
(
root
.
specifiedClasses
().
length
>
0
)
{
Map
map
=
new
HashMap
();
Map
<
String
,
PackageDoc
>
map
=
new
HashMap
<
String
,
PackageDoc
>
();
PackageDoc
pd
;
ClassDoc
[]
classes
=
root
.
classes
();
for
(
int
i
=
0
;
i
<
classes
.
length
;
i
++)
{
...
...
@@ -481,7 +481,7 @@ public class ConfigurationImpl extends Configuration {
/**
* {@inheritDoc}
*/
public
Comparator
getMemberComparator
()
{
public
Comparator
<
ProgramElementDoc
>
getMemberComparator
()
{
return
null
;
}
}
src/share/classes/com/sun/tools/doclets/formats/html/ConstantsSummaryWriterImpl.java
浏览文件 @
9dd871cd
...
...
@@ -107,7 +107,7 @@ public class ConstantsSummaryWriterImpl extends HtmlDocletWriter
/**
* {@inheritDoc}
*/
public
void
writeLinkToPackageContent
(
PackageDoc
pkg
,
String
parsedPackageName
,
Set
printedPackageHeaders
)
{
public
void
writeLinkToPackageContent
(
PackageDoc
pkg
,
String
parsedPackageName
,
Set
<
String
>
printedPackageHeaders
)
{
String
packageName
=
pkg
.
name
();
//add link to summary
li
();
...
...
src/share/classes/com/sun/tools/doclets/formats/html/ConstructorWriterImpl.java
浏览文件 @
9dd871cd
...
...
@@ -55,10 +55,10 @@ public class ConstructorWriterImpl extends AbstractExecutableMemberWriter
super
(
writer
,
classDoc
);
VisibleMemberMap
visibleMemberMap
=
new
VisibleMemberMap
(
classDoc
,
VisibleMemberMap
.
CONSTRUCTORS
,
configuration
().
nodeprecated
);
List
constructors
=
new
ArrayList
(
visibleMemberMap
.
getMembersFor
(
classDoc
));
List
<
ProgramElementDoc
>
constructors
=
new
ArrayList
<
ProgramElementDoc
>
(
visibleMemberMap
.
getMembersFor
(
classDoc
));
for
(
int
i
=
0
;
i
<
constructors
.
size
();
i
++)
{
if
((
(
ProgramElementDoc
)(
constructors
.
get
(
i
)
)).
isProtected
()
||
(
(
ProgramElementDoc
)(
constructors
.
get
(
i
)
)).
isPrivate
())
{
if
((
constructors
.
get
(
i
)).
isProtected
()
||
(
constructors
.
get
(
i
)).
isPrivate
())
{
setFoundNonPubConstructor
(
true
);
}
}
...
...
src/share/classes/com/sun/tools/doclets/formats/html/HtmlDocletWriter.java
浏览文件 @
9dd871cd
...
...
@@ -1463,7 +1463,7 @@ public class HtmlDocletWriter extends HtmlDocWriter {
int
originalLength
=
result
.
length
();
TagletOutput
output
=
TagletWriter
.
getInlineTagOuput
(
configuration
.
tagletManager
,
holderTag
,
(
Tag
)
tagelem
,
getTagletWriterInstance
(
isFirstSentence
));
tagelem
,
getTagletWriterInstance
(
isFirstSentence
));
result
.
append
(
output
==
null
?
""
:
output
.
toString
());
if
(
originalLength
==
0
&&
isFirstSentence
&&
tagelem
.
name
().
equals
(
"@inheritDoc"
)
&&
result
.
length
()
>
0
)
{
break
;
...
...
@@ -1750,8 +1750,8 @@ public class HtmlDocletWriter extends HtmlDocWriter {
* @return an array of strings representing the annotations being
* documented.
*/
private
List
getAnnotations
(
int
indent
,
AnnotationDesc
[]
descList
,
boolean
linkBreak
)
{
List
results
=
new
ArrayList
();
private
List
<
String
>
getAnnotations
(
int
indent
,
AnnotationDesc
[]
descList
,
boolean
linkBreak
)
{
List
<
String
>
results
=
new
ArrayList
<
String
>
();
StringBuffer
annotation
;
for
(
int
i
=
0
;
i
<
descList
.
length
;
i
++)
{
AnnotationTypeDoc
annotationDoc
=
descList
[
i
].
annotationType
();
...
...
@@ -1781,7 +1781,7 @@ public class HtmlDocletWriter extends HtmlDocWriter {
pairs
[
j
].
element
(),
pairs
[
j
].
element
().
name
(),
false
));
annotation
.
append
(
'='
);
AnnotationValue
annotationValue
=
pairs
[
j
].
value
();
List
annotationTypeValues
=
new
ArrayList
();
List
<
AnnotationValue
>
annotationTypeValues
=
new
ArrayList
<
AnnotationValue
>
();
if
(
annotationValue
.
value
()
instanceof
AnnotationValue
[])
{
AnnotationValue
[]
annotationArray
=
(
AnnotationValue
[])
annotationValue
.
value
();
...
...
src/share/classes/com/sun/tools/doclets/formats/html/HtmlSerialMethodWriter.java
浏览文件 @
9dd871cd
...
...
@@ -90,7 +90,7 @@ public class HtmlSerialMethodWriter extends MethodWriterImpl implements
tagletManager
.
getSerializedFormTags
(),
writer
.
getTagletWriterInstance
(
false
),
output
);
print
(
output
.
toString
());
MethodDoc
method
=
(
MethodDoc
)
member
;
MethodDoc
method
=
member
;
if
(
method
.
name
().
compareTo
(
"writeExternal"
)
==
0
&&
method
.
tags
(
"serialData"
).
length
==
0
)
{
serialWarning
(
member
.
position
(),
"doclet.MissingSerialDataTag"
,
...
...
src/share/classes/com/sun/tools/doclets/formats/html/PackageFrameWriter.java
浏览文件 @
9dd871cd
...
...
@@ -73,7 +73,7 @@ public class PackageFrameWriter extends HtmlDocletWriter {
super
(
configuration
,
DirectoryManager
.
getDirectoryPath
(
packageDoc
),
OUTPUT_FILE_NAME
,
DirectoryManager
.
getRelativePath
(
packageDoc
));
this
.
packageDoc
=
packageDoc
;
if
(
configuration
.
root
.
specifiedPackages
().
length
==
0
)
{
documentedClasses
=
new
HashSet
(
Arrays
.
asList
(
configuration
.
root
.
classes
()));
documentedClasses
=
new
HashSet
<
ClassDoc
>
(
Arrays
.
asList
(
configuration
.
root
.
classes
()));
}
}
...
...
src/share/classes/com/sun/tools/doclets/formats/html/PackageIndexWriter.java
浏览文件 @
9dd871cd
...
...
@@ -49,7 +49,7 @@ public class PackageIndexWriter extends AbstractPackageIndexWriter {
*
* @see Group
*/
private
Map
groupPackageMap
;
private
Map
<
String
,
List
<
PackageDoc
>>
groupPackageMap
;
/**
* List to store the order groups as specified on the command line.
...
...
@@ -120,10 +120,9 @@ public class PackageIndexWriter extends AbstractPackageIndexWriter {
protected
void
generateIndex
()
{
for
(
int
i
=
0
;
i
<
groupList
.
size
();
i
++)
{
String
groupname
=
(
String
)
groupList
.
get
(
i
);
List
list
=
(
List
)
groupPackageMap
.
get
(
groupname
);
List
<
PackageDoc
>
list
=
groupPackageMap
.
get
(
groupname
);
if
(
list
!=
null
&&
list
.
size
()
>
0
)
{
printIndexContents
((
PackageDoc
[])
list
.
toArray
(
new
PackageDoc
[
list
.
size
()]),
printIndexContents
(
list
.
toArray
(
new
PackageDoc
[
list
.
size
()]),
groupname
);
}
}
...
...
src/share/classes/com/sun/tools/doclets/formats/html/PackageUseWriter.java
浏览文件 @
9dd871cd
...
...
@@ -38,7 +38,7 @@ import java.util.*;
public
class
PackageUseWriter
extends
SubWriterHolderWriter
{
final
PackageDoc
pkgdoc
;
final
SortedMap
usingPackageToUsedClasses
=
new
TreeMap
();
final
SortedMap
<
String
,
Set
<
ClassDoc
>>
usingPackageToUsedClasses
=
new
TreeMap
<
String
,
Set
<
ClassDoc
>>
();
/**
* Constructor.
...
...
@@ -61,15 +61,15 @@ public class PackageUseWriter extends SubWriterHolderWriter {
ClassDoc
[]
content
=
pkgdoc
.
allClasses
();
for
(
int
i
=
0
;
i
<
content
.
length
;
++
i
)
{
ClassDoc
usedClass
=
content
[
i
];
Set
usingClasses
=
(
Set
)
mapper
.
classToClass
.
get
(
usedClass
.
qualifiedName
());
Set
<
ClassDoc
>
usingClasses
=
mapper
.
classToClass
.
get
(
usedClass
.
qualifiedName
());
if
(
usingClasses
!=
null
)
{
for
(
Iterator
it
=
usingClasses
.
iterator
();
it
.
hasNext
();
)
{
ClassDoc
usingClass
=
(
ClassDoc
)
it
.
next
();
PackageDoc
usingPackage
=
usingClass
.
containingPackage
();
Set
usedClasses
=
(
Set
)
usingPackageToUsedClasses
Set
<
ClassDoc
>
usedClasses
=
usingPackageToUsedClasses
.
get
(
usingPackage
.
name
());
if
(
usedClasses
==
null
)
{
usedClasses
=
new
TreeSet
();
usedClasses
=
new
TreeSet
<
ClassDoc
>
();
usingPackageToUsedClasses
.
put
(
Util
.
getPackageName
(
usingPackage
),
usedClasses
);
}
...
...
src/share/classes/com/sun/tools/doclets/internal/toolkit/Configuration.java
浏览文件 @
9dd871cd
...
...
@@ -120,12 +120,12 @@ public abstract class Configuration {
/**
* The list of doc-file subdirectories to exclude
*/
protected
Set
excludedDocFileDirs
;
protected
Set
<
String
>
excludedDocFileDirs
;
/**
* The list of qualifiers to exclude
*/
protected
Set
excludedQualifiers
;
protected
Set
<
String
>
excludedQualifiers
;
/**
* The Root of the generated Program Structure from the Doclet API.
...
...
@@ -255,8 +255,8 @@ public abstract class Configuration {
message
=
new
MessageRetriever
(
this
,
"com.sun.tools.doclets.internal.toolkit.resources.doclets"
);
excludedDocFileDirs
=
new
HashSet
();
excludedQualifiers
=
new
HashSet
();
excludedDocFileDirs
=
new
HashSet
<
String
>
();
excludedQualifiers
=
new
HashSet
<
String
>
();
}
/**
...
...
@@ -329,14 +329,14 @@ public abstract class Configuration {
DocErrorReporter
reporter
);
private
void
initPackageArray
()
{
Set
set
=
new
HashSet
(
Arrays
.
asList
(
root
.
specifiedPackages
()));
Set
<
PackageDoc
>
set
=
new
HashSet
<
PackageDoc
>
(
Arrays
.
asList
(
root
.
specifiedPackages
()));
ClassDoc
[]
classes
=
root
.
specifiedClasses
();
for
(
int
i
=
0
;
i
<
classes
.
length
;
i
++)
{
set
.
add
(
classes
[
i
].
containingPackage
());
}
ArrayList
results
=
new
ArrayList
(
set
);
ArrayList
<
PackageDoc
>
results
=
new
ArrayList
<
PackageDoc
>
(
set
);
Collections
.
sort
(
results
);
packages
=
(
PackageDoc
[])
results
.
toArray
(
new
PackageDoc
[]
{});
packages
=
results
.
toArray
(
new
PackageDoc
[]
{});
}
/**
...
...
@@ -345,7 +345,7 @@ public abstract class Configuration {
* @param options the two dimensional array of options.
*/
public
void
setOptions
(
String
[][]
options
)
{
LinkedHashSet
customTagStrs
=
new
LinkedHashSet
();
LinkedHashSet
<
String
[]>
customTagStrs
=
new
LinkedHashSet
<
String
[]>
();
for
(
int
oi
=
0
;
oi
<
options
.
length
;
++
oi
)
{
String
[]
os
=
options
[
oi
];
String
opt
=
os
[
0
].
toLowerCase
();
...
...
@@ -476,7 +476,7 @@ public abstract class Configuration {
}
}
private
void
addToSet
(
Set
s
,
String
str
){
private
void
addToSet
(
Set
<
String
>
s
,
String
str
){
StringTokenizer
st
=
new
StringTokenizer
(
str
,
":"
);
String
current
;
while
(
st
.
hasMoreTokens
()){
...
...
@@ -712,5 +712,5 @@ public abstract class Configuration {
*
* @return the {@link java.util.Comparator} used to sort members.
*/
public
abstract
Comparator
getMemberComparator
();
public
abstract
Comparator
<
ProgramElementDoc
>
getMemberComparator
();
}
src/share/classes/com/sun/tools/doclets/internal/toolkit/ConstantsSummaryWriter.java
浏览文件 @
9dd871cd
...
...
@@ -79,7 +79,7 @@ public interface ConstantsSummaryWriter {
* something more than once.
*/
public
abstract
void
writeLinkToPackageContent
(
PackageDoc
pkg
,
String
parsedPackageName
,
Set
WriteedPackageHeaders
);
Set
<
String
>
WriteedPackageHeaders
);
/**
* Write the given package name.
...
...
src/share/classes/com/sun/tools/doclets/internal/toolkit/builders/AbstractBuilder.java
浏览文件 @
9dd871cd
...
...
@@ -61,7 +61,7 @@ public abstract class AbstractBuilder {
* efficiency purposes. We don't want to copy the
* doc files multiple times for a single package.
*/
protected
static
Set
containingPackagesSeen
;
protected
static
Set
<
String
>
containingPackagesSeen
;
/**
* True if we want to print debug output.
...
...
src/share/classes/com/sun/tools/doclets/internal/toolkit/builders/AnnotationTypeBuilder.java
浏览文件 @
9dd871cd
...
...
@@ -84,7 +84,7 @@ public class AnnotationTypeBuilder extends AbstractBuilder {
builder
.
annotationTypeDoc
=
annotationTypeDoc
;
builder
.
writer
=
writer
;
if
(
containingPackagesSeen
==
null
)
{
containingPackagesSeen
=
new
HashSet
();
containingPackagesSeen
=
new
HashSet
<
String
>
();
}
return
builder
;
}
...
...
src/share/classes/com/sun/tools/doclets/internal/toolkit/builders/AnnotationTypeOptionalMemberBuilder.java
浏览文件 @
9dd871cd
...
...
@@ -73,7 +73,7 @@ public class AnnotationTypeOptionalMemberBuilder extends
builder
.
writer
=
writer
;
builder
.
visibleMemberMap
=
new
VisibleMemberMap
(
classDoc
,
VisibleMemberMap
.
ANNOTATION_TYPE_MEMBER_OPTIONAL
,
configuration
.
nodeprecated
);
builder
.
members
=
new
ArrayList
(
builder
.
members
=
new
ArrayList
<
ProgramElementDoc
>
(
builder
.
visibleMemberMap
.
getMembersFor
(
classDoc
));
if
(
configuration
.
getMemberComparator
()
!=
null
)
{
Collections
.
sort
(
builder
.
members
,
...
...
src/share/classes/com/sun/tools/doclets/internal/toolkit/builders/AnnotationTypeRequiredMemberBuilder.java
浏览文件 @
9dd871cd
...
...
@@ -62,7 +62,7 @@ public class AnnotationTypeRequiredMemberBuilder extends AbstractMemberBuilder {
/**
* The list of members being documented.
*/
protected
List
members
;
protected
List
<
ProgramElementDoc
>
members
;
/**
* The index of the current member that is being documented at this point
...
...
@@ -97,7 +97,7 @@ public class AnnotationTypeRequiredMemberBuilder extends AbstractMemberBuilder {
builder
.
writer
=
writer
;
builder
.
visibleMemberMap
=
new
VisibleMemberMap
(
classDoc
,
VisibleMemberMap
.
ANNOTATION_TYPE_MEMBER_REQUIRED
,
configuration
.
nodeprecated
);
builder
.
members
=
new
ArrayList
(
builder
.
members
=
new
ArrayList
<
ProgramElementDoc
>
(
builder
.
visibleMemberMap
.
getMembersFor
(
classDoc
));
if
(
configuration
.
getMemberComparator
()
!=
null
)
{
Collections
.
sort
(
builder
.
members
,
...
...
src/share/classes/com/sun/tools/doclets/internal/toolkit/builders/ClassBuilder.java
浏览文件 @
9dd871cd
...
...
@@ -100,7 +100,7 @@ public class ClassBuilder extends AbstractBuilder {
Util
.
setEnumDocumentation
(
configuration
,
classDoc
);
}
if
(
containingPackagesSeen
==
null
)
{
containingPackagesSeen
=
new
HashSet
();
containingPackagesSeen
=
new
HashSet
<
String
>
();
}
return
builder
;
}
...
...
src/share/classes/com/sun/tools/doclets/internal/toolkit/builders/ConstantsSummaryBuilder.java
浏览文件 @
9dd871cd
...
...
@@ -63,12 +63,12 @@ public class ConstantsSummaryBuilder extends AbstractBuilder {
/**
* The set of ClassDocs that have constant fields.
*/
protected
Set
classDocsWithConstFields
;
protected
Set
<
ClassDoc
>
classDocsWithConstFields
;
/**
* The set of printed package headers.
*/
protected
Set
printedPackageHeaders
;
protected
Set
<
String
>
printedPackageHeaders
;
/**
* The current package being documented.
...
...
@@ -102,7 +102,7 @@ public class ConstantsSummaryBuilder extends AbstractBuilder {
ConstantsSummaryBuilder
builder
=
new
ConstantsSummaryBuilder
(
configuration
);
builder
.
writer
=
writer
;
builder
.
classDocsWithConstFields
=
new
HashSet
();
builder
.
classDocsWithConstFields
=
new
HashSet
<
ClassDoc
>
();
return
builder
;
}
...
...
@@ -169,7 +169,7 @@ public class ConstantsSummaryBuilder extends AbstractBuilder {
public
void
buildContents
()
{
writer
.
writeContentsHeader
();
PackageDoc
[]
packages
=
configuration
.
packages
;
printedPackageHeaders
=
new
HashSet
();
printedPackageHeaders
=
new
HashSet
<
String
>
();
for
(
int
i
=
0
;
i
<
packages
.
length
;
i
++)
{
if
(
hasConstantField
(
packages
[
i
])
&&
!
hasPrintedPackageIndex
(
packages
[
i
].
name
()))
{
writer
.
writeLinkToPackageContent
(
packages
[
i
],
...
...
@@ -188,7 +188,7 @@ public class ConstantsSummaryBuilder extends AbstractBuilder {
*/
public
void
buildConstantSummaries
(
List
elements
)
{
PackageDoc
[]
packages
=
configuration
.
packages
;
printedPackageHeaders
=
new
HashSet
();
printedPackageHeaders
=
new
HashSet
<
String
>
();
for
(
int
i
=
0
;
i
<
packages
.
length
;
i
++)
{
if
(
hasConstantField
(
packages
[
i
]))
{
currentPackage
=
packages
[
i
];
...
...
@@ -315,7 +315,7 @@ public class ConstantsSummaryBuilder extends AbstractBuilder {
* @param pkgname the name of the package to check.
*/
private
boolean
hasPrintedPackageIndex
(
String
pkgname
)
{
String
[]
list
=
(
String
[])
printedPackageHeaders
.
toArray
(
new
String
[]
{});
String
[]
list
=
printedPackageHeaders
.
toArray
(
new
String
[]
{});
for
(
int
i
=
0
;
i
<
list
.
length
;
i
++)
{
if
(
pkgname
.
startsWith
(
list
[
i
]))
{
return
true
;
...
...
@@ -363,7 +363,7 @@ public class ConstantsSummaryBuilder extends AbstractBuilder {
* Builds the table of constants for a given class.
*/
protected
void
buildMembersSummary
()
{
List
members
=
new
ArrayList
(
members
());
List
<
FieldDoc
>
members
=
new
ArrayList
<
FieldDoc
>
(
members
());
if
(
members
.
size
()
>
0
)
{
Collections
.
sort
(
members
);
writer
.
writeConstantMembers
(
classdoc
,
members
);
...
...
@@ -375,17 +375,17 @@ public class ConstantsSummaryBuilder extends AbstractBuilder {
* @param cd the classdoc to examine.
* @return the list of visible constant fields for the given classdoc.
*/
protected
List
members
()
{
List
l
=
visibleMemberMapFields
.
getLeafClassMembers
(
configuration
);
protected
List
<
FieldDoc
>
members
()
{
List
<
ProgramElementDoc
>
l
=
visibleMemberMapFields
.
getLeafClassMembers
(
configuration
);
l
.
addAll
(
visibleMemberMapEnumConst
.
getLeafClassMembers
(
configuration
));
Iterator
iter
;
Iterator
<
ProgramElementDoc
>
iter
;
if
(
l
!=
null
){
iter
=
l
.
iterator
();
}
else
{
return
null
;
}
List
inclList
=
new
LinkedList
();
List
<
FieldDoc
>
inclList
=
new
LinkedList
<
FieldDoc
>
();
FieldDoc
member
;
while
(
iter
.
hasNext
()){
member
=
(
FieldDoc
)
iter
.
next
();
...
...
src/share/classes/com/sun/tools/doclets/internal/toolkit/builders/ConstructorBuilder.java
浏览文件 @
9dd871cd
...
...
@@ -72,7 +72,7 @@ public class ConstructorBuilder extends AbstractMemberBuilder {
/**
* The constructors being documented.
*/
private
List
constructors
;
private
List
<
ProgramElementDoc
>
constructors
;
/**
* Construct a new ConstructorBuilder.
...
...
@@ -104,12 +104,10 @@ public class ConstructorBuilder extends AbstractMemberBuilder {
VisibleMemberMap
.
CONSTRUCTORS
,
configuration
.
nodeprecated
);
builder
.
constructors
=
new
ArrayList
(
builder
.
visibleMemberMap
.
getMembersFor
(
classDoc
));
new
ArrayList
<
ProgramElementDoc
>
(
builder
.
visibleMemberMap
.
getMembersFor
(
classDoc
));
for
(
int
i
=
0
;
i
<
builder
.
constructors
.
size
();
i
++)
{
if
(((
ProgramElementDoc
)
(
builder
.
constructors
.
get
(
i
)))
.
isProtected
()
||
((
ProgramElementDoc
)
(
builder
.
constructors
.
get
(
i
)))
.
isPrivate
())
{
if
(
builder
.
constructors
.
get
(
i
).
isProtected
()
||
builder
.
constructors
.
get
(
i
).
isPrivate
())
{
writer
.
setFoundNonPubConstructor
(
true
);
}
}
...
...
src/share/classes/com/sun/tools/doclets/internal/toolkit/builders/EnumConstantBuilder.java
浏览文件 @
9dd871cd
...
...
@@ -61,7 +61,7 @@ public class EnumConstantBuilder extends AbstractMemberBuilder {
/**
* The list of enum constants being documented.
*/
private
List
enumConstants
;
private
List
<
ProgramElementDoc
>
enumConstants
;
/**
* The index of the current enum constant that is being documented at this point
...
...
@@ -99,7 +99,7 @@ public class EnumConstantBuilder extends AbstractMemberBuilder {
VisibleMemberMap
.
ENUM_CONSTANTS
,
configuration
.
nodeprecated
);
builder
.
enumConstants
=
new
ArrayList
(
builder
.
visibleMemberMap
.
getMembersFor
(
classDoc
));
new
ArrayList
<
ProgramElementDoc
>
(
builder
.
visibleMemberMap
.
getMembersFor
(
classDoc
));
if
(
configuration
.
getMemberComparator
()
!=
null
)
{
Collections
.
sort
(
builder
.
enumConstants
,
...
...
src/share/classes/com/sun/tools/doclets/internal/toolkit/builders/FieldBuilder.java
浏览文件 @
9dd871cd
...
...
@@ -61,7 +61,7 @@ public class FieldBuilder extends AbstractMemberBuilder {
/**
* The list of fields being documented.
*/
private
List
fields
;
private
List
<
ProgramElementDoc
>
fields
;
/**
* The index of the current field that is being documented at this point
...
...
@@ -99,8 +99,8 @@ public class FieldBuilder extends AbstractMemberBuilder {
VisibleMemberMap
.
FIELDS
,
configuration
.
nodeprecated
);
builder
.
fields
=
new
ArrayList
(
builder
.
visibleMemberMap
.
getLeafClassMembers
(
configuration
));
new
ArrayList
<
ProgramElementDoc
>
(
builder
.
visibleMemberMap
.
getLeafClassMembers
(
configuration
));
if
(
configuration
.
getMemberComparator
()
!=
null
)
{
Collections
.
sort
(
builder
.
fields
,
...
...
src/share/classes/com/sun/tools/doclets/internal/toolkit/builders/LayoutParser.java
浏览文件 @
9dd871cd
...
...
@@ -45,7 +45,7 @@ public class LayoutParser extends DefaultHandler {
/**
* The map of XML elements that have been parsed.
*/
private
Map
xmlElementsMap
;
private
Map
<
String
,
List
<
Object
>>
xmlElementsMap
;
private
Configuration
configuration
;
private
static
LayoutParser
instance
;
...
...
@@ -56,7 +56,7 @@ public class LayoutParser extends DefaultHandler {
* This class is a singleton.
*/
private
LayoutParser
(
Configuration
configuration
)
{
xmlElementsMap
=
new
HashMap
();
xmlElementsMap
=
new
HashMap
<
String
,
List
<
Object
>>
();
this
.
configuration
=
configuration
;
}
...
...
@@ -83,7 +83,7 @@ public class LayoutParser extends DefaultHandler {
return
(
List
)
xmlElementsMap
.
get
(
root
);
}
try
{
List
xmlElements
=
new
ArrayList
();
List
<
Object
>
xmlElements
=
new
ArrayList
<
Object
>
();
xmlElementsMap
.
put
(
root
,
xmlElements
);
currentRoot
=
root
;
isParsing
=
false
;
...
...
@@ -106,7 +106,7 @@ public class LayoutParser extends DefaultHandler {
throws
SAXException
{
if
(
isParsing
||
qName
.
equals
(
currentRoot
))
{
isParsing
=
true
;
List
xmlElements
=
(
List
)
xmlElementsMap
.
get
(
currentRoot
);
List
<
Object
>
xmlElements
=
xmlElementsMap
.
get
(
currentRoot
);
xmlElements
.
add
(
qName
);
}
}
...
...
@@ -120,11 +120,11 @@ public class LayoutParser extends DefaultHandler {
isParsing
=
false
;
return
;
}
List
xmlElements
=
(
List
)
xmlElementsMap
.
get
(
currentRoot
);
List
<
Object
>
xmlElements
=
xmlElementsMap
.
get
(
currentRoot
);
if
(
xmlElements
.
get
(
xmlElements
.
size
()-
1
).
equals
(
qName
))
{
return
;
}
else
{
List
subElements
=
new
ArrayList
();
List
<
Object
>
subElements
=
new
ArrayList
<
Object
>
();
int
targetIndex
=
xmlElements
.
indexOf
(
qName
);
int
size
=
xmlElements
.
size
();
for
(
int
i
=
targetIndex
;
i
<
size
;
i
++)
{
...
...
src/share/classes/com/sun/tools/doclets/internal/toolkit/builders/MemberSummaryBuilder.java
浏览文件 @
9dd871cd
...
...
@@ -306,13 +306,13 @@ public class MemberSummaryBuilder extends AbstractMemberBuilder {
*/
private
void
buildSummary
(
MemberSummaryWriter
writer
,
VisibleMemberMap
visibleMemberMap
)
{
List
members
=
new
ArrayList
(
visibleMemberMap
.
getLeafClassMembers
(
List
<
ProgramElementDoc
>
members
=
new
ArrayList
<
ProgramElementDoc
>
(
visibleMemberMap
.
getLeafClassMembers
(
configuration
));
if
(
members
.
size
()
>
0
)
{
Collections
.
sort
(
members
);
writer
.
writeMemberSummaryHeader
(
classDoc
);
for
(
int
i
=
0
;
i
<
members
.
size
();
i
++)
{
ProgramElementDoc
member
=
(
ProgramElementDoc
)
members
.
get
(
i
);
ProgramElementDoc
member
=
members
.
get
(
i
);
Tag
[]
firstSentenceTags
=
member
.
firstSentenceTags
();
if
(
member
instanceof
MethodDoc
&&
firstSentenceTags
.
length
==
0
)
{
//Inherit comments from overriden or implemented method if
...
...
@@ -349,7 +349,7 @@ public class MemberSummaryBuilder extends AbstractMemberBuilder {
if
(
inhclass
==
classDoc
)
{
continue
;
}
List
inhmembers
=
visibleMemberMap
.
getMembersFor
(
inhclass
);
List
<
ProgramElementDoc
>
inhmembers
=
visibleMemberMap
.
getMembersFor
(
inhclass
);
if
(
inhmembers
.
size
()
>
0
)
{
Collections
.
sort
(
inhmembers
);
writer
.
writeInheritedMemberSummaryHeader
(
inhclass
);
...
...
@@ -358,7 +358,7 @@ public class MemberSummaryBuilder extends AbstractMemberBuilder {
inhclass
.
isPackagePrivate
()
&&
!
Util
.
isLinkable
(
inhclass
,
configuration
)
?
classDoc
:
inhclass
,
(
ProgramElementDoc
)
inhmembers
.
get
(
j
),
inhmembers
.
get
(
j
),
j
==
0
,
j
==
inhmembers
.
size
()
-
1
);
}
...
...
src/share/classes/com/sun/tools/doclets/internal/toolkit/builders/MethodBuilder.java
浏览文件 @
9dd871cd
...
...
@@ -66,7 +66,7 @@ public class MethodBuilder extends AbstractMemberBuilder {
/**
* The methods being documented.
*/
private
List
methods
;
private
List
<
ProgramElementDoc
>
methods
;
private
MethodBuilder
(
Configuration
configuration
)
{
super
(
configuration
);
...
...
@@ -94,7 +94,7 @@ public class MethodBuilder extends AbstractMemberBuilder {
VisibleMemberMap
.
METHODS
,
configuration
.
nodeprecated
);
builder
.
methods
=
new
ArrayList
(
builder
.
visibleMemberMap
.
getLeafClassMembers
(
new
ArrayList
<
ProgramElementDoc
>
(
builder
.
visibleMemberMap
.
getLeafClassMembers
(
configuration
));
if
(
configuration
.
getMemberComparator
()
!=
null
)
{
Collections
.
sort
(
...
...
src/share/classes/com/sun/tools/doclets/internal/toolkit/taglets/CodeTaglet.java
浏览文件 @
9dd871cd
...
...
@@ -26,6 +26,7 @@ package com.sun.tools.doclets.internal.toolkit.taglets;
import
java.util.Map
;
import
com.sun.javadoc.Tag
;
import
com.sun.tools.doclets.Taglet
;
/**
* An inline Taglet used to denote literal code fragments.
...
...
@@ -47,7 +48,7 @@ public class CodeTaglet extends LiteralTaglet {
private
static
final
String
NAME
=
"code"
;
public
static
void
register
(
Map
map
)
{
public
static
void
register
(
Map
<
String
,
Taglet
>
map
)
{
map
.
remove
(
NAME
);
map
.
put
(
NAME
,
new
CodeTaglet
());
}
...
...
src/share/classes/com/sun/tools/doclets/internal/toolkit/taglets/LiteralTaglet.java
浏览文件 @
9dd871cd
...
...
@@ -46,7 +46,7 @@ public class LiteralTaglet implements Taglet {
private
static
final
String
NAME
=
"literal"
;
public
static
void
register
(
Map
map
)
{
public
static
void
register
(
Map
<
String
,
Taglet
>
map
)
{
map
.
remove
(
NAME
);
map
.
put
(
NAME
,
new
LiteralTaglet
());
}
...
...
src/share/classes/com/sun/tools/doclets/internal/toolkit/taglets/ParamTaglet.java
浏览文件 @
9dd871cd
...
...
@@ -56,11 +56,11 @@ public class ParamTaglet extends BaseTaglet implements InheritableTaglet {
* check.
* @return a name-rank number map.
*/
private
static
Map
getRankMap
(
Object
[]
params
){
private
static
Map
<
String
,
String
>
getRankMap
(
Object
[]
params
){
if
(
params
==
null
)
{
return
null
;
}
HashMap
result
=
new
HashMap
();
HashMap
<
String
,
String
>
result
=
new
HashMap
<
String
,
String
>
();
for
(
int
i
=
0
;
i
<
params
.
length
;
i
++)
{
String
name
=
params
[
i
]
instanceof
Parameter
?
((
Parameter
)
params
[
i
]).
name
()
:
...
...
@@ -192,7 +192,7 @@ public class ParamTaglet extends BaseTaglet implements InheritableTaglet {
private
TagletOutput
getTagletOutput
(
boolean
isNonTypeParams
,
Doc
holder
,
TagletWriter
writer
,
Object
[]
formalParameters
,
ParamTag
[]
paramTags
)
{
TagletOutput
result
=
writer
.
getOutputInstance
();
Set
alreadyDocumented
=
new
HashSet
();
Set
<
String
>
alreadyDocumented
=
new
HashSet
<
String
>
();
if
(
paramTags
.
length
>
0
)
{
result
.
appendOutput
(
processParamTags
(
isNonTypeParams
,
paramTags
,
...
...
@@ -214,7 +214,7 @@ public class ParamTaglet extends BaseTaglet implements InheritableTaglet {
*/
private
TagletOutput
getInheritedTagletOutput
(
boolean
isNonTypeParams
,
Doc
holder
,
TagletWriter
writer
,
Object
[]
formalParameters
,
Set
alreadyDocumented
)
{
Set
<
String
>
alreadyDocumented
)
{
TagletOutput
result
=
writer
.
getOutputInstance
();
if
((!
alreadyDocumented
.
contains
(
null
))
&&
holder
instanceof
MethodDoc
)
{
...
...
@@ -263,7 +263,7 @@ public class ParamTaglet extends BaseTaglet implements InheritableTaglet {
*/
private
TagletOutput
processParamTags
(
boolean
isNonTypeParams
,
ParamTag
[]
paramTags
,
Map
rankMap
,
TagletWriter
writer
,
Set
alreadyDocumented
)
{
Set
<
String
>
alreadyDocumented
)
{
TagletOutput
result
=
writer
.
getOutputInstance
();
if
(
paramTags
.
length
>
0
)
{
for
(
int
i
=
0
;
i
<
paramTags
.
length
;
++
i
)
{
...
...
src/share/classes/com/sun/tools/doclets/internal/toolkit/taglets/TagletManager.java
浏览文件 @
9dd871cd
...
...
@@ -61,7 +61,7 @@ public class TagletManager {
/**
* The map of custom tags.
*/
private
LinkedHashMap
customTags
;
private
LinkedHashMap
<
String
,
Taglet
>
customTags
;
/**
* The array of custom tags that can appear in packages.
...
...
@@ -111,31 +111,31 @@ public class TagletManager {
/**
* Keep track of standard tags.
*/
private
Set
standardTags
;
private
Set
<
String
>
standardTags
;
/**
* Keep track of standard tags in lowercase to compare for better
* error messages when a tag like @docRoot is mistakenly spelled
* lowercase @docroot.
*/
private
Set
standardTagsLowercase
;
private
Set
<
String
>
standardTagsLowercase
;
/**
* Keep track of overriden standard tags.
*/
private
Set
overridenStandardTags
;
private
Set
<
String
>
overridenStandardTags
;
/**
* Keep track of the tags that may conflict
* with standard tags in the future (any custom tag without
* a period in its name).
*/
private
Set
potentiallyConflictingTags
;
private
Set
<
String
>
potentiallyConflictingTags
;
/**
* The set of unseen custom tags.
*/
private
Set
unseenCustomTags
;
private
Set
<
String
>
unseenCustomTags
;
/**
* True if we do not want to use @since tags.
...
...
@@ -161,12 +161,12 @@ public class TagletManager {
*/
public
TagletManager
(
boolean
nosince
,
boolean
showversion
,
boolean
showauthor
,
MessageRetriever
message
){
overridenStandardTags
=
new
HashSet
();
potentiallyConflictingTags
=
new
HashSet
();
standardTags
=
new
HashSet
();
standardTagsLowercase
=
new
HashSet
();
unseenCustomTags
=
new
HashSet
();
customTags
=
new
LinkedHashMap
();
overridenStandardTags
=
new
HashSet
<
String
>
();
potentiallyConflictingTags
=
new
HashSet
<
String
>
();
standardTags
=
new
HashSet
<
String
>
();
standardTagsLowercase
=
new
HashSet
<
String
>
();
unseenCustomTags
=
new
HashSet
<
String
>
();
customTags
=
new
LinkedHashMap
<
String
,
Taglet
>
();
this
.
nosince
=
nosince
;
this
.
showversion
=
showversion
;
this
.
showauthor
=
showauthor
;
...
...
@@ -201,7 +201,7 @@ public class TagletManager {
*/
public
void
addCustomTag
(
String
classname
,
String
tagletPath
)
{
try
{
Class
customTagClass
=
null
;
Class
<?>
customTagClass
=
null
;
// construct class loader
String
cpString
=
null
;
// make sure env.class.path defaults to dot
...
...
@@ -219,7 +219,7 @@ public class TagletManager {
meth
.
invoke
(
null
,
new
Object
[]
{
customTags
});
list
=
customTags
.
values
().
toArray
();
Object
newLastTag
=
(
list
!=
null
&&
list
.
length
>
0
)
?
(
Object
)
list
[
list
.
length
-
1
]
:
null
;
?
list
[
list
.
length
-
1
]
:
null
;
if
(
lastTag
!=
newLastTag
)
{
//New taglets must always be added to the end of the LinkedHashMap.
//If the current and previous last taglet are not equal, that
...
...
@@ -315,7 +315,7 @@ public class TagletManager {
if
(
tagName
==
null
||
locations
==
null
)
{
return
;
}
Taglet
tag
=
(
Taglet
)
customTags
.
get
(
tagName
);
Taglet
tag
=
customTags
.
get
(
tagName
);
locations
=
locations
.
toLowerCase
();
if
(
tag
==
null
||
header
!=
null
)
{
customTags
.
remove
(
tagName
);
...
...
@@ -396,7 +396,7 @@ public class TagletManager {
}
}
//Check if this tag is being used in the wrong location.
if
((
taglet
=
(
Taglet
)
customTags
.
get
(
name
))
!=
null
)
{
if
((
taglet
=
customTags
.
get
(
name
))
!=
null
)
{
if
(
areInlineTags
&&
!
taglet
.
isInlineTag
())
{
printTagMisuseWarn
(
taglet
,
tags
[
i
],
"inline"
);
}
...
...
@@ -425,7 +425,7 @@ public class TagletManager {
* @param holderType the type of documentation that the misused tag was found in.
*/
private
void
printTagMisuseWarn
(
Taglet
taglet
,
Tag
tag
,
String
holderType
)
{
Set
locationsSet
=
new
LinkedHashSet
();
Set
<
String
>
locationsSet
=
new
LinkedHashSet
<
String
>
();
if
(
taglet
.
inOverview
())
{
locationsSet
.
add
(
"overview"
);
}
...
...
@@ -447,7 +447,7 @@ public class TagletManager {
if
(
taglet
.
isInlineTag
())
{
locationsSet
.
add
(
"inline text"
);
}
String
[]
locations
=
(
String
[])
locationsSet
.
toArray
(
new
String
[]{});
String
[]
locations
=
locationsSet
.
toArray
(
new
String
[]{});
if
(
locations
==
null
||
locations
.
length
==
0
)
{
//This known tag is excluded.
return
;
...
...
@@ -592,17 +592,17 @@ public class TagletManager {
* Initialize the custom tag arrays.
*/
private
void
initCustomTagArrays
()
{
Iterator
it
=
customTags
.
values
().
iterator
();
ArrayList
pTags
=
new
ArrayList
(
customTags
.
size
());
ArrayList
tTags
=
new
ArrayList
(
customTags
.
size
());
ArrayList
fTags
=
new
ArrayList
(
customTags
.
size
());
ArrayList
cTags
=
new
ArrayList
(
customTags
.
size
());
ArrayList
mTags
=
new
ArrayList
(
customTags
.
size
());
ArrayList
iTags
=
new
ArrayList
(
customTags
.
size
());
ArrayList
oTags
=
new
ArrayList
(
customTags
.
size
());
Iterator
<
Taglet
>
it
=
customTags
.
values
().
iterator
();
ArrayList
<
Taglet
>
pTags
=
new
ArrayList
<
Taglet
>
(
customTags
.
size
());
ArrayList
<
Taglet
>
tTags
=
new
ArrayList
<
Taglet
>
(
customTags
.
size
());
ArrayList
<
Taglet
>
fTags
=
new
ArrayList
<
Taglet
>
(
customTags
.
size
());
ArrayList
<
Taglet
>
cTags
=
new
ArrayList
<
Taglet
>
(
customTags
.
size
());
ArrayList
<
Taglet
>
mTags
=
new
ArrayList
<
Taglet
>
(
customTags
.
size
());
ArrayList
<
Taglet
>
iTags
=
new
ArrayList
<
Taglet
>
(
customTags
.
size
());
ArrayList
<
Taglet
>
oTags
=
new
ArrayList
<
Taglet
>
(
customTags
.
size
());
Taglet
current
;
while
(
it
.
hasNext
())
{
current
=
(
Taglet
)
it
.
next
();
current
=
it
.
next
();
if
(
current
.
inPackage
()
&&
!
current
.
isInlineTag
())
{
pTags
.
add
(
current
);
}
...
...
@@ -625,20 +625,20 @@ public class TagletManager {
oTags
.
add
(
current
);
}
}
packageTags
=
(
Taglet
[])
pTags
.
toArray
(
new
Taglet
[]
{});
typeTags
=
(
Taglet
[])
tTags
.
toArray
(
new
Taglet
[]
{});
fieldTags
=
(
Taglet
[])
fTags
.
toArray
(
new
Taglet
[]
{});
constructorTags
=
(
Taglet
[])
cTags
.
toArray
(
new
Taglet
[]
{});
methodTags
=
(
Taglet
[])
mTags
.
toArray
(
new
Taglet
[]
{});
overviewTags
=
(
Taglet
[])
oTags
.
toArray
(
new
Taglet
[]
{});
inlineTags
=
(
Taglet
[])
iTags
.
toArray
(
new
Taglet
[]
{});
packageTags
=
pTags
.
toArray
(
new
Taglet
[]
{});
typeTags
=
tTags
.
toArray
(
new
Taglet
[]
{});
fieldTags
=
fTags
.
toArray
(
new
Taglet
[]
{});
constructorTags
=
cTags
.
toArray
(
new
Taglet
[]
{});
methodTags
=
mTags
.
toArray
(
new
Taglet
[]
{});
overviewTags
=
oTags
.
toArray
(
new
Taglet
[]
{});
inlineTags
=
iTags
.
toArray
(
new
Taglet
[]
{});
//Init the serialized form tags
serializedFormTags
=
new
Taglet
[
4
];
serializedFormTags
[
0
]
=
(
Taglet
)
customTags
.
get
(
"serialData"
);
serializedFormTags
[
1
]
=
(
Taglet
)
customTags
.
get
(
"throws"
);
serializedFormTags
[
2
]
=
(
Taglet
)
customTags
.
get
(
"since"
);
serializedFormTags
[
3
]
=
(
Taglet
)
customTags
.
get
(
"see"
);
serializedFormTags
[
0
]
=
customTags
.
get
(
"serialData"
);
serializedFormTags
[
1
]
=
customTags
.
get
(
"throws"
);
serializedFormTags
[
2
]
=
customTags
.
get
(
"since"
);
serializedFormTags
[
3
]
=
customTags
.
get
(
"see"
);
}
/**
...
...
@@ -726,10 +726,9 @@ public class TagletManager {
printReportHelper
(
"doclet.Notice_taglet_unseen"
,
unseenCustomTags
);
}
private
void
printReportHelper
(
String
noticeKey
,
Set
names
)
{
private
void
printReportHelper
(
String
noticeKey
,
Set
<
String
>
names
)
{
if
(
names
.
size
()
>
0
)
{
String
[]
namesArray
=
(
String
[])
names
.
toArray
(
new
String
[]
{});
String
[]
namesArray
=
names
.
toArray
(
new
String
[]
{});
String
result
=
" "
;
for
(
int
i
=
0
;
i
<
namesArray
.
length
;
i
++)
{
result
+=
"@"
+
namesArray
[
i
];
...
...
@@ -751,9 +750,9 @@ public class TagletManager {
*/
public
Taglet
getTaglet
(
String
name
)
{
if
(
name
.
indexOf
(
"@"
)
==
0
)
{
return
(
Taglet
)
customTags
.
get
(
name
.
substring
(
1
));
return
customTags
.
get
(
name
.
substring
(
1
));
}
else
{
return
(
Taglet
)
customTags
.
get
(
name
);
return
customTags
.
get
(
name
);
}
}
...
...
src/share/classes/com/sun/tools/doclets/internal/toolkit/taglets/ThrowsTaglet.java
浏览文件 @
9dd871cd
...
...
@@ -82,7 +82,7 @@ public class ThrowsTaglet extends BaseExecutableMemberTaglet
* Add links for exceptions that are declared but not documented.
*/
private
TagletOutput
linkToUndocumentedDeclaredExceptions
(
Type
[]
declaredExceptionTypes
,
Set
alreadyDocumented
,
Type
[]
declaredExceptionTypes
,
Set
<
String
>
alreadyDocumented
,
TagletWriter
writer
)
{
TagletOutput
result
=
writer
.
getOutputInstance
();
//Add links to the exceptions declared but not documented.
...
...
@@ -107,11 +107,11 @@ public class ThrowsTaglet extends BaseExecutableMemberTaglet
* documented.
*/
private
TagletOutput
inheritThrowsDocumentation
(
Doc
holder
,
Type
[]
declaredExceptionTypes
,
Set
alreadyDocumented
,
Type
[]
declaredExceptionTypes
,
Set
<
String
>
alreadyDocumented
,
TagletWriter
writer
)
{
TagletOutput
result
=
writer
.
getOutputInstance
();
if
(
holder
instanceof
MethodDoc
)
{
Set
declaredExceptionTags
=
new
LinkedHashSet
();
Set
<
Tag
>
declaredExceptionTags
=
new
LinkedHashSet
<
Tag
>
();
for
(
int
j
=
0
;
j
<
declaredExceptionTypes
.
length
;
j
++)
{
DocFinder
.
Output
inheritedDoc
=
DocFinder
.
search
(
new
DocFinder
.
Input
((
MethodDoc
)
holder
,
this
,
...
...
@@ -124,7 +124,7 @@ public class ThrowsTaglet extends BaseExecutableMemberTaglet
declaredExceptionTags
.
addAll
(
inheritedDoc
.
tagList
);
}
result
.
appendOutput
(
throwsTagsOutput
(
(
ThrowsTag
[])
declaredExceptionTags
.
toArray
(
new
ThrowsTag
[]
{}),
declaredExceptionTags
.
toArray
(
new
ThrowsTag
[]
{}),
writer
,
alreadyDocumented
,
false
));
}
return
result
;
...
...
@@ -137,7 +137,7 @@ public class ThrowsTaglet extends BaseExecutableMemberTaglet
ExecutableMemberDoc
execHolder
=
(
ExecutableMemberDoc
)
holder
;
ThrowsTag
[]
tags
=
execHolder
.
throwsTags
();
TagletOutput
result
=
writer
.
getOutputInstance
();
HashSet
alreadyDocumented
=
new
HashSet
();
HashSet
<
String
>
alreadyDocumented
=
new
HashSet
<
String
>
();
if
(
tags
.
length
>
0
)
{
result
.
appendOutput
(
throwsTagsOutput
(
execHolder
.
throwsTags
(),
writer
,
alreadyDocumented
,
true
));
...
...
@@ -161,7 +161,7 @@ public class ThrowsTaglet extends BaseExecutableMemberTaglet
* @return the TagletOutput representation of this <code>Tag</code>.
*/
protected
TagletOutput
throwsTagsOutput
(
ThrowsTag
[]
throwTags
,
TagletWriter
writer
,
Set
alreadyDocumented
,
boolean
allowDups
)
{
TagletWriter
writer
,
Set
<
String
>
alreadyDocumented
,
boolean
allowDups
)
{
TagletOutput
result
=
writer
.
getOutputInstance
();
if
(
throwTags
.
length
>
0
)
{
for
(
int
i
=
0
;
i
<
throwTags
.
length
;
++
i
)
{
...
...
src/share/classes/com/sun/tools/doclets/internal/toolkit/util/ClassDocCatalog.java
浏览文件 @
9dd871cd
...
...
@@ -49,44 +49,44 @@ import java.util.*;
* Stores the set of packages that the classes specified on the command line
* belong to. Note that the default package is "".
*/
private
Set
packageSet
;
private
Set
<
String
>
packageSet
;
/**
* Stores all classes for each package
*/
private
Map
allClasses
;
private
Map
<
String
,
Set
<
ClassDoc
>>
allClasses
;
/**
* Stores ordinary classes (excluding Exceptions and Errors) for each
* package
*/
private
Map
ordinaryClasses
;
private
Map
<
String
,
Set
<
ClassDoc
>>
ordinaryClasses
;
/**
* Stores exceptions for each package
*/
private
Map
exceptions
;
private
Map
<
String
,
Set
<
ClassDoc
>>
exceptions
;
/**
* Stores enums for each package.
*/
private
Map
enums
;
private
Map
<
String
,
Set
<
ClassDoc
>>
enums
;
/**
* Stores annotation types for each package.
*/
private
Map
annotationTypes
;
private
Map
<
String
,
Set
<
ClassDoc
>>
annotationTypes
;
/**
* Stores errors for each package
*/
private
Map
errors
;
private
Map
<
String
,
Set
<
ClassDoc
>>
errors
;
/**
* Stores interfaces for each package
*/
private
Map
interfaces
;
private
Map
<
String
,
Set
<
ClassDoc
>>
interfaces
;
/**
* Construct a new ClassDocCatalog.
...
...
@@ -109,14 +109,14 @@ import java.util.*;
}
private
void
init
()
{
allClasses
=
new
HashMap
();
ordinaryClasses
=
new
HashMap
();
exceptions
=
new
HashMap
();
enums
=
new
HashMap
();
annotationTypes
=
new
HashMap
();
errors
=
new
HashMap
();
interfaces
=
new
HashMap
();
packageSet
=
new
HashSet
();
allClasses
=
new
HashMap
<
String
,
Set
<
ClassDoc
>>
();
ordinaryClasses
=
new
HashMap
<
String
,
Set
<
ClassDoc
>>
();
exceptions
=
new
HashMap
<
String
,
Set
<
ClassDoc
>>
();
enums
=
new
HashMap
<
String
,
Set
<
ClassDoc
>>
();
annotationTypes
=
new
HashMap
<
String
,
Set
<
ClassDoc
>>
();
errors
=
new
HashMap
<
String
,
Set
<
ClassDoc
>>
();
interfaces
=
new
HashMap
<
String
,
Set
<
ClassDoc
>>
();
packageSet
=
new
HashSet
<
String
>
();
}
/**
...
...
@@ -148,7 +148,7 @@ import java.util.*;
* @param classdoc the ClassDoc to add to the catelog.
* @param map the Map to add the ClassDoc to.
*/
private
void
addClass
(
ClassDoc
classdoc
,
Map
map
)
{
private
void
addClass
(
ClassDoc
classdoc
,
Map
<
String
,
Set
<
ClassDoc
>>
map
)
{
PackageDoc
pkg
=
classdoc
.
containingPackage
();
if
(
pkg
.
isIncluded
())
{
...
...
@@ -157,22 +157,22 @@ import java.util.*;
return
;
}
String
key
=
Util
.
getPackageName
(
pkg
);
Set
s
=
(
Set
)
map
.
get
(
key
);
Set
<
ClassDoc
>
s
=
map
.
get
(
key
);
if
(
s
==
null
)
{
packageSet
.
add
(
key
);
s
=
new
HashSet
();
s
=
new
HashSet
<
ClassDoc
>
();
}
s
.
add
(
classdoc
);
map
.
put
(
key
,
s
);
}
private
ClassDoc
[]
getArray
(
Map
m
,
String
key
)
{
Set
s
=
(
Set
)
m
.
get
(
key
);
private
ClassDoc
[]
getArray
(
Map
<
String
,
Set
<
ClassDoc
>>
m
,
String
key
)
{
Set
<
ClassDoc
>
s
=
m
.
get
(
key
);
if
(
s
==
null
)
{
return
new
ClassDoc
[]
{};
}
else
{
return
(
ClassDoc
[])
s
.
toArray
(
new
ClassDoc
[]
{});
return
s
.
toArray
(
new
ClassDoc
[]
{});
}
}
...
...
@@ -202,7 +202,7 @@ import java.util.*;
* ClassDocs for.
*/
public
String
[]
packageNames
()
{
return
(
String
[])
packageSet
.
toArray
(
new
String
[]
{});
return
packageSet
.
toArray
(
new
String
[]
{});
}
/**
...
...
src/share/classes/com/sun/tools/doclets/internal/toolkit/util/ClassTree.java
浏览文件 @
9dd871cd
...
...
@@ -49,35 +49,35 @@ public class ClassTree {
* List of baseclasses. Contains only java.lang.Object. Can be used to get
* the mapped listing of sub-classes.
*/
private
List
baseclasses
=
new
ArrayList
();
private
List
<
ClassDoc
>
baseclasses
=
new
ArrayList
<
ClassDoc
>
();
/**
* Mapping for each Class with their SubClasses
*/
private
Map
subclasses
=
new
HashMap
();
private
Map
<
ClassDoc
,
List
<
ClassDoc
>>
subclasses
=
new
HashMap
<
ClassDoc
,
List
<
ClassDoc
>>
();
/**
* List of base-interfaces. Contains list of all the interfaces who do not
* have super-interfaces. Can be used to get the mapped listing of
* sub-interfaces.
*/
private
List
baseinterfaces
=
new
ArrayList
();
private
List
<
ClassDoc
>
baseinterfaces
=
new
ArrayList
<
ClassDoc
>
();
/**
* Mapping for each Interface with their SubInterfaces
*/
private
Map
subinterfaces
=
new
HashMap
();
private
Map
<
ClassDoc
,
List
<
ClassDoc
>>
subinterfaces
=
new
HashMap
<
ClassDoc
,
List
<
ClassDoc
>>
();
private
List
baseEnums
=
new
ArrayList
();
private
Map
subEnums
=
new
HashMap
();
private
List
<
ClassDoc
>
baseEnums
=
new
ArrayList
<
ClassDoc
>
();
private
Map
<
ClassDoc
,
List
<
ClassDoc
>>
subEnums
=
new
HashMap
<
ClassDoc
,
List
<
ClassDoc
>>
();
private
List
baseAnnotationTypes
=
new
ArrayList
();
private
Map
subAnnotationTypes
=
new
HashMap
();
private
List
<
ClassDoc
>
baseAnnotationTypes
=
new
ArrayList
<
ClassDoc
>
();
private
Map
<
ClassDoc
,
List
<
ClassDoc
>>
subAnnotationTypes
=
new
HashMap
<
ClassDoc
,
List
<
ClassDoc
>>
();
/**
* Mapping for each Interface with classes who implement it.
*/
private
Map
implementingclasses
=
new
HashMap
();
private
Map
<
ClassDoc
,
List
<
ClassDoc
>>
implementingclasses
=
new
HashMap
<
ClassDoc
,
List
<
ClassDoc
>>
();
/**
* Constructor. Build the Tree using the Root of this Javadoc run.
...
...
@@ -132,7 +132,7 @@ public class ClassTree {
processType
(
classes
[
i
],
configuration
,
baseclasses
,
subclasses
);
}
else
if
(
classes
[
i
].
isInterface
())
{
processInterface
(
classes
[
i
]);
List
list
=
(
List
)
implementingclasses
.
get
(
classes
[
i
]);
List
<
ClassDoc
>
list
=
implementingclasses
.
get
(
classes
[
i
]);
if
(
list
!=
null
)
{
Collections
.
sort
(
list
);
}
...
...
@@ -143,11 +143,11 @@ public class ClassTree {
}
Collections
.
sort
(
baseinterfaces
);
for
(
Iterator
it
=
subinterfaces
.
values
().
iterator
();
it
.
hasNext
();
)
{
Collections
.
sort
(
(
List
)
it
.
next
());
for
(
Iterator
<
List
<
ClassDoc
>>
it
=
subinterfaces
.
values
().
iterator
();
it
.
hasNext
();
)
{
Collections
.
sort
(
it
.
next
());
}
for
(
Iterator
it
=
subclasses
.
values
().
iterator
();
it
.
hasNext
();
)
{
Collections
.
sort
(
(
List
)
it
.
next
());
for
(
Iterator
<
List
<
ClassDoc
>>
it
=
subclasses
.
values
().
iterator
();
it
.
hasNext
();
)
{
Collections
.
sort
(
it
.
next
());
}
}
...
...
@@ -164,7 +164,7 @@ public class ClassTree {
* @param configuration the current configurtation of the doclet.
*/
private
void
processType
(
ClassDoc
cd
,
Configuration
configuration
,
List
bases
,
Map
subs
)
{
List
<
ClassDoc
>
bases
,
Map
<
ClassDoc
,
List
<
ClassDoc
>>
subs
)
{
ClassDoc
superclass
=
Util
.
getFirstVisibleSuperClassCD
(
cd
,
configuration
);
if
(
superclass
!=
null
)
{
if
(!
add
(
subs
,
superclass
,
cd
))
{
...
...
@@ -219,10 +219,10 @@ public class ClassTree {
* @param cd sub-interface to be mapped.
* @returns boolean true if class added, false if class already processed.
*/
private
boolean
add
(
Map
map
,
ClassDoc
superclass
,
ClassDoc
cd
)
{
List
list
=
(
List
)
map
.
get
(
superclass
);
private
boolean
add
(
Map
<
ClassDoc
,
List
<
ClassDoc
>>
map
,
ClassDoc
superclass
,
ClassDoc
cd
)
{
List
<
ClassDoc
>
list
=
map
.
get
(
superclass
);
if
(
list
==
null
)
{
list
=
new
ArrayList
();
list
=
new
ArrayList
<
ClassDoc
>
();
map
.
put
(
superclass
,
list
);
}
if
(
list
.
contains
(
cd
))
{
...
...
@@ -241,10 +241,10 @@ public class ClassTree {
* @param cd class for which the sub-class list is requested.
* @returns List Sub-Class list for the class passed.
*/
private
List
get
(
Map
map
,
ClassDoc
cd
)
{
List
list
=
(
List
)
map
.
get
(
cd
);
private
List
<
ClassDoc
>
get
(
Map
<
ClassDoc
,
List
<
ClassDoc
>>
map
,
ClassDoc
cd
)
{
List
<
ClassDoc
>
list
=
map
.
get
(
cd
);
if
(
list
==
null
)
{
return
new
ArrayList
();
return
new
ArrayList
<
ClassDoc
>
();
}
return
list
;
}
...
...
@@ -254,7 +254,7 @@ public class ClassTree {
*
* @param cd class whose sub-class list is required.
*/
public
List
subclasses
(
ClassDoc
cd
)
{
public
List
<
ClassDoc
>
subclasses
(
ClassDoc
cd
)
{
return
get
(
subclasses
,
cd
);
}
...
...
@@ -263,7 +263,7 @@ public class ClassTree {
*
* @param cd interface whose sub-interface list is required.
*/
public
List
subinterfaces
(
ClassDoc
cd
)
{
public
List
<
ClassDoc
>
subinterfaces
(
ClassDoc
cd
)
{
return
get
(
subinterfaces
,
cd
);
}
...
...
@@ -272,9 +272,9 @@ public class ClassTree {
*
* @param cd interface whose implementing-classes list is required.
*/
public
List
implementingclasses
(
ClassDoc
cd
)
{
List
result
=
get
(
implementingclasses
,
cd
);
List
subinterfaces
=
allSubs
(
cd
,
false
);
public
List
<
ClassDoc
>
implementingclasses
(
ClassDoc
cd
)
{
List
<
ClassDoc
>
result
=
get
(
implementingclasses
,
cd
);
List
<
ClassDoc
>
subinterfaces
=
allSubs
(
cd
,
false
);
//If class x implements a subinterface of cd, then it follows
//that class x implements cd.
...
...
@@ -301,7 +301,7 @@ public class ClassTree {
* @param isEnum true if the subclasses should be forced to come from the
* enum tree.
*/
public
List
subs
(
ClassDoc
cd
,
boolean
isEnum
)
{
public
List
<
ClassDoc
>
subs
(
ClassDoc
cd
,
boolean
isEnum
)
{
if
(
isEnum
)
{
return
get
(
subEnums
,
cd
);
}
else
if
(
cd
.
isAnnotationType
())
{
...
...
@@ -324,10 +324,10 @@ public class ClassTree {
* @param isEnum true if the subclasses should be forced to come from the
* enum tree.
*/
public
List
allSubs
(
ClassDoc
cd
,
boolean
isEnum
)
{
List
list
=
subs
(
cd
,
isEnum
);
public
List
<
ClassDoc
>
allSubs
(
ClassDoc
cd
,
boolean
isEnum
)
{
List
<
ClassDoc
>
list
=
subs
(
cd
,
isEnum
);
for
(
int
i
=
0
;
i
<
list
.
size
();
i
++)
{
cd
=
(
ClassDoc
)
list
.
get
(
i
);
cd
=
list
.
get
(
i
);
List
tlist
=
subs
(
cd
,
isEnum
);
for
(
int
j
=
0
;
j
<
tlist
.
size
();
j
++)
{
ClassDoc
tcd
=
(
ClassDoc
)
tlist
.
get
(
j
);
...
...
src/share/classes/com/sun/tools/doclets/internal/toolkit/util/ClassUseMapper.java
浏览文件 @
9dd871cd
...
...
@@ -46,138 +46,138 @@ public class ClassUseMapper {
* Mapping of ClassDocs to set of PackageDoc used by that class.
* Entries may be null.
*/
public
Map
classToPackage
=
new
HashMap
();
public
Map
<
String
,
Set
<
PackageDoc
>>
classToPackage
=
new
HashMap
<
String
,
Set
<
PackageDoc
>>
();
/**
* Mapping of Annotations to set of PackageDoc that use the annotation.
*/
public
Map
classToPackageAnnotations
=
new
HashMap
();
public
Map
<
String
,
List
<
PackageDoc
>>
classToPackageAnnotations
=
new
HashMap
<
String
,
List
<
PackageDoc
>>
();
/**
* Mapping of ClassDocs to set of ClassDoc used by that class.
* Entries may be null.
*/
public
Map
classToClass
=
new
HashMap
();
public
Map
<
String
,
Set
<
ClassDoc
>>
classToClass
=
new
HashMap
<
String
,
Set
<
ClassDoc
>>
();
/**
* Mapping of ClassDocs to list of ClassDoc which are direct or
* indirect subclasses of that class.
* Entries may be null.
*/
public
Map
classToSubclass
=
new
HashMap
();
public
Map
<
String
,
List
<
ClassDoc
>>
classToSubclass
=
new
HashMap
<
String
,
List
<
ClassDoc
>>
();
/**
* Mapping of ClassDocs to list of ClassDoc which are direct or
* indirect subinterfaces of that interface.
* Entries may be null.
*/
public
Map
classToSubinterface
=
new
HashMap
();
public
Map
<
String
,
List
<
ClassDoc
>>
classToSubinterface
=
new
HashMap
<
String
,
List
<
ClassDoc
>>
();
/**
* Mapping of ClassDocs to list of ClassDoc which implement
* this interface.
* Entries may be null.
*/
public
Map
classToImplementingClass
=
new
HashMap
();
public
Map
<
String
,
List
<
ClassDoc
>>
classToImplementingClass
=
new
HashMap
<
String
,
List
<
ClassDoc
>>
();
/**
* Mapping of ClassDocs to list of FieldDoc declared as that class.
* Entries may be null.
*/
public
Map
classToField
=
new
HashMap
();
public
Map
<
String
,
List
<
FieldDoc
>>
classToField
=
new
HashMap
<
String
,
List
<
FieldDoc
>>
();
/**
* Mapping of ClassDocs to list of MethodDoc returning that class.
* Entries may be null.
*/
public
Map
classToMethodReturn
=
new
HashMap
();
public
Map
<
String
,
List
<
MethodDoc
>>
classToMethodReturn
=
new
HashMap
<
String
,
List
<
MethodDoc
>>
();
/**
* Mapping of ClassDocs to list of MethodDoc having that class
* as an arg.
* Entries may be null.
*/
public
Map
classToMethodArgs
=
new
HashMap
();
public
Map
<
String
,
List
<
ExecutableMemberDoc
>>
classToMethodArgs
=
new
HashMap
<
String
,
List
<
ExecutableMemberDoc
>>
();
/**
* Mapping of ClassDocs to list of MethodDoc which throws that class.
* Entries may be null.
*/
public
Map
classToMethodThrows
=
new
HashMap
();
public
Map
<
String
,
List
<
ExecutableMemberDoc
>>
classToMethodThrows
=
new
HashMap
<
String
,
List
<
ExecutableMemberDoc
>>
();
/**
* Mapping of ClassDocs to list of ConstructorDoc having that class
* as an arg.
* Entries may be null.
*/
public
Map
classToConstructorArgs
=
new
HashMap
();
public
Map
<
String
,
List
<
ExecutableMemberDoc
>>
classToConstructorArgs
=
new
HashMap
<
String
,
List
<
ExecutableMemberDoc
>>
();
/**
* Mapping of ClassDocs to list of ConstructorDoc which throws that class.
* Entries may be null.
*/
public
Map
classToConstructorThrows
=
new
HashMap
();
public
Map
<
String
,
List
<
ExecutableMemberDoc
>>
classToConstructorThrows
=
new
HashMap
<
String
,
List
<
ExecutableMemberDoc
>>
();
/**
* The mapping of AnnotationTypeDocs to constructors that use them.
*/
public
Map
classToConstructorAnnotations
=
new
HashMap
();
public
Map
<
String
,
List
<
ConstructorDoc
>>
classToConstructorAnnotations
=
new
HashMap
<
String
,
List
<
ConstructorDoc
>>
();
/**
* The mapping of AnnotationTypeDocs to Constructor parameters that use them.
*/
public
Map
classToConstructorParamAnnotation
=
new
HashMap
();
public
Map
<
String
,
List
<
ExecutableMemberDoc
>>
classToConstructorParamAnnotation
=
new
HashMap
<
String
,
List
<
ExecutableMemberDoc
>>
();
/**
* The mapping of ClassDocs to Constructor arguments that use them as type parameters.
*/
public
Map
classToConstructorDocArgTypeParam
=
new
HashMap
();
public
Map
<
String
,
List
<
ExecutableMemberDoc
>>
classToConstructorDocArgTypeParam
=
new
HashMap
<
String
,
List
<
ExecutableMemberDoc
>>
();
/**
* The mapping of ClassDocs to ClassDocs that use them as type parameters.
*/
public
Map
classToClassTypeParam
=
new
HashMap
();
public
Map
<
String
,
List
<
ClassDoc
>>
classToClassTypeParam
=
new
HashMap
<
String
,
List
<
ClassDoc
>>
();
/**
* The mapping of AnnotationTypeDocs to ClassDocs that use them.
*/
public
Map
classToClassAnnotations
=
new
HashMap
();
public
Map
<
String
,
List
<
ClassDoc
>>
classToClassAnnotations
=
new
HashMap
<
String
,
List
<
ClassDoc
>>
();
/**
* The mapping of ClassDocs to ExecutableMemberDocs that use them as type parameters.
*/
public
Map
classToExecMemberDocTypeParam
=
new
HashMap
();
public
Map
<
String
,
List
<
MethodDoc
>>
classToExecMemberDocTypeParam
=
new
HashMap
<
String
,
List
<
MethodDoc
>>
();
/**
* The mapping of ClassDocs to ExecutableMemberDocs arguments that use them as type parameters.
*/
public
Map
classToExecMemberDocArgTypeParam
=
new
HashMap
();
public
Map
<
String
,
List
<
ExecutableMemberDoc
>>
classToExecMemberDocArgTypeParam
=
new
HashMap
<
String
,
List
<
ExecutableMemberDoc
>>
();
/**
* The mapping of AnnotationTypeDocs to ExecutableMemberDocs that use them.
*/
public
Map
classToExecMemberDocAnnotations
=
new
HashMap
();
public
Map
<
String
,
List
<
MethodDoc
>>
classToExecMemberDocAnnotations
=
new
HashMap
<
String
,
List
<
MethodDoc
>>
();
/**
* The mapping of ClassDocs to ExecutableMemberDocs that have return type
* with type parameters of that class.
*/
public
Map
classToExecMemberDocReturnTypeParam
=
new
HashMap
();
public
Map
<
String
,
List
<
MethodDoc
>>
classToExecMemberDocReturnTypeParam
=
new
HashMap
<
String
,
List
<
MethodDoc
>>
();
/**
* The mapping of AnnotationTypeDocs to MethodDoc parameters that use them.
*/
public
Map
classToExecMemberDocParamAnnotation
=
new
HashMap
();
public
Map
<
String
,
List
<
ExecutableMemberDoc
>>
classToExecMemberDocParamAnnotation
=
new
HashMap
<
String
,
List
<
ExecutableMemberDoc
>>
();
/**
* The mapping of ClassDocs to FieldDocs that use them as type parameters.
*/
public
Map
classToFieldDocTypeParam
=
new
HashMap
();
public
Map
<
String
,
List
<
FieldDoc
>>
classToFieldDocTypeParam
=
new
HashMap
<
String
,
List
<
FieldDoc
>>
();
/**
* The mapping of AnnotationTypeDocs to FieldDocs that use them.
*/
public
Map
annotationToFieldDoc
=
new
HashMap
();
public
Map
<
String
,
List
<
FieldDoc
>>
annotationToFieldDoc
=
new
HashMap
<
String
,
List
<
FieldDoc
>>
();
public
ClassUseMapper
(
RootDoc
root
,
ClassTree
classtree
)
{
...
...
@@ -231,15 +231,15 @@ public class ClassUseMapper {
/**
* Return all subclasses of a class AND fill-in classToSubclass map.
*/
private
Collection
subclasses
(
ClassDoc
cd
)
{
Collection
ret
=
(
Collection
)
classToSubclass
.
get
(
cd
.
qualifiedName
());
private
Collection
<
ClassDoc
>
subclasses
(
ClassDoc
cd
)
{
Collection
<
ClassDoc
>
ret
=
classToSubclass
.
get
(
cd
.
qualifiedName
());
if
(
ret
==
null
)
{
ret
=
new
TreeSet
();
List
subs
=
classtree
.
subclasses
(
cd
);
ret
=
new
TreeSet
<
ClassDoc
>
();
List
<
ClassDoc
>
subs
=
classtree
.
subclasses
(
cd
);
if
(
subs
!=
null
)
{
ret
.
addAll
(
subs
);
for
(
Iterator
it
=
subs
.
iterator
();
it
.
hasNext
();)
{
ret
.
addAll
(
subclasses
(
(
ClassDoc
)
it
.
next
()));
for
(
Iterator
<
ClassDoc
>
it
=
subs
.
iterator
();
it
.
hasNext
();)
{
ret
.
addAll
(
subclasses
(
it
.
next
()));
}
}
addAll
(
classToSubclass
,
cd
,
ret
);
...
...
@@ -250,15 +250,15 @@ public class ClassUseMapper {
/**
* Return all subinterfaces of an interface AND fill-in classToSubinterface map.
*/
private
Collection
subinterfaces
(
ClassDoc
cd
)
{
Collection
ret
=
(
Collection
)
classToSubinterface
.
get
(
cd
.
qualifiedName
());
private
Collection
<
ClassDoc
>
subinterfaces
(
ClassDoc
cd
)
{
Collection
<
ClassDoc
>
ret
=
classToSubinterface
.
get
(
cd
.
qualifiedName
());
if
(
ret
==
null
)
{
ret
=
new
TreeSet
();
List
subs
=
classtree
.
subinterfaces
(
cd
);
ret
=
new
TreeSet
<
ClassDoc
>
();
List
<
ClassDoc
>
subs
=
classtree
.
subinterfaces
(
cd
);
if
(
subs
!=
null
)
{
ret
.
addAll
(
subs
);
for
(
Iterator
it
=
subs
.
iterator
();
it
.
hasNext
();)
{
ret
.
addAll
(
subinterfaces
(
(
ClassDoc
)
it
.
next
()));
for
(
Iterator
<
ClassDoc
>
it
=
subs
.
iterator
();
it
.
hasNext
();)
{
ret
.
addAll
(
subinterfaces
(
it
.
next
()));
}
}
addAll
(
classToSubinterface
,
cd
,
ret
);
...
...
@@ -272,11 +272,11 @@ public class ClassUseMapper {
* implementing subinterfaces) AND fill-in both classToImplementingClass
* and classToSubinterface maps.
*/
private
Collection
implementingClasses
(
ClassDoc
cd
)
{
Collection
ret
=
(
List
)
classToImplementingClass
.
get
(
cd
.
qualifiedName
());
private
Collection
<
ClassDoc
>
implementingClasses
(
ClassDoc
cd
)
{
Collection
<
ClassDoc
>
ret
=
classToImplementingClass
.
get
(
cd
.
qualifiedName
());
if
(
ret
==
null
)
{
ret
=
new
TreeSet
();
List
impl
=
classtree
.
implementingclasses
(
cd
);
ret
=
new
TreeSet
<
ClassDoc
>
();
List
<
ClassDoc
>
impl
=
classtree
.
implementingclasses
(
cd
);
if
(
impl
!=
null
)
{
ret
.
addAll
(
impl
);
for
(
Iterator
it
=
impl
.
iterator
();
it
.
hasNext
();)
{
...
...
@@ -298,7 +298,7 @@ public class ClassUseMapper {
private
void
mapExecutable
(
ExecutableMemberDoc
em
)
{
Parameter
[]
params
=
em
.
parameters
();
boolean
isConstructor
=
em
.
isConstructor
();
List
classArgs
=
new
ArrayList
();
List
<
Type
>
classArgs
=
new
ArrayList
<
Type
>
();
for
(
int
k
=
0
;
k
<
params
.
length
;
k
++)
{
Type
pcd
=
params
[
k
].
type
();
// primitives don't get mapped, also avoid dups
...
...
@@ -325,34 +325,38 @@ public class ClassUseMapper {
}
}
private
List
refList
(
Map
map
,
ClassDoc
cd
)
{
List
list
=
(
List
)
map
.
get
(
cd
.
qualifiedName
());
private
<
T
>
List
<
T
>
refList
(
Map
<
String
,
List
<
T
>>
map
,
ClassDoc
cd
)
{
List
<
T
>
list
=
map
.
get
(
cd
.
qualifiedName
());
if
(
list
==
null
)
{
list
=
new
ArrayList
();
@SuppressWarnings
(
"unchecked"
)
List
<
T
>
l
=
new
ArrayList
();
list
=
l
;
map
.
put
(
cd
.
qualifiedName
(),
list
);
}
return
list
;
}
private
Set
packageSet
(
ClassDoc
cd
)
{
Set
pkgSet
=
(
Set
)
classToPackage
.
get
(
cd
.
qualifiedName
());
private
Set
<
PackageDoc
>
packageSet
(
ClassDoc
cd
)
{
Set
<
PackageDoc
>
pkgSet
=
classToPackage
.
get
(
cd
.
qualifiedName
());
if
(
pkgSet
==
null
)
{
pkgSet
=
new
TreeSet
();
pkgSet
=
new
TreeSet
<
PackageDoc
>
();
classToPackage
.
put
(
cd
.
qualifiedName
(),
pkgSet
);
}
return
pkgSet
;
}
private
Set
classSet
(
ClassDoc
cd
)
{
Set
clsSet
=
(
Set
)
classToClass
.
get
(
cd
.
qualifiedName
());
private
Set
<
ClassDoc
>
classSet
(
ClassDoc
cd
)
{
Set
<
ClassDoc
>
clsSet
=
classToClass
.
get
(
cd
.
qualifiedName
());
if
(
clsSet
==
null
)
{
clsSet
=
new
TreeSet
();
@SuppressWarnings
(
"unchecked"
)
Set
<
ClassDoc
>
s
=
new
TreeSet
();
clsSet
=
s
;
classToClass
.
put
(
cd
.
qualifiedName
(),
clsSet
);
}
return
clsSet
;
}
private
void
add
(
Map
map
,
ClassDoc
cd
,
ProgramElementDoc
ref
)
{
private
<
T
extends
ProgramElementDoc
>
void
add
(
Map
<
String
,
List
<
T
>>
map
,
ClassDoc
cd
,
T
ref
)
{
// add to specified map
refList
(
map
,
cd
).
add
(
ref
);
...
...
@@ -361,25 +365,23 @@ public class ClassUseMapper {
classSet
(
cd
).
add
(
ref
instanceof
MemberDoc
?
((
MemberDoc
)
ref
).
containingClass
()
:
ref
);
(
ClassDoc
)
ref
);
}
private
void
addAll
(
Map
map
,
ClassDoc
cd
,
Collection
refs
)
{
private
void
addAll
(
Map
<
String
,
List
<
ClassDoc
>>
map
,
ClassDoc
cd
,
Collection
<
ClassDoc
>
refs
)
{
if
(
refs
==
null
)
{
return
;
}
// add to specified map
refList
(
map
,
cd
).
addAll
(
refs
);
Set
pkgSet
=
packageSet
(
cd
);
Set
clsSet
=
classSet
(
cd
);
Set
<
PackageDoc
>
pkgSet
=
packageSet
(
cd
);
Set
<
ClassDoc
>
clsSet
=
classSet
(
cd
);
// add ref's package to package map and class map
for
(
Iterator
it
=
refs
.
iterator
();
it
.
hasNext
();)
{
ProgramElementDoc
pedoc
=
(
ProgramElementDoc
)
it
.
next
();
pkgSet
.
add
(
pedoc
.
containingPackage
());
clsSet
.
add
(
pedoc
instanceof
MemberDoc
?
((
MemberDoc
)
pedoc
).
containingClass
()
:
pedoc
);
for
(
Iterator
<
ClassDoc
>
it
=
refs
.
iterator
();
it
.
hasNext
();)
{
ClassDoc
cls
=
it
.
next
();
pkgSet
.
add
(
cls
.
containingPackage
());
clsSet
.
add
(
cls
);
}
}
...
...
@@ -392,8 +394,8 @@ public class ClassUseMapper {
* @param doc the doc whose type parameters are being checked.
* @param holder the holder that owns the type parameters.
*/
private
void
mapTypeParameters
(
Map
map
,
Object
doc
,
ProgramElementDoc
holder
)
{
private
<
T
extends
ProgramElementDoc
>
void
mapTypeParameters
(
Map
<
String
,
List
<
T
>>
map
,
Object
doc
,
T
holder
)
{
TypeVariable
[]
typeVariables
;
if
(
doc
instanceof
ClassDoc
)
{
typeVariables
=
((
ClassDoc
)
doc
).
typeParameters
();
...
...
@@ -438,9 +440,8 @@ public class ClassUseMapper {
* @param doc the doc whose type parameters are being checked.
* @param holder the holder that owns the type parameters.
*/
private
void
mapAnnotations
(
Map
map
,
Object
doc
,
Object
holder
)
{
TypeVariable
[]
typeVariables
;
private
<
T
extends
ProgramElementDoc
>
void
mapAnnotations
(
Map
<
String
,
List
<
T
>>
map
,
Object
doc
,
T
holder
)
{
AnnotationDesc
[]
annotations
;
boolean
isPackage
=
false
;
if
(
doc
instanceof
ProgramElementDoc
)
{
...
...
@@ -458,12 +459,31 @@ public class ClassUseMapper {
if
(
isPackage
)
refList
(
map
,
annotationDoc
).
add
(
holder
);
else
add
(
map
,
annotationDoc
,
(
ProgramElementDoc
)
holder
);
add
(
map
,
annotationDoc
,
holder
);
}
}
/**
* Map the AnnotationType to the ProgramElementDocs that use them as
* type parameters.
*
* @param map the map the insert the information into.
* @param doc the doc whose type parameters are being checked.
* @param holder the holder that owns the type parameters.
*/
private
<
T
extends
PackageDoc
>
void
mapAnnotations
(
Map
<
String
,
List
<
T
>>
map
,
PackageDoc
doc
,
T
holder
)
{
AnnotationDesc
[]
annotations
;
annotations
=
doc
.
annotations
();
for
(
int
i
=
0
;
i
<
annotations
.
length
;
i
++)
{
AnnotationTypeDoc
annotationDoc
=
annotations
[
i
].
annotationType
();
refList
(
map
,
annotationDoc
).
add
(
holder
);
}
}
private
void
addTypeParameterToMap
(
Map
map
,
Type
type
,
ProgramElementDoc
holder
)
{
private
<
T
extends
ProgramElementDoc
>
void
addTypeParameterToMap
(
Map
<
String
,
List
<
T
>>
map
,
Type
type
,
T
holder
)
{
if
(
type
instanceof
ClassDoc
)
{
add
(
map
,
(
ClassDoc
)
type
,
holder
);
}
else
if
(
type
instanceof
ParameterizedType
)
{
...
...
src/share/classes/com/sun/tools/doclets/internal/toolkit/util/DeprecatedAPIListBuilder.java
浏览文件 @
9dd871cd
...
...
@@ -52,7 +52,7 @@ public class DeprecatedAPIListBuilder {
/**
* List of deprecated type Lists.
*/
private
List
deprecatedLists
;
private
List
<
List
<
Doc
>>
deprecatedLists
;
/**
...
...
@@ -61,9 +61,9 @@ public class DeprecatedAPIListBuilder {
* @param root Root of the tree.
*/
public
DeprecatedAPIListBuilder
(
RootDoc
root
)
{
deprecatedLists
=
new
ArrayList
();
deprecatedLists
=
new
ArrayList
<
List
<
Doc
>>
();
for
(
int
i
=
0
;
i
<
NUM_TYPES
;
i
++)
{
deprecatedLists
.
add
(
i
,
new
ArrayList
());
deprecatedLists
.
add
(
i
,
new
ArrayList
<
Doc
>
());
}
buildDeprecatedAPIInfo
(
root
);
}
...
...
@@ -114,7 +114,7 @@ public class DeprecatedAPIListBuilder {
* @param list List of all the particular deprecated members, e.g. methods.
* @param members members to be added in the list.
*/
private
void
composeDeprecatedList
(
List
list
,
MemberDoc
[]
members
)
{
private
void
composeDeprecatedList
(
List
<
Doc
>
list
,
MemberDoc
[]
members
)
{
for
(
int
i
=
0
;
i
<
members
.
length
;
i
++)
{
if
(
Util
.
isDeprecated
(
members
[
i
]))
{
list
.
add
(
members
[
i
]);
...
...
@@ -137,8 +137,8 @@ public class DeprecatedAPIListBuilder {
*
* @param the constant representing the type of list being returned.
*/
public
List
getList
(
int
type
)
{
return
(
List
)
deprecatedLists
.
get
(
type
);
public
List
<
Doc
>
getList
(
int
type
)
{
return
deprecatedLists
.
get
(
type
);
}
/**
...
...
@@ -147,6 +147,6 @@ public class DeprecatedAPIListBuilder {
* @param type the type of list being checked.
*/
public
boolean
hasDocumentation
(
int
type
)
{
return
(
(
List
)
deprecatedLists
.
get
(
type
)).
size
()
>
0
;
return
(
deprecatedLists
.
get
(
type
)).
size
()
>
0
;
}
}
src/share/classes/com/sun/tools/doclets/internal/toolkit/util/DocFinder.java
浏览文件 @
9dd871cd
...
...
@@ -164,7 +164,7 @@ public class DocFinder {
* subclass of IOException. This subclass of DocFinder.Output allows
* multiple tag inheritence.
*/
public
List
tagList
=
new
ArrayList
();
public
List
<
Tag
>
tagList
=
new
ArrayList
<
Tag
>
();
}
/**
...
...
src/share/classes/com/sun/tools/doclets/internal/toolkit/util/Extern.java
浏览文件 @
9dd871cd
...
...
@@ -53,7 +53,7 @@ public class Extern {
* Map package names onto Extern Item objects.
* Lazily initialized.
*/
private
Map
packageToItemMap
;
private
Map
<
String
,
Item
>
packageToItemMap
;
/**
* The global configuration information for this run.
...
...
@@ -101,7 +101,7 @@ public class Extern {
this
.
path
=
path
;
this
.
relative
=
relative
;
if
(
packageToItemMap
==
null
)
{
packageToItemMap
=
new
HashMap
();
packageToItemMap
=
new
HashMap
<
String
,
Item
>
();
}
if
(!
packageToItemMap
.
containsKey
(
packageName
))
{
// save the previous
packageToItemMap
.
put
(
packageName
,
this
);
// mapped location
...
...
@@ -185,7 +185,7 @@ public class Extern {
if
(
packageToItemMap
==
null
)
{
return
null
;
}
return
(
Item
)
packageToItemMap
.
get
(
pkgName
);
return
packageToItemMap
.
get
(
pkgName
);
}
/**
...
...
src/share/classes/com/sun/tools/doclets/internal/toolkit/util/Group.java
浏览文件 @
9dd871cd
...
...
@@ -61,24 +61,24 @@ public class Group {
/**
* Map of regular expressions with the corresponding group name.
*/
private
Map
regExpGroupMap
=
new
HashMap
();
private
Map
<
String
,
String
>
regExpGroupMap
=
new
HashMap
<
String
,
String
>
();
/**
* List of regular expressions sorted according to the length. Regular
* expression with longest length will be first in the sorted order.
*/
private
List
sortedRegExpList
=
new
ArrayList
();
private
List
<
String
>
sortedRegExpList
=
new
ArrayList
<
String
>
();
/**
* List of group names in the same order as given on the command line.
*/
private
List
groupList
=
new
ArrayList
();
private
List
<
String
>
groupList
=
new
ArrayList
<
String
>
();
/**
* Map of non-regular expressions(possible package names) with the
* corresponding group name.
*/
private
Map
pkgNameGroupMap
=
new
HashMap
();
private
Map
<
String
,
String
>
pkgNameGroupMap
=
new
HashMap
<
String
,
String
>
();
/**
* The global configuration information for this run.
...
...
@@ -90,9 +90,9 @@ public class Group {
* the compare method in the implementing class is doing the reverse
* comparison.
*/
private
static
class
MapKeyComparator
implements
Comparator
{
public
int
compare
(
Object
key1
,
Object
key2
)
{
return
((
String
)
key2
).
length
()
-
((
String
)
key1
)
.
length
();
private
static
class
MapKeyComparator
implements
Comparator
<
String
>
{
public
int
compare
(
String
key1
,
String
key2
)
{
return
key2
.
length
()
-
key1
.
length
();
}
}
...
...
@@ -182,8 +182,8 @@ public class Group {
*
* @param packages Packages specified on the command line.
*/
public
Map
groupPackages
(
PackageDoc
[]
packages
)
{
Map
groupPackageMap
=
new
HashMap
();
public
Map
<
String
,
List
<
PackageDoc
>>
groupPackages
(
PackageDoc
[]
packages
)
{
Map
<
String
,
List
<
PackageDoc
>>
groupPackageMap
=
new
HashMap
<
String
,
List
<
PackageDoc
>>
();
String
defaultGroupName
=
(
pkgNameGroupMap
.
isEmpty
()
&&
regExpGroupMap
.
isEmpty
())?
configuration
.
message
.
getText
(
"doclet.Packages"
)
:
...
...
@@ -195,7 +195,7 @@ public class Group {
for
(
int
i
=
0
;
i
<
packages
.
length
;
i
++)
{
PackageDoc
pkg
=
packages
[
i
];
String
pkgName
=
pkg
.
name
();
String
groupName
=
(
String
)
pkgNameGroupMap
.
get
(
pkgName
);
String
groupName
=
pkgNameGroupMap
.
get
(
pkgName
);
// if this package is not explicitly assigned to a group,
// try matching it to group specified by regular expression
if
(
groupName
==
null
)
{
...
...
@@ -220,9 +220,9 @@ public class Group {
*/
String
regExpGroupName
(
String
pkgName
)
{
for
(
int
j
=
0
;
j
<
sortedRegExpList
.
size
();
j
++)
{
String
regexp
=
(
String
)
sortedRegExpList
.
get
(
j
);
String
regexp
=
sortedRegExpList
.
get
(
j
);
if
(
pkgName
.
startsWith
(
regexp
))
{
return
(
String
)
regExpGroupMap
.
get
(
regexp
);
return
regExpGroupMap
.
get
(
regexp
);
}
}
return
null
;
...
...
@@ -235,10 +235,10 @@ public class Group {
* @param map Map to be searched for gorup name.
* @param groupname Group name to search.
*/
List
getPkgList
(
Map
map
,
String
groupname
)
{
List
list
=
(
List
)
map
.
get
(
groupname
);
List
<
PackageDoc
>
getPkgList
(
Map
<
String
,
List
<
PackageDoc
>>
map
,
String
groupname
)
{
List
<
PackageDoc
>
list
=
map
.
get
(
groupname
);
if
(
list
==
null
)
{
list
=
new
ArrayList
();
list
=
new
ArrayList
<
PackageDoc
>
();
map
.
put
(
groupname
,
list
);
}
return
list
;
...
...
src/share/classes/com/sun/tools/doclets/internal/toolkit/util/ImplementedMethods.java
浏览文件 @
9dd871cd
...
...
@@ -41,8 +41,8 @@ import java.util.*;
*/
public
class
ImplementedMethods
{
private
Map
interfaces
=
new
HashMap
();
private
List
methlist
=
new
ArrayList
();
private
Map
<
MethodDoc
,
Type
>
interfaces
=
new
HashMap
<
MethodDoc
,
Type
>
();
private
List
<
MethodDoc
>
methlist
=
new
ArrayList
<
MethodDoc
>
();
private
Configuration
configuration
;
private
final
ClassDoc
classdoc
;
private
final
MethodDoc
method
;
...
...
@@ -67,7 +67,7 @@ public class ImplementedMethods {
*/
public
MethodDoc
[]
build
(
boolean
sort
)
{
buildImplementedMethodList
(
sort
);
return
(
MethodDoc
[])
methlist
.
toArray
(
new
MethodDoc
[
methlist
.
size
()]);
return
methlist
.
toArray
(
new
MethodDoc
[
methlist
.
size
()]);
}
public
MethodDoc
[]
build
()
{
...
...
@@ -75,7 +75,7 @@ public class ImplementedMethods {
}
public
Type
getMethodHolder
(
MethodDoc
methodDoc
)
{
return
(
Type
)
interfaces
.
get
(
methodDoc
);
return
interfaces
.
get
(
methodDoc
);
}
/**
...
...
@@ -111,7 +111,7 @@ public class ImplementedMethods {
ClassDoc
overriddenClass
=
method
.
overriddenClass
();
if
(
overriddenClass
!=
null
)
{
for
(
int
i
=
0
;
i
<
methlist
.
size
();
i
++)
{
ClassDoc
cd
=
((
MethodDoc
)
methlist
.
get
(
i
)
).
containingClass
();
ClassDoc
cd
=
methlist
.
get
(
i
).
containingClass
();
if
(
cd
==
overriddenClass
||
overriddenClass
.
subclassOf
(
cd
))
{
methlist
.
remove
(
i
);
// remove overridden method
return
;
...
...
@@ -131,7 +131,7 @@ public class ImplementedMethods {
private
boolean
overridingMethodFound
(
MethodDoc
method
)
{
ClassDoc
containingClass
=
method
.
containingClass
();
for
(
int
i
=
0
;
i
<
methlist
.
size
();
i
++)
{
MethodDoc
listmethod
=
(
MethodDoc
)
methlist
.
get
(
i
);
MethodDoc
listmethod
=
methlist
.
get
(
i
);
if
(
containingClass
==
listmethod
.
containingClass
())
{
// it's the same method.
return
true
;
...
...
src/share/classes/com/sun/tools/doclets/internal/toolkit/util/IndexBuilder.java
浏览文件 @
9dd871cd
...
...
@@ -49,7 +49,7 @@ public class IndexBuilder {
* Mapping of each Unicode Character with the member list containing
* members with names starting with it.
*/
private
Map
indexmap
=
new
HashMap
();
private
Map
<
Character
,
List
<
Doc
>>
indexmap
=
new
HashMap
<
Character
,
List
<
Doc
>>
();
/**
* Don't generate deprecated information if true.
...
...
@@ -68,10 +68,10 @@ public class IndexBuilder {
* A comparator used to sort classes and members.
* Note: Maybe this compare code belongs in the tool?
*/
private
class
DocComparator
implements
Comparator
{
public
int
compare
(
Object
d1
,
Object
d2
)
{
String
doc1
=
(((
Doc
)
d1
).
name
()
);
String
doc2
=
(((
Doc
)
d2
).
name
()
);
private
class
DocComparator
implements
Comparator
<
Doc
>
{
public
int
compare
(
Doc
d1
,
Doc
d2
)
{
String
doc1
=
d1
.
name
(
);
String
doc2
=
d2
.
name
(
);
int
compareResult
;
if
((
compareResult
=
doc1
.
compareToIgnoreCase
(
doc2
))
!=
0
)
{
return
compareResult
;
...
...
@@ -124,8 +124,8 @@ public class IndexBuilder {
* sort each element which is a list.
*/
protected
void
sortIndexMap
()
{
for
(
Iterator
it
=
indexmap
.
values
().
iterator
();
it
.
hasNext
();
)
{
Collections
.
sort
(
(
List
)
it
.
next
(),
new
DocComparator
());
for
(
Iterator
<
List
<
Doc
>>
it
=
indexmap
.
values
().
iterator
();
it
.
hasNext
();
)
{
Collections
.
sort
(
it
.
next
(),
new
DocComparator
());
}
}
...
...
@@ -141,7 +141,7 @@ public class IndexBuilder {
ClassDoc
[]
classes
=
root
.
classes
();
if
(!
classesOnly
)
{
if
(
packages
.
length
==
0
)
{
Set
set
=
new
HashSet
();
Set
<
PackageDoc
>
set
=
new
HashSet
<
PackageDoc
>
();
PackageDoc
pd
;
for
(
int
i
=
0
;
i
<
classes
.
length
;
i
++)
{
pd
=
classes
[
i
].
containingPackage
();
...
...
@@ -149,7 +149,7 @@ public class IndexBuilder {
set
.
add
(
pd
);
}
}
adjustIndexMap
(
(
PackageDoc
[])
set
.
toArray
(
packages
));
adjustIndexMap
(
set
.
toArray
(
packages
));
}
else
{
adjustIndexMap
(
packages
);
}
...
...
@@ -193,9 +193,9 @@ public class IndexBuilder {
'*'
:
Character
.
toUpperCase
(
name
.
charAt
(
0
));
Character
unicode
=
new
Character
(
ch
);
List
list
=
(
List
)
indexmap
.
get
(
unicode
);
List
<
Doc
>
list
=
indexmap
.
get
(
unicode
);
if
(
list
==
null
)
{
list
=
new
ArrayList
();
list
=
new
ArrayList
<
Doc
>
();
indexmap
.
put
(
unicode
,
list
);
}
list
.
add
(
elements
[
i
]);
...
...
src/share/classes/com/sun/tools/doclets/internal/toolkit/util/MetaKeywords.java
浏览文件 @
9dd871cd
...
...
@@ -82,7 +82,7 @@ public class MetaKeywords {
* definitions are on separate pages.
*/
public
String
[]
getMetaKeywords
(
ClassDoc
classdoc
)
{
ArrayList
results
=
new
ArrayList
();
ArrayList
<
String
>
results
=
new
ArrayList
<
String
>
();
// Add field and method keywords only if -keywords option is used
if
(
configuration
.
keywords
)
{
...
...
@@ -90,16 +90,16 @@ public class MetaKeywords {
results
.
addAll
(
getMemberKeywords
(
classdoc
.
fields
()));
results
.
addAll
(
getMemberKeywords
(
classdoc
.
methods
()));
}
return
(
String
[])
results
.
toArray
(
new
String
[]{});
return
results
.
toArray
(
new
String
[]{});
}
/**
* Get the current class for a meta tag keyword, as the first
* and only element of an array list.
*/
protected
ArrayList
getClassKeyword
(
ClassDoc
classdoc
)
{
protected
ArrayList
<
String
>
getClassKeyword
(
ClassDoc
classdoc
)
{
String
cltypelower
=
classdoc
.
isInterface
()
?
"interface"
:
"class"
;
ArrayList
metakeywords
=
new
ArrayList
(
1
);
ArrayList
<
String
>
metakeywords
=
new
ArrayList
<
String
>
(
1
);
metakeywords
.
add
(
classdoc
.
qualifiedName
()
+
" "
+
cltypelower
);
return
metakeywords
;
}
...
...
@@ -141,8 +141,8 @@ public class MetaKeywords {
*
* @param memberdocs array of MemberDoc objects to be added to keywords
*/
protected
ArrayList
getMemberKeywords
(
MemberDoc
[]
memberdocs
)
{
ArrayList
results
=
new
ArrayList
();
protected
ArrayList
<
String
>
getMemberKeywords
(
MemberDoc
[]
memberdocs
)
{
ArrayList
<
String
>
results
=
new
ArrayList
<
String
>
();
String
membername
;
for
(
int
i
=
0
;
i
<
memberdocs
.
length
;
i
++)
{
membername
=
memberdocs
[
i
].
name
()
...
...
src/share/classes/com/sun/tools/doclets/internal/toolkit/util/SourceToHTMLConverter.java
浏览文件 @
9dd871cd
...
...
@@ -260,12 +260,12 @@ public class SourceToHTMLConverter {
* @param docs the array of <code>Doc</code>s to add anchors for.
* @param hash the <code>HashMap</code> to add to.
*/
protected
static
void
addToHash
(
Doc
[]
docs
,
HashMap
hash
)
{
protected
static
void
addToHash
(
Doc
[]
docs
,
HashMap
<
Integer
,
String
>
hash
)
{
if
(
docs
==
null
)
{
return
;
}
for
(
int
i
=
0
;
i
<
docs
.
length
;
i
++)
{
hash
.
put
(
new
Integer
(
docs
[
i
].
position
().
line
()
),
getAnchor
(
docs
[
i
]));
hash
.
put
(
docs
[
i
].
position
().
line
(
),
getAnchor
(
docs
[
i
]));
}
}
...
...
src/share/classes/com/sun/tools/doclets/internal/toolkit/util/Util.java
浏览文件 @
9dd871cd
...
...
@@ -73,9 +73,9 @@ public class Util {
* @return List List of eligible members for whom
* documentation is getting generated.
*/
public
static
List
excludeDeprecatedMembersAsList
(
public
static
List
<
ProgramElementDoc
>
excludeDeprecatedMembersAsList
(
ProgramElementDoc
[]
members
)
{
List
list
=
new
ArrayList
();
List
<
ProgramElementDoc
>
list
=
new
ArrayList
<
ProgramElementDoc
>
();
for
(
int
i
=
0
;
i
<
members
.
length
;
i
++)
{
if
(
members
[
i
].
tags
(
"deprecated"
).
length
==
0
)
{
list
.
add
(
members
[
i
]);
...
...
@@ -372,10 +372,10 @@ public class Util {
* We want the list of types in alphabetical order. However, types are not
* comparable. We need a comparator for now.
*/
private
static
class
TypeComparator
implements
Comparator
{
public
int
compare
(
Object
type1
,
Object
type2
)
{
return
((
Type
)
type1
)
.
qualifiedTypeName
().
toLowerCase
().
compareTo
(
((
Type
)
type2
)
.
qualifiedTypeName
().
toLowerCase
());
private
static
class
TypeComparator
implements
Comparator
<
Type
>
{
public
int
compare
(
Type
type1
,
Type
type2
)
{
return
type1
.
qualifiedTypeName
().
toLowerCase
().
compareTo
(
type2
.
qualifiedTypeName
().
toLowerCase
());
}
}
...
...
@@ -391,9 +391,9 @@ public class Util {
* @param sort if true, return list of interfaces sorted alphabetically.
* @return List of all the required interfaces.
*/
public
static
List
getAllInterfaces
(
Type
type
,
public
static
List
<
Type
>
getAllInterfaces
(
Type
type
,
Configuration
configuration
,
boolean
sort
)
{
Map
results
=
sort
?
new
TreeMap
()
:
new
LinkedHashMap
();
Map
<
ClassDoc
,
Type
>
results
=
sort
?
new
TreeMap
<
ClassDoc
,
Type
>()
:
new
LinkedHashMap
<
ClassDoc
,
Type
>
();
Type
[]
interfaceTypes
=
null
;
Type
superType
=
null
;
if
(
type
instanceof
ParameterizedType
)
{
...
...
@@ -423,7 +423,7 @@ public class Util {
}
}
if
(
superType
==
null
)
return
new
ArrayList
(
results
.
values
());
return
new
ArrayList
<
Type
>
(
results
.
values
());
//Try walking the tree.
addAllInterfaceTypes
(
results
,
superType
,
...
...
@@ -431,7 +431,7 @@ public class Util {
((
ClassDoc
)
superType
).
interfaceTypes
()
:
((
ParameterizedType
)
superType
).
interfaceTypes
(),
false
,
configuration
);
List
resultsList
=
new
ArrayList
(
results
.
values
());
List
<
Type
>
resultsList
=
new
ArrayList
<
Type
>
(
results
.
values
());
if
(
sort
)
{
Collections
.
sort
(
resultsList
,
new
TypeComparator
());
}
...
...
@@ -442,7 +442,7 @@ public class Util {
return
getAllInterfaces
(
type
,
configuration
,
true
);
}
private
static
void
findAllInterfaceTypes
(
Map
results
,
ClassDoc
c
,
boolean
raw
,
private
static
void
findAllInterfaceTypes
(
Map
<
ClassDoc
,
Type
>
results
,
ClassDoc
c
,
boolean
raw
,
Configuration
configuration
)
{
Type
superType
=
c
.
superclassType
();
if
(
superType
==
null
)
...
...
@@ -454,7 +454,7 @@ public class Util {
raw
,
configuration
);
}
private
static
void
findAllInterfaceTypes
(
Map
results
,
ParameterizedType
p
,
private
static
void
findAllInterfaceTypes
(
Map
<
ClassDoc
,
Type
>
results
,
ParameterizedType
p
,
Configuration
configuration
)
{
Type
superType
=
p
.
superclassType
();
if
(
superType
==
null
)
...
...
@@ -466,7 +466,7 @@ public class Util {
false
,
configuration
);
}
private
static
void
addAllInterfaceTypes
(
Map
results
,
Type
type
,
private
static
void
addAllInterfaceTypes
(
Map
<
ClassDoc
,
Type
>
results
,
Type
type
,
Type
[]
interfaceTypes
,
boolean
raw
,
Configuration
configuration
)
{
for
(
int
i
=
0
;
i
<
interfaceTypes
.
length
;
i
++)
{
...
...
@@ -495,8 +495,8 @@ public class Util {
}
public
static
List
asList
(
ProgramElementDoc
[]
members
)
{
List
list
=
new
ArrayList
();
public
static
List
<
ProgramElementDoc
>
asList
(
ProgramElementDoc
[]
members
)
{
List
<
ProgramElementDoc
>
list
=
new
ArrayList
<
ProgramElementDoc
>
();
for
(
int
i
=
0
;
i
<
members
.
length
;
i
++)
{
list
.
add
(
members
[
i
]);
}
...
...
@@ -639,7 +639,7 @@ public class Util {
* @return an array of tokens.
*/
public
static
String
[]
tokenize
(
String
s
,
char
separator
,
int
maxTokens
)
{
List
tokens
=
new
ArrayList
();
List
<
String
>
tokens
=
new
ArrayList
<
String
>
();
StringBuilder
token
=
new
StringBuilder
();
boolean
prevIsEscapeChar
=
false
;
for
(
int
i
=
0
;
i
<
s
.
length
();
i
+=
Character
.
charCount
(
i
))
{
...
...
@@ -663,7 +663,7 @@ public class Util {
if
(
token
.
length
()
>
0
)
{
tokens
.
add
(
token
.
toString
());
}
return
(
String
[])
tokens
.
toArray
(
new
String
[]
{});
return
tokens
.
toArray
(
new
String
[]
{});
}
/**
...
...
src/share/classes/com/sun/tools/doclets/internal/toolkit/util/VisibleMemberMap.java
浏览文件 @
9dd871cd
...
...
@@ -65,19 +65,19 @@ public class VisibleMemberMap {
/**
* List of ClassDoc objects for which ClassMembers objects are built.
*/
private
final
List
visibleClasses
=
new
ArrayList
();
private
final
List
<
ClassDoc
>
visibleClasses
=
new
ArrayList
<
ClassDoc
>
();
/**
* Map for each member name on to a map which contains members with same
* name-signature. The mapped map will contain mapping for each MemberDoc
* onto it's respecive level string.
*/
private
final
Map
memberNameMap
=
new
HashMap
();
private
final
Map
<
Object
,
Map
<
ProgramElementDoc
,
String
>>
memberNameMap
=
new
HashMap
<
Object
,
Map
<
ProgramElementDoc
,
String
>>
();
/**
* Map of class and it's ClassMembers object.
*/
private
final
Map
classMap
=
new
HashMap
();
private
final
Map
<
ClassDoc
,
ClassMembers
>
classMap
=
new
HashMap
<
ClassDoc
,
ClassMembers
>
();
/**
* Type whose visible members are requested. This is the leaf of
...
...
@@ -128,8 +128,8 @@ public class VisibleMemberMap {
* @param configuation the current configuration of the doclet.
* @return the package private members inherited by the class.
*/
private
List
getInheritedPackagePrivateMethods
(
Configuration
configuration
)
{
List
results
=
new
ArrayList
();
private
List
<
ProgramElementDoc
>
getInheritedPackagePrivateMethods
(
Configuration
configuration
)
{
List
<
ProgramElementDoc
>
results
=
new
ArrayList
<
ProgramElementDoc
>
();
for
(
Iterator
iter
=
visibleClasses
.
iterator
();
iter
.
hasNext
();
)
{
ClassDoc
currentClass
=
(
ClassDoc
)
iter
.
next
();
if
(
currentClass
!=
classdoc
&&
...
...
@@ -150,8 +150,8 @@ public class VisibleMemberMap {
*
* @param configuation the current configuration of the doclet.
*/
public
List
getLeafClassMembers
(
Configuration
configuration
)
{
List
result
=
getMembersFor
(
classdoc
);
public
List
<
ProgramElementDoc
>
getLeafClassMembers
(
Configuration
configuration
)
{
List
<
ProgramElementDoc
>
result
=
getMembersFor
(
classdoc
);
result
.
addAll
(
getInheritedPackagePrivateMethods
(
configuration
));
return
result
;
}
...
...
@@ -163,10 +163,10 @@ public class VisibleMemberMap {
*
* @return the list of members for the given class.
*/
public
List
getMembersFor
(
ClassDoc
cd
)
{
ClassMembers
clmembers
=
(
ClassMembers
)(
classMap
.
get
(
cd
)
);
public
List
<
ProgramElementDoc
>
getMembersFor
(
ClassDoc
cd
)
{
ClassMembers
clmembers
=
classMap
.
get
(
cd
);
if
(
clmembers
==
null
)
{
return
new
ArrayList
();
return
new
ArrayList
<
ProgramElementDoc
>
();
}
return
clmembers
.
getMembers
();
}
...
...
@@ -175,11 +175,11 @@ public class VisibleMemberMap {
* Sort the given mixed list of classes and interfaces to a list of
* classes followed by interfaces traversed. Don't sort alphabetically.
*/
private
void
sort
(
List
list
)
{
List
classes
=
new
ArrayList
();
List
interfaces
=
new
ArrayList
();
private
void
sort
(
List
<
ClassDoc
>
list
)
{
List
<
ClassDoc
>
classes
=
new
ArrayList
<
ClassDoc
>
();
List
<
ClassDoc
>
interfaces
=
new
ArrayList
<
ClassDoc
>
();
for
(
int
i
=
0
;
i
<
list
.
size
();
i
++)
{
ClassDoc
cd
=
(
ClassDoc
)
list
.
get
(
i
);
ClassDoc
cd
=
list
.
get
(
i
);
if
(
cd
.
isClass
())
{
classes
.
add
(
cd
);
}
else
{
...
...
@@ -191,12 +191,12 @@ public class VisibleMemberMap {
list
.
addAll
(
interfaces
);
}
private
void
fillMemberLevelMap
(
List
list
,
String
level
)
{
private
void
fillMemberLevelMap
(
List
<
ProgramElementDoc
>
list
,
String
level
)
{
for
(
int
i
=
0
;
i
<
list
.
size
();
i
++)
{
Object
key
=
getMemberKey
(
(
ProgramElementDoc
)
list
.
get
(
i
));
Map
memberLevelMap
=
(
Map
)
memberNameMap
.
get
(
key
);
Object
key
=
getMemberKey
(
list
.
get
(
i
));
Map
<
ProgramElementDoc
,
String
>
memberLevelMap
=
memberNameMap
.
get
(
key
);
if
(
memberLevelMap
==
null
)
{
memberLevelMap
=
new
HashMap
();
memberLevelMap
=
new
HashMap
<
ProgramElementDoc
,
String
>
();
memberNameMap
.
put
(
key
,
memberLevelMap
);
}
memberLevelMap
.
put
(
list
.
get
(
i
),
level
);
...
...
@@ -218,10 +218,10 @@ public class VisibleMemberMap {
* type variables in consideration when comparing.
*/
private
class
ClassMember
{
private
Set
members
;
private
Set
<
ProgramElementDoc
>
members
;
public
ClassMember
(
ProgramElementDoc
programElementDoc
)
{
members
=
new
HashSet
();
members
=
new
HashSet
<
ProgramElementDoc
>
();
members
.
add
(
programElementDoc
);
}
...
...
@@ -256,7 +256,7 @@ public class VisibleMemberMap {
/**
* List of inherited members from the mapping class.
*/
private
List
members
=
new
ArrayList
();
private
List
<
ProgramElementDoc
>
members
=
new
ArrayList
<
ProgramElementDoc
>
();
/**
* Level/Depth of inheritance.
...
...
@@ -268,7 +268,7 @@ public class VisibleMemberMap {
*
* @return List Inherited members.
*/
public
List
getMembers
()
{
public
List
<
ProgramElementDoc
>
getMembers
()
{
return
members
;
}
...
...
@@ -276,11 +276,11 @@ public class VisibleMemberMap {
this
.
mappingClass
=
mappingClass
;
this
.
level
=
level
;
if
(
classMap
.
containsKey
(
mappingClass
)
&&
level
.
startsWith
(
((
ClassMembers
)
classMap
.
get
(
mappingClass
)
).
level
))
{
level
.
startsWith
(
classMap
.
get
(
mappingClass
).
level
))
{
//Remove lower level class so that it can be replaced with
//same class found at higher level.
purgeMemberLevelMap
(
getClassMembers
(
mappingClass
,
false
),
((
ClassMembers
)
classMap
.
get
(
mappingClass
)
).
level
);
classMap
.
get
(
mappingClass
).
level
);
classMap
.
remove
(
mappingClass
);
visibleClasses
.
remove
(
mappingClass
);
}
...
...
@@ -326,11 +326,10 @@ public class VisibleMemberMap {
* Adjust member-level-map, class-map.
*/
private
void
addMembers
(
ClassDoc
fromClass
)
{
List
cdmembers
=
getClassMembers
(
fromClass
,
true
);
List
incllist
=
new
ArrayList
();
List
<
ProgramElementDoc
>
cdmembers
=
getClassMembers
(
fromClass
,
true
);
List
<
ProgramElementDoc
>
incllist
=
new
ArrayList
<
ProgramElementDoc
>
();
for
(
int
i
=
0
;
i
<
cdmembers
.
size
();
i
++)
{
ProgramElementDoc
pgmelem
=
(
ProgramElementDoc
)(
cdmembers
.
get
(
i
));
ProgramElementDoc
pgmelem
=
cdmembers
.
get
(
i
);
if
(!
found
(
members
,
pgmelem
)
&&
memberIsVisible
(
pgmelem
)
&&
!
isOverridden
(
pgmelem
,
level
))
{
...
...
@@ -373,7 +372,7 @@ public class VisibleMemberMap {
/**
* Return all available class members.
*/
private
List
getClassMembers
(
ClassDoc
cd
,
boolean
filter
)
{
private
List
<
ProgramElementDoc
>
getClassMembers
(
ClassDoc
cd
,
boolean
filter
)
{
if
(
cd
.
isEnum
()
&&
kind
==
CONSTRUCTORS
)
{
//If any of these rules are hit, return empty array because
//we don't document these members ever.
...
...
@@ -428,16 +427,15 @@ public class VisibleMemberMap {
*/
private
AnnotationTypeElementDoc
[]
filter
(
AnnotationTypeDoc
doc
,
boolean
required
)
{
AnnotationTypeElementDoc
[]
members
=
((
AnnotationTypeDoc
)
doc
)
.
elements
();
List
targetMembers
=
new
ArrayList
();
AnnotationTypeElementDoc
[]
members
=
doc
.
elements
();
List
<
AnnotationTypeElementDoc
>
targetMembers
=
new
ArrayList
<
AnnotationTypeElementDoc
>
();
for
(
int
i
=
0
;
i
<
members
.
length
;
i
++)
{
if
((
required
&&
members
[
i
].
defaultValue
()
==
null
)
||
((!
required
)
&&
members
[
i
].
defaultValue
()
!=
null
)){
targetMembers
.
add
(
members
[
i
]);
}
}
return
(
AnnotationTypeElementDoc
[])
targetMembers
.
toArray
(
new
AnnotationTypeElementDoc
[]{});
return
targetMembers
.
toArray
(
new
AnnotationTypeElementDoc
[]{});
}
private
boolean
found
(
List
list
,
ProgramElementDoc
elem
)
{
...
...
src/share/classes/com/sun/tools/doclets/internal/toolkit/util/links/LinkFactory.java
浏览文件 @
9dd871cd
...
...
@@ -84,7 +84,7 @@ public abstract class LinkFactory {
owner
instanceof
ClassDoc
)
{
linkInfo
.
classDoc
=
(
ClassDoc
)
owner
;
linkInfo
.
label
=
type
.
typeName
();
linkOutput
.
append
(
getClassLink
(
(
LinkInfo
)
linkInfo
));
linkOutput
.
append
(
getClassLink
(
linkInfo
));
}
else
{
//No need to link method type parameters.
linkInfo
.
displayLength
+=
type
.
typeName
().
length
();
...
...
@@ -113,7 +113,7 @@ public abstract class LinkFactory {
return
linkOutput
;
}
else
{
linkInfo
.
classDoc
=
type
.
asClassDoc
();
linkOutput
=
getClassLink
(
(
LinkInfo
)
linkInfo
);
linkOutput
=
getClassLink
(
linkInfo
);
if
(
linkInfo
.
includeTypeAsSepLink
)
{
linkOutput
.
append
(
getTypeParameterLinks
(
linkInfo
,
false
));
}
...
...
@@ -136,7 +136,7 @@ public abstract class LinkFactory {
return
linkOutput
;
}
else
if
(
linkInfo
.
classDoc
!=
null
)
{
//Just a class link
LinkOutput
linkOutput
=
getClassLink
(
(
LinkInfo
)
linkInfo
);
LinkOutput
linkOutput
=
getClassLink
(
linkInfo
);
if
(
linkInfo
.
includeTypeAsSepLink
)
{
linkOutput
.
append
(
getTypeParameterLinks
(
linkInfo
,
false
));
}
...
...
src/share/classes/com/sun/tools/javac/util/AbstractLog.java
0 → 100644
浏览文件 @
9dd871cd
/*
* Copyright 1999-2008 Sun Microsystems, Inc. All Rights Reserved.
* 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. Sun designates this
* particular file as subject to the "Classpath" exception as provided
* by Sun in the LICENSE file that accompanied this code.
*
* 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.
*
* Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
* CA 95054 USA or visit www.sun.com if you need additional information or
* have any questions.
*/
package
com.sun.tools.javac.util
;
import
java.util.HashMap
;
import
java.util.Map
;
import
javax.tools.JavaFileObject
;
import
com.sun.tools.javac.util.JCDiagnostic.DiagnosticPosition
;
import
com.sun.tools.javac.util.JCDiagnostic.SimpleDiagnosticPosition
;
/**
* A base class for error logs. Reports errors and warnings, and
* keeps track of error numbers and positions.
*
* <p><b>This is NOT part of any API supported by Sun Microsystems. If
* you write code that depends on this, you do so at your own risk.
* This code and its internal interfaces are subject to change or
* deletion without notice.</b>
*/
public
abstract
class
AbstractLog
{
AbstractLog
(
JCDiagnostic
.
Factory
diags
)
{
this
.
diags
=
diags
;
sourceMap
=
new
HashMap
<
JavaFileObject
,
DiagnosticSource
>();
}
/** Re-assign source, returning previous setting.
*/
public
JavaFileObject
useSource
(
JavaFileObject
file
)
{
JavaFileObject
prev
=
(
source
==
null
?
null
:
source
.
getFile
());
source
=
getSource
(
file
);
return
prev
;
}
protected
DiagnosticSource
getSource
(
JavaFileObject
file
)
{
if
(
file
==
null
)
return
null
;
DiagnosticSource
s
=
sourceMap
.
get
(
file
);
if
(
s
==
null
)
{
s
=
new
DiagnosticSource
(
file
,
this
);
sourceMap
.
put
(
file
,
s
);
}
return
s
;
}
/** Report an error, unless another error was already reported at same
* source position.
* @param key The key for the localized error message.
* @param args Fields of the error message.
*/
public
void
error
(
String
key
,
Object
...
args
)
{
report
(
diags
.
error
(
source
,
null
,
key
,
args
));
}
/** Report an error, unless another error was already reported at same
* source position.
* @param pos The source position at which to report the error.
* @param key The key for the localized error message.
* @param args Fields of the error message.
*/
public
void
error
(
DiagnosticPosition
pos
,
String
key
,
Object
...
args
)
{
report
(
diags
.
error
(
source
,
pos
,
key
,
args
));
}
/** Report an error, unless another error was already reported at same
* source position.
* @param pos The source position at which to report the error.
* @param key The key for the localized error message.
* @param args Fields of the error message.
*/
public
void
error
(
int
pos
,
String
key
,
Object
...
args
)
{
report
(
diags
.
error
(
source
,
wrap
(
pos
),
key
,
args
));
}
/** Report a warning, unless suppressed by the -nowarn option or the
* maximum number of warnings has been reached.
* @param pos The source position at which to report the warning.
* @param key The key for the localized warning message.
* @param args Fields of the warning message.
*/
public
void
warning
(
String
key
,
Object
...
args
)
{
report
(
diags
.
warning
(
source
,
null
,
key
,
args
));
}
/** Report a warning, unless suppressed by the -nowarn option or the
* maximum number of warnings has been reached.
* @param pos The source position at which to report the warning.
* @param key The key for the localized warning message.
* @param args Fields of the warning message.
*/
public
void
warning
(
DiagnosticPosition
pos
,
String
key
,
Object
...
args
)
{
report
(
diags
.
warning
(
source
,
pos
,
key
,
args
));
}
/** Report a warning, unless suppressed by the -nowarn option or the
* maximum number of warnings has been reached.
* @param pos The source position at which to report the warning.
* @param key The key for the localized warning message.
* @param args Fields of the warning message.
*/
public
void
warning
(
int
pos
,
String
key
,
Object
...
args
)
{
report
(
diags
.
warning
(
source
,
wrap
(
pos
),
key
,
args
));
}
/** Report a warning.
* @param pos The source position at which to report the warning.
* @param key The key for the localized warning message.
* @param args Fields of the warning message.
*/
public
void
mandatoryWarning
(
DiagnosticPosition
pos
,
String
key
,
Object
...
args
)
{
report
(
diags
.
mandatoryWarning
(
source
,
pos
,
key
,
args
));
}
/** Provide a non-fatal notification, unless suppressed by the -nowarn option.
* @param key The key for the localized notification message.
* @param args Fields of the notint an error or warning message:
*/
public
void
note
(
String
key
,
Object
...
args
)
{
report
(
diags
.
note
(
source
,
null
,
key
,
args
));
}
/** Provide a non-fatal notification, unless suppressed by the -nowarn option.
* @param key The key for the localized notification message.
* @param args Fields of the notification message.
*/
public
void
note
(
DiagnosticPosition
pos
,
String
key
,
Object
...
args
)
{
report
(
diags
.
note
(
source
,
pos
,
key
,
args
));
}
/** Provide a non-fatal notification, unless suppressed by the -nowarn option.
* @param key The key for the localized notification message.
* @param args Fields of the notification message.
*/
public
void
note
(
int
pos
,
String
key
,
Object
...
args
)
{
report
(
diags
.
note
(
source
,
wrap
(
pos
),
key
,
args
));
}
/** Provide a non-fatal notification, unless suppressed by the -nowarn option.
* @param key The key for the localized notification message.
* @param args Fields of the notification message.
*/
public
void
note
(
JavaFileObject
file
,
String
key
,
Object
...
args
)
{
report
(
diags
.
note
(
getSource
(
file
),
null
,
key
,
args
));
}
/** Provide a non-fatal notification, unless suppressed by the -nowarn option.
* @param key The key for the localized notification message.
* @param args Fields of the notification message.
*/
public
void
mandatoryNote
(
final
JavaFileObject
file
,
String
key
,
Object
...
args
)
{
report
(
diags
.
mandatoryNote
(
getSource
(
file
),
key
,
args
));
}
protected
abstract
void
report
(
JCDiagnostic
diagnostic
);
protected
abstract
void
directError
(
String
key
,
Object
...
args
);
private
DiagnosticPosition
wrap
(
int
pos
)
{
return
(
pos
==
Position
.
NOPOS
?
null
:
new
SimpleDiagnosticPosition
(
pos
));
}
/** Factory for diagnostics
*/
protected
JCDiagnostic
.
Factory
diags
;
/** The file that's currently being translated.
*/
protected
DiagnosticSource
source
;
/** A cache of lightweight DiagnosticSource objects.
*/
protected
Map
<
JavaFileObject
,
DiagnosticSource
>
sourceMap
;
}
src/share/classes/com/sun/tools/javac/util/DiagnosticFormatter.java
浏览文件 @
9dd871cd
...
...
@@ -28,7 +28,6 @@ package com.sun.tools.javac.util;
import
javax.tools.JavaFileObject
;
import
com.sun.tools.javac.file.JavacFileManager
;
import
com.sun.tools.javac.util.JCDiagnostic.DiagnosticSource
;
import
com.sun.tools.javac.util.JCDiagnostic.DiagnosticType
;
/**
...
...
src/share/classes/com/sun/tools/javac/util/DiagnosticSource.java
0 → 100644
浏览文件 @
9dd871cd
/*
* Copyright 1999-2008 Sun Microsystems, Inc. All Rights Reserved.
* 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. Sun designates this
* particular file as subject to the "Classpath" exception as provided
* by Sun in the LICENSE file that accompanied this code.
*
* 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.
*
* Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
* CA 95054 USA or visit www.sun.com if you need additional information or
* have any questions.
*/
package
com.sun.tools.javac.util
;
import
java.io.IOException
;
import
java.lang.ref.SoftReference
;
import
java.nio.CharBuffer
;
import
java.util.Map
;
import
javax.tools.JavaFileObject
;
import
com.sun.tools.javac.file.JavacFileManager
;
import
com.sun.tools.javac.tree.JCTree
;
import
static
com
.
sun
.
tools
.
javac
.
util
.
LayoutCharacters
.*;
/**
* A simple abstraction of a source file, as needed for use in a diagnostic message.
* Provides access to the line and position in a line for any given character offset.
*
* <p><b>This is NOT part of any API supported by Sun Microsystems. If
* you write code that depends on this, you do so at your own risk.
* This code and its internal interfaces are subject to change or
* deletion without notice.</b>
*/
public
class
DiagnosticSource
{
public
DiagnosticSource
(
JavaFileObject
fo
,
AbstractLog
log
)
{
this
.
fileObject
=
fo
;
this
.
log
=
log
;
}
/** Return the underlying file object handled by this
* DiagnosticSource object.
*/
public
JavaFileObject
getFile
()
{
return
fileObject
;
}
public
CharSequence
getName
()
{
return
JavacFileManager
.
getJavacBaseFileName
(
fileObject
);
}
/** Return the one-based line number associated with a given pos
* for the current source file. Zero is returned if no line exists
* for the given position.
*/
public
int
getLineNumber
(
int
pos
)
{
try
{
if
(
findLine
(
pos
))
{
return
line
;
}
return
0
;
}
finally
{
buf
=
null
;
}
}
/** Return the one-based column number associated with a given pos
* for the current source file. Zero is returned if no column exists
* for the given position.
*/
public
int
getColumnNumber
(
int
pos
)
{
try
{
if
(
findLine
(
pos
))
{
int
column
=
0
;
for
(
int
bp
=
lineStart
;
bp
<
pos
;
bp
++)
{
if
(
bp
>=
bufLen
)
{
return
0
;
}
if
(
buf
[
bp
]
==
'\t'
)
{
column
=
(
column
/
TabInc
*
TabInc
)
+
TabInc
;
}
else
{
column
++;
}
}
return
column
+
1
;
// positions are one-based
}
return
0
;
}
finally
{
buf
=
null
;
}
}
/** Return the content of the line containing a given pos.
*/
public
String
getLine
(
int
pos
)
{
try
{
if
(!
findLine
(
pos
))
return
null
;
int
lineEnd
=
lineStart
;
while
(
lineEnd
<
bufLen
&&
buf
[
lineEnd
]
!=
CR
&&
buf
[
lineEnd
]
!=
LF
)
lineEnd
++;
if
(
lineEnd
-
lineStart
==
0
)
return
null
;
return
new
String
(
buf
,
lineStart
,
lineEnd
-
lineStart
);
}
finally
{
buf
=
null
;
}
}
public
Map
<
JCTree
,
Integer
>
getEndPosTable
()
{
return
endPosTable
;
}
public
void
setEndPosTable
(
Map
<
JCTree
,
Integer
>
t
)
{
if
(
endPosTable
!=
null
&&
endPosTable
!=
t
)
throw
new
IllegalStateException
(
"endPosTable already set"
);
endPosTable
=
t
;
}
/** Find the line in the buffer that contains the current position
* @param pos Character offset into the buffer
*/
private
boolean
findLine
(
int
pos
)
{
if
(
pos
==
Position
.
NOPOS
)
return
false
;
try
{
// try and recover buffer from soft reference cache
if
(
buf
==
null
&&
refBuf
!=
null
)
buf
=
refBuf
.
get
();
if
(
buf
==
null
)
{
buf
=
initBuf
(
fileObject
);
lineStart
=
0
;
line
=
1
;
}
else
if
(
lineStart
>
pos
)
{
// messages don't come in order
lineStart
=
0
;
line
=
1
;
}
int
bp
=
lineStart
;
while
(
bp
<
bufLen
&&
bp
<
pos
)
{
switch
(
buf
[
bp
++])
{
case
CR:
if
(
bp
<
bufLen
&&
buf
[
bp
]
==
LF
)
bp
++;
line
++;
lineStart
=
bp
;
break
;
case
LF:
line
++;
lineStart
=
bp
;
break
;
}
}
return
bp
<=
bufLen
;
}
catch
(
IOException
e
)
{
log
.
directError
(
"source.unavailable"
);
buf
=
new
char
[
0
];
return
false
;
}
}
protected
char
[]
initBuf
(
JavaFileObject
fileObject
)
throws
IOException
{
char
[]
buf
;
CharSequence
cs
=
fileObject
.
getCharContent
(
true
);
if
(
cs
instanceof
CharBuffer
)
{
CharBuffer
cb
=
(
CharBuffer
)
cs
;
buf
=
JavacFileManager
.
toArray
(
cb
);
bufLen
=
cb
.
limit
();
}
else
{
buf
=
cs
.
toString
().
toCharArray
();
bufLen
=
buf
.
length
;
}
refBuf
=
new
SoftReference
<
char
[]>(
buf
);
return
buf
;
}
/** The underlying file object. */
protected
JavaFileObject
fileObject
;
protected
Map
<
JCTree
,
Integer
>
endPosTable
;
/** A soft reference to the content of the file object. */
protected
SoftReference
<
char
[]>
refBuf
;
/** A temporary hard reference to the content of the file object. */
protected
char
[]
buf
;
/** The length of the content. */
protected
int
bufLen
;
/** The start of a line found by findLine. */
protected
int
lineStart
;
/** The line number of a line found by findLine. */
protected
int
line
;
/** A log for reporting errors, such as errors accessing the content. */
protected
AbstractLog
log
;
}
src/share/classes/com/sun/tools/javac/util/JCDiagnostic.java
浏览文件 @
9dd871cd
...
...
@@ -174,18 +174,6 @@ public class JCDiagnostic implements Diagnostic<JavaFileObject> {
args
);
}
/**
* A simple abstraction of a source file, as needed for use in a diagnostic message.
*/
// Note: This class may be superceded by a more general abstraction
public
interface
DiagnosticSource
{
JavaFileObject
getFile
();
CharSequence
getName
();
int
getLineNumber
(
int
pos
);
int
getColumnNumber
(
int
pos
);
Map
<
JCTree
,
Integer
>
getEndPosTable
();
};
/**
* A DiagnosticType defines the type of the diagnostic.
**/
...
...
src/share/classes/com/sun/tools/javac/util/Log.java
浏览文件 @
9dd871cd
...
...
@@ -26,8 +26,6 @@
package
com.sun.tools.javac.util
;
import
java.io.*
;
import
java.nio.CharBuffer
;
import
java.util.HashMap
;
import
java.util.HashSet
;
import
java.util.Map
;
import
java.util.Set
;
...
...
@@ -38,9 +36,6 @@ import com.sun.tools.javac.file.JavacFileManager;
import
com.sun.tools.javac.tree.JCTree
;
import
com.sun.tools.javac.util.JCDiagnostic.DiagnosticPosition
;
import
com.sun.tools.javac.util.JCDiagnostic.DiagnosticType
;
import
com.sun.tools.javac.util.JCDiagnostic.SimpleDiagnosticPosition
;
import
static
com
.
sun
.
tools
.
javac
.
util
.
LayoutCharacters
.*;
/** A class for error logs. Reports errors and warnings, and
* keeps track of error numbers and positions.
...
...
@@ -50,7 +45,7 @@ import static com.sun.tools.javac.util.LayoutCharacters.*;
* This code and its internal interfaces are subject to change or
* deletion without notice.</b>
*/
public
class
Log
{
public
class
Log
extends
AbstractLog
{
/** The context key for the log. */
public
static
final
Context
.
Key
<
Log
>
logKey
=
new
Context
.
Key
<
Log
>();
...
...
@@ -98,28 +93,22 @@ public class Log {
* interface to javac (JSR 199).
*/
protected
DiagnosticListener
<?
super
JavaFileObject
>
diagListener
;
/**
* Formatter for diagnostics
*/
private
DiagnosticFormatter
diagFormatter
;
/**
* Factory for diagnostics
*/
private
JCDiagnostic
.
Factory
diags
;
/** Construct a log with given I/O redirections.
*/
@Deprecated
protected
Log
(
Context
context
,
PrintWriter
errWriter
,
PrintWriter
warnWriter
,
PrintWriter
noticeWriter
)
{
super
(
JCDiagnostic
.
Factory
.
instance
(
context
));
context
.
put
(
logKey
,
this
);
this
.
errWriter
=
errWriter
;
this
.
warnWriter
=
warnWriter
;
this
.
noticeWriter
=
noticeWriter
;
this
.
diags
=
JCDiagnostic
.
Factory
.
instance
(
context
);
Options
options
=
Options
.
instance
(
context
);
this
.
dumpOnError
=
options
.
get
(
"-doe"
)
!=
null
;
this
.
promptOnError
=
options
.
get
(
"-prompt"
)
!=
null
;
...
...
@@ -174,10 +163,6 @@ public class Log {
return
instance
;
}
/** The file that's currently translated.
*/
protected
JCDiagnostic
.
DiagnosticSource
source
;
/** The number of errors encountered so far.
*/
public
int
nerrors
=
0
;
...
...
@@ -192,77 +177,13 @@ public class Log {
*/
private
Set
<
Pair
<
JavaFileObject
,
Integer
>>
recorded
=
new
HashSet
<
Pair
<
JavaFileObject
,
Integer
>>();
private
Map
<
JavaFileObject
,
Map
<
JCTree
,
Integer
>>
endPosTables
;
/** The buffer containing the file that's currently translated.
*/
private
char
[]
buf
=
null
;
/** The length of useful data in buf
*/
private
int
bufLen
=
0
;
/** The position in the buffer at which last error was reported
*/
private
int
bp
;
/** number of the current source line; first line is 1
*/
private
int
line
;
/** buffer index of the first character of the current source line
*/
private
int
lineStart
;
public
boolean
hasDiagnosticListener
()
{
return
diagListener
!=
null
;
}
public
void
setEndPosTable
(
JavaFileObject
name
,
Map
<
JCTree
,
Integer
>
table
)
{
if
(
endPosTables
==
null
)
endPosTables
=
new
HashMap
<
JavaFileObject
,
Map
<
JCTree
,
Integer
>>();
endPosTables
.
put
(
name
,
table
);
}
/** Re-assign source, returning previous setting.
*/
public
JavaFileObject
useSource
(
final
JavaFileObject
name
)
{
JavaFileObject
prev
=
currentSource
();
if
(
name
!=
prev
)
{
source
=
new
JCDiagnostic
.
DiagnosticSource
()
{
public
JavaFileObject
getFile
()
{
return
name
;
}
public
CharSequence
getName
()
{
return
JavacFileManager
.
getJavacBaseFileName
(
getFile
());
}
public
int
getLineNumber
(
int
pos
)
{
return
Log
.
this
.
getLineNumber
(
pos
);
}
public
int
getColumnNumber
(
int
pos
)
{
return
Log
.
this
.
getColumnNumber
(
pos
);
}
public
Map
<
JCTree
,
Integer
>
getEndPosTable
()
{
return
(
endPosTables
==
null
?
null
:
endPosTables
.
get
(
name
));
}
};
buf
=
null
;
}
return
prev
;
}
/** Re-assign source buffer for existing source name.
*/
protected
void
setBuf
(
char
[]
newBuf
)
{
buf
=
newBuf
;
bufLen
=
buf
.
length
;
bp
=
0
;
lineStart
=
0
;
line
=
1
;
}
protected
char
[]
getBuf
()
{
return
buf
;
name
.
getClass
();
// null check
getSource
(
name
).
setEndPosTable
(
table
);
}
/** Return current source name.
...
...
@@ -320,74 +241,19 @@ public class Log {
* @param pos Buffer index of the error position, must be on current line
*/
private
void
printErrLine
(
int
pos
,
PrintWriter
writer
)
{
if
(!
findLine
(
pos
))
String
line
=
(
source
==
null
?
null
:
source
.
getLine
(
pos
));
if
(
line
==
null
)
return
;
int
col
=
source
.
getColumnNumber
(
pos
);
int
lineEnd
=
lineStart
;
while
(
lineEnd
<
bufLen
&&
buf
[
lineEnd
]
!=
CR
&&
buf
[
lineEnd
]
!=
LF
)
lineEnd
++;
if
(
lineEnd
-
lineStart
==
0
)
return
;
printLines
(
writer
,
new
String
(
buf
,
lineStart
,
lineEnd
-
lineStart
));
for
(
bp
=
lineStart
;
bp
<
pos
;
bp
++)
{
writer
.
print
((
buf
[
bp
]
==
'\t'
)
?
"\t"
:
" "
);
printLines
(
writer
,
line
);
for
(
int
i
=
0
;
i
<
col
-
1
;
i
++)
{
writer
.
print
((
line
.
charAt
(
i
)
==
'\t'
)
?
"\t"
:
" "
);
}
writer
.
println
(
"^"
);
writer
.
flush
();
}
protected
void
initBuf
(
JavaFileObject
fileObject
)
throws
IOException
{
CharSequence
cs
=
fileObject
.
getCharContent
(
true
);
if
(
cs
instanceof
CharBuffer
)
{
CharBuffer
cb
=
(
CharBuffer
)
cs
;
buf
=
JavacFileManager
.
toArray
(
cb
);
bufLen
=
cb
.
limit
();
}
else
{
buf
=
cs
.
toString
().
toCharArray
();
bufLen
=
buf
.
length
;
}
}
/** Find the line in the buffer that contains the current position
* @param pos Character offset into the buffer
*/
private
boolean
findLine
(
int
pos
)
{
if
(
pos
==
Position
.
NOPOS
||
currentSource
()
==
null
)
return
false
;
try
{
if
(
buf
==
null
)
{
initBuf
(
currentSource
());
lineStart
=
0
;
line
=
1
;
}
else
if
(
lineStart
>
pos
)
{
// messages don't come in order
lineStart
=
0
;
line
=
1
;
}
bp
=
lineStart
;
while
(
bp
<
bufLen
&&
bp
<
pos
)
{
switch
(
buf
[
bp
++])
{
case
CR:
if
(
bp
<
bufLen
&&
buf
[
bp
]
==
LF
)
bp
++;
line
++;
lineStart
=
bp
;
break
;
case
LF:
line
++;
lineStart
=
bp
;
break
;
}
}
return
bp
<=
bufLen
;
}
catch
(
IOException
e
)
{
//e.printStackTrace();
// FIXME: include e.getLocalizedMessage() in error message
printLines
(
errWriter
,
getLocalizedString
(
"source.unavailable"
));
errWriter
.
flush
();
buf
=
new
char
[
0
];
}
return
false
;
}
/** Print the text of a message, translating newlines appropriately
* for the platform.
*/
...
...
@@ -400,72 +266,9 @@ public class Log {
if
(
msg
.
length
()
!=
0
)
writer
.
println
(
msg
);
}
/** Report an error, unless another error was already reported at same
* source position.
* @param key The key for the localized error message.
* @param args Fields of the error message.
*/
public
void
error
(
String
key
,
Object
...
args
)
{
report
(
diags
.
error
(
source
,
null
,
key
,
args
));
}
/** Report an error, unless another error was already reported at same
* source position.
* @param pos The source position at which to report the error.
* @param key The key for the localized error message.
* @param args Fields of the error message.
*/
public
void
error
(
DiagnosticPosition
pos
,
String
key
,
Object
...
args
)
{
report
(
diags
.
error
(
source
,
pos
,
key
,
args
));
}
/** Report an error, unless another error was already reported at same
* source position.
* @param pos The source position at which to report the error.
* @param key The key for the localized error message.
* @param args Fields of the error message.
*/
public
void
error
(
int
pos
,
String
key
,
Object
...
args
)
{
report
(
diags
.
error
(
source
,
wrap
(
pos
),
key
,
args
));
}
/** Report a warning, unless suppressed by the -nowarn option or the
* maximum number of warnings has been reached.
* @param pos The source position at which to report the warning.
* @param key The key for the localized warning message.
* @param args Fields of the warning message.
*/
public
void
warning
(
String
key
,
Object
...
args
)
{
report
(
diags
.
warning
(
source
,
null
,
key
,
args
));
}
/** Report a warning, unless suppressed by the -nowarn option or the
* maximum number of warnings has been reached.
* @param pos The source position at which to report the warning.
* @param key The key for the localized warning message.
* @param args Fields of the warning message.
*/
public
void
warning
(
DiagnosticPosition
pos
,
String
key
,
Object
...
args
)
{
report
(
diags
.
warning
(
source
,
pos
,
key
,
args
));
}
/** Report a warning, unless suppressed by the -nowarn option or the
* maximum number of warnings has been reached.
* @param pos The source position at which to report the warning.
* @param key The key for the localized warning message.
* @param args Fields of the warning message.
*/
public
void
warning
(
int
pos
,
String
key
,
Object
...
args
)
{
report
(
diags
.
warning
(
source
,
wrap
(
pos
),
key
,
args
));
}
/** Report a warning.
* @param pos The source position at which to report the warning.
* @param key The key for the localized warning message.
* @param args Fields of the warning message.
*/
public
void
mandatoryWarning
(
DiagnosticPosition
pos
,
String
key
,
Object
...
args
)
{
report
(
diags
.
mandatoryWarning
(
source
,
pos
,
key
,
args
));
protected
void
directError
(
String
key
,
Object
...
args
)
{
printLines
(
errWriter
,
getLocalizedString
(
key
,
args
));
errWriter
.
flush
();
}
/** Report a warning that cannot be suppressed.
...
...
@@ -478,74 +281,6 @@ public class Log {
nwarnings
++;
}
/** Provide a non-fatal notification, unless suppressed by the -nowarn option.
* @param key The key for the localized notification message.
* @param args Fields of the notification message.
*/
public
void
note
(
String
key
,
Object
...
args
)
{
report
(
diags
.
note
(
source
,
null
,
key
,
args
));
}
/** Provide a non-fatal notification, unless suppressed by the -nowarn option.
* @param key The key for the localized notification message.
* @param args Fields of the notification message.
*/
public
void
note
(
DiagnosticPosition
pos
,
String
key
,
Object
...
args
)
{
report
(
diags
.
note
(
source
,
pos
,
key
,
args
));
}
/** Provide a non-fatal notification, unless suppressed by the -nowarn option.
* @param key The key for the localized notification message.
* @param args Fields of the notification message.
*/
public
void
note
(
int
pos
,
String
key
,
Object
...
args
)
{
report
(
diags
.
note
(
source
,
wrap
(
pos
),
key
,
args
));
}
/** Provide a non-fatal notification, unless suppressed by the -nowarn option.
* @param file The file to which the note applies.
* @param key The key for the localized notification message.
* @param args Fields of the notification message.
*/
public
void
note
(
JavaFileObject
file
,
String
key
,
Object
...
args
)
{
report
(
diags
.
note
(
wrap
(
file
),
null
,
key
,
args
));
}
/** Provide a non-fatal notification, unless suppressed by the -nowarn option.
* @param key The key for the localized notification message.
* @param args Fields of the notification message.
*/
public
void
mandatoryNote
(
final
JavaFileObject
file
,
String
key
,
Object
...
args
)
{
report
(
diags
.
mandatoryNote
(
wrap
(
file
),
key
,
args
));
}
private
JCDiagnostic
.
DiagnosticSource
wrap
(
final
JavaFileObject
file
)
{
if
(
file
==
null
)
{
return
null
;
}
return
new
JCDiagnostic
.
DiagnosticSource
()
{
public
JavaFileObject
getFile
()
{
return
file
;
}
public
CharSequence
getName
()
{
return
JavacFileManager
.
getJavacBaseFileName
(
getFile
());
}
public
int
getLineNumber
(
int
pos
)
{
return
Log
.
this
.
getLineNumber
(
pos
);
}
public
int
getColumnNumber
(
int
pos
)
{
return
Log
.
this
.
getColumnNumber
(
pos
);
}
public
Map
<
JCTree
,
Integer
>
getEndPosTable
()
{
return
(
endPosTables
==
null
?
null
:
endPosTables
.
get
(
file
));
}
};
}
private
DiagnosticPosition
wrap
(
int
pos
)
{
return
(
pos
==
Position
.
NOPOS
?
null
:
new
SimpleDiagnosticPosition
(
pos
));
}
/**
* Common diagnostic handling.
* The diagnostic is counted, and depending on the options and how many diagnostics have been
...
...
@@ -657,12 +392,13 @@ public class Log {
* and quick prototyping
***************************************************************************/
/** print an error or warning message:
*/
/** print an error or warning message:
*/
private
void
printRawError
(
int
pos
,
String
msg
)
{
if
(
!
findLine
(
pos
)
)
{
if
(
source
==
null
||
pos
==
Position
.
NOPOS
)
{
printLines
(
errWriter
,
"error: "
+
msg
);
}
else
{
int
line
=
source
.
getLineNumber
(
pos
);
JavaFileObject
file
=
currentSource
();
if
(
file
!=
null
)
printLines
(
errWriter
,
...
...
@@ -673,8 +409,8 @@ public class Log {
errWriter
.
flush
();
}
/** report an error:
*/
/** report an error:
*/
public
void
rawError
(
int
pos
,
String
msg
)
{
if
(
nerrors
<
MaxErrors
&&
shouldReport
(
currentSource
(),
pos
))
{
printRawError
(
pos
,
msg
);
...
...
@@ -684,8 +420,8 @@ public class Log {
errWriter
.
flush
();
}
/** report a warning:
*/
/** report a warning:
*/
public
void
rawWarning
(
int
pos
,
String
msg
)
{
if
(
nwarnings
<
MaxWarnings
&&
emitWarnings
)
{
printRawError
(
pos
,
"warning: "
+
msg
);
...
...
@@ -695,36 +431,6 @@ public class Log {
errWriter
.
flush
();
}
/** Return the one-based line number associated with a given pos
* for the current source file. Zero is returned if no line exists
* for the given position.
*/
protected
int
getLineNumber
(
int
pos
)
{
if
(
findLine
(
pos
))
return
line
;
return
0
;
}
/** Return the one-based column number associated with a given pos
* for the current source file. Zero is returned if no column exists
* for the given position.
*/
protected
int
getColumnNumber
(
int
pos
)
{
if
(
findLine
(
pos
))
{
int
column
=
0
;
for
(
bp
=
lineStart
;
bp
<
pos
;
bp
++)
{
if
(
bp
>=
bufLen
)
return
0
;
if
(
buf
[
bp
]
==
'\t'
)
column
=
(
column
/
TabInc
*
TabInc
)
+
TabInc
;
else
column
++;
}
return
column
+
1
;
// positions are one-based
}
return
0
;
}
public
static
String
format
(
String
fmt
,
Object
...
args
)
{
return
String
.
format
((
java
.
util
.
Locale
)
null
,
fmt
,
args
);
}
...
...
src/share/classes/com/sun/tools/javadoc/DocletInvoker.java
浏览文件 @
9dd871cd
...
...
@@ -47,7 +47,7 @@ import java.util.StringTokenizer;
*/
public
class
DocletInvoker
{
private
final
Class
docletClass
;
private
final
Class
<?>
docletClass
;
private
final
String
docletClassName
;
...
...
src/share/classes/com/sun/tools/javadoc/ExecutableMemberDocImpl.java
浏览文件 @
9dd871cd
...
...
@@ -231,7 +231,7 @@ public abstract class ExecutableMemberDocImpl
StringBuffer
result
=
new
StringBuffer
();
result
.
append
(
"("
);
for
(
List
<
Type
>
types
=
sym
.
type
.
getParameterTypes
();
types
.
nonEmpty
();
)
{
Type
t
=
(
Type
)
types
.
head
;
Type
t
=
types
.
head
;
result
.
append
(
TypeMaker
.
getTypeString
(
env
,
t
,
full
));
types
=
types
.
tail
;
if
(
types
.
nonEmpty
())
{
...
...
src/share/classes/com/sun/tools/javadoc/JavadocEnter.java
浏览文件 @
9dd871cd
...
...
@@ -86,7 +86,7 @@ public class JavadocEnter extends Enter {
if
(
tree
.
sym
!=
null
&&
tree
.
sym
.
kind
==
Kinds
.
TYP
)
{
if
(
tree
.
sym
==
null
)
return
;
String
comment
=
env
.
toplevel
.
docComments
.
get
(
tree
);
ClassSymbol
c
=
(
ClassSymbol
)
tree
.
sym
;
ClassSymbol
c
=
tree
.
sym
;
docenv
.
makeClassDoc
(
c
,
comment
,
tree
,
env
.
toplevel
.
lineMap
);
}
}
...
...
src/share/classes/com/sun/tools/javadoc/JavadocMemberEnter.java
浏览文件 @
9dd871cd
...
...
@@ -63,7 +63,7 @@ class JavadocMemberEnter extends MemberEnter {
public
void
visitMethodDef
(
JCMethodDecl
tree
)
{
super
.
visitMethodDef
(
tree
);
MethodSymbol
meth
=
(
MethodSymbol
)
tree
.
sym
;
MethodSymbol
meth
=
tree
.
sym
;
if
(
meth
==
null
||
meth
.
kind
!=
Kinds
.
MTH
)
return
;
String
docComment
=
env
.
toplevel
.
docComments
.
get
(
tree
);
Position
.
LineMap
lineMap
=
env
.
toplevel
.
lineMap
;
...
...
@@ -82,7 +82,7 @@ class JavadocMemberEnter extends MemberEnter {
!
isParameter
(
tree
.
sym
))
{
String
docComment
=
env
.
toplevel
.
docComments
.
get
(
tree
);
Position
.
LineMap
lineMap
=
env
.
toplevel
.
lineMap
;
docenv
.
makeFieldDoc
(
(
VarSymbol
)
tree
.
sym
,
docComment
,
tree
,
lineMap
);
docenv
.
makeFieldDoc
(
tree
.
sym
,
docComment
,
tree
,
lineMap
);
}
}
...
...
src/share/classes/com/sun/tools/javadoc/SeeTagImpl.java
浏览文件 @
9dd871cd
...
...
@@ -450,7 +450,7 @@ class SeeTagImpl extends TagImpl implements SeeTag, LayoutCharacters {
if
(
typeId
.
length
()
>
0
)
{
paramList
.
append
(
typeId
.
toString
());
}
return
(
String
[])
paramList
.
toArray
(
new
String
[
paramList
.
length
()]);
return
paramList
.
toArray
(
new
String
[
paramList
.
length
()]);
}
void
addTypeToParamList
()
{
...
...
src/share/classes/com/sun/tools/javadoc/SerializedForm.java
浏览文件 @
9dd871cd
...
...
@@ -267,7 +267,7 @@ class SerializedForm {
* @return an array of MethodDocImpl for serialization methods in this class.
*/
MethodDoc
[]
methods
()
{
return
(
MethodDoc
[])
methods
.
toArray
(
new
MethodDoc
[
methods
.
length
()]);
return
methods
.
toArray
(
new
MethodDoc
[
methods
.
length
()]);
}
/**
...
...
src/share/classes/com/sun/tools/javah/Gen.java
浏览文件 @
9dd871cd
...
...
@@ -324,7 +324,7 @@ public abstract class Gen {
FieldDoc
[]
getAllFields
(
ClassDoc
subclazz
)
throws
ClassNotFoundException
{
Vector
fields
=
new
Vector
();
Vector
<
FieldDoc
>
fields
=
new
Vector
<
FieldDoc
>
();
ClassDoc
cd
=
null
;
Stack
s
=
new
Stack
();
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录