Example #1
0
 /** Utility for subclasses which read HTML documentation files. */
 String readHTMLDocumentation(InputStream input, String filename) throws IOException {
   int filesize = input.available();
   byte[] filecontents = new byte[filesize];
   input.read(filecontents, 0, filesize);
   input.close();
   String encoding = env.getEncoding();
   String rawDoc =
       (encoding != null) ? new String(filecontents, encoding) : new String(filecontents);
   String upper = null;
   int bodyIdx = rawDoc.indexOf("<body");
   if (bodyIdx == -1) {
     bodyIdx = rawDoc.indexOf("<BODY");
     if (bodyIdx == -1) {
       upper = rawDoc.toUpperCase();
       bodyIdx = upper.indexOf("<BODY");
       if (bodyIdx == -1) {
         env.error(
             SourcePositionImpl.make(filename, Position.NOPOS, null),
             "javadoc.Body_missing_from_html_file");
         return "";
       }
     }
   }
   bodyIdx = rawDoc.indexOf('>', bodyIdx);
   if (bodyIdx == -1) {
     env.error(
         SourcePositionImpl.make(filename, Position.NOPOS, null),
         "javadoc.Body_missing_from_html_file");
     return "";
   }
   ++bodyIdx;
   int endIdx = rawDoc.indexOf("</body", bodyIdx);
   if (endIdx == -1) {
     endIdx = rawDoc.indexOf("</BODY", bodyIdx);
     if (endIdx == -1) {
       if (upper == null) {
         upper = rawDoc.toUpperCase();
       }
       endIdx = upper.indexOf("</BODY", bodyIdx);
       if (endIdx == -1) {
         env.error(
             SourcePositionImpl.make(filename, Position.NOPOS, null),
             "javadoc.End_body_missing_from_html_file");
         return "";
       }
     }
   }
   return rawDoc.substring(bodyIdx, endIdx);
 }
 /** Return the source position of the entity, or null if no position is available. */
 @Override
 public SourcePosition position() {
   if (sym.enclClass().sourcefile == null) return null;
   return SourcePositionImpl.make(
       sym.enclClass().sourcefile, (tree == null) ? 0 : tree.pos, lineMap);
 }