23 * have any questions. |
23 * have any questions. |
24 */ |
24 */ |
25 |
25 |
26 package com.sun.tools.doclets.internal.toolkit.util; |
26 package com.sun.tools.doclets.internal.toolkit.util; |
27 |
27 |
28 import com.sun.tools.doclets.internal.toolkit.*; |
|
29 import com.sun.javadoc.*; |
|
30 import java.io.*; |
28 import java.io.*; |
31 import java.util.*; |
29 import java.util.*; |
|
30 import javax.tools.FileObject; |
|
31 |
|
32 import com.sun.javadoc.*; |
|
33 import com.sun.tools.doclets.internal.toolkit.*; |
32 |
34 |
33 /** |
35 /** |
34 * Converts Java Source Code to HTML. |
36 * Converts Java Source Code to HTML. |
35 * |
37 * |
36 * This code is not part of an API. |
38 * This code is not part of an API. |
121 */ |
123 */ |
122 public static void convertClass(Configuration configuration, ClassDoc cd, String outputdir) { |
124 public static void convertClass(Configuration configuration, ClassDoc cd, String outputdir) { |
123 if (cd == null || outputdir == null) { |
125 if (cd == null || outputdir == null) { |
124 return; |
126 return; |
125 } |
127 } |
126 File file; |
|
127 SourcePosition sp = cd.position(); |
|
128 if (sp == null || (file = sp.file()) == null) { |
|
129 return; |
|
130 } |
|
131 try { |
128 try { |
|
129 SourcePosition sp = cd.position(); |
|
130 if (sp == null) |
|
131 return; |
|
132 Reader r; |
|
133 // temp hack until we can update SourcePosition API. |
|
134 if (sp instanceof com.sun.tools.javadoc.SourcePositionImpl) { |
|
135 FileObject fo = ((com.sun.tools.javadoc.SourcePositionImpl) sp).fileObject(); |
|
136 if (fo == null) |
|
137 return; |
|
138 r = fo.openReader(true); |
|
139 } else { |
|
140 File file = sp.file(); |
|
141 if (file == null) |
|
142 return; |
|
143 r = new FileReader(file); |
|
144 } |
|
145 LineNumberReader reader = new LineNumberReader(r); |
132 int lineno = 1; |
146 int lineno = 1; |
133 String line; |
147 String line; |
134 StringBuffer output = new StringBuffer(); |
148 StringBuffer output = new StringBuffer(); |
135 LineNumberReader reader = new LineNumberReader(new FileReader(file)); |
|
136 try { |
149 try { |
137 while ((line = reader.readLine()) != null) { |
150 while ((line = reader.readLine()) != null) { |
138 output.append(formatLine(line, configuration.sourcetab, lineno)); |
151 output.append(formatLine(line, configuration.sourcetab, lineno)); |
139 lineno++; |
152 lineno++; |
140 } |
153 } |