src/share/classes/com/sun/tools/javac/tree/DCTree.java

Mon, 22 Aug 2016 11:06:41 -0700

author
asaha
date
Mon, 22 Aug 2016 11:06:41 -0700
changeset 3277
458d4cd8d984
parent 1704
ed918a442b83
child 2525
2eb010b6cb22
permissions
-rw-r--r--

8164453: 8u112 L10n resource file update - msgdrop 20
Summary: 8u112 L10n resource file update - msgdrop 20
Reviewed-by: coffeys
Contributed-by: li.jiang@oracle.com

jjg@1409 1 /*
jjg@1535 2 * Copyright (c) 2011, 2013, Oracle and/or its affiliates. All rights reserved.
jjg@1409 3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
jjg@1409 4 *
jjg@1409 5 * This code is free software; you can redistribute it and/or modify it
jjg@1409 6 * under the terms of the GNU General Public License version 2 only, as
jjg@1409 7 * published by the Free Software Foundation. Oracle designates this
jjg@1409 8 * particular file as subject to the "Classpath" exception as provided
jjg@1409 9 * by Oracle in the LICENSE file that accompanied this code.
jjg@1409 10 *
jjg@1409 11 * This code is distributed in the hope that it will be useful, but WITHOUT
jjg@1409 12 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
jjg@1409 13 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
jjg@1409 14 * version 2 for more details (a copy is included in the LICENSE file that
jjg@1409 15 * accompanied this code).
jjg@1409 16 *
jjg@1409 17 * You should have received a copy of the GNU General Public License version
jjg@1409 18 * 2 along with this work; if not, write to the Free Software Foundation,
jjg@1409 19 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
jjg@1409 20 *
jjg@1409 21 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
jjg@1409 22 * or visit www.oracle.com if you need additional information or have any
jjg@1409 23 * questions.
jjg@1409 24 */
jjg@1409 25
jjg@1409 26 package com.sun.tools.javac.tree;
jjg@1409 27
jjg@1409 28
jjg@1409 29 import javax.tools.Diagnostic;
jjg@1409 30
jjg@1409 31 import com.sun.source.doctree.*;
jjg@1409 32 import com.sun.tools.javac.parser.Tokens.Comment;
jjg@1409 33 import com.sun.tools.javac.util.Assert;
jjg@1409 34 import com.sun.tools.javac.util.DiagnosticSource;
jjg@1409 35 import com.sun.tools.javac.util.JCDiagnostic;
jjg@1409 36 import com.sun.tools.javac.util.JCDiagnostic.SimpleDiagnosticPosition;
jjg@1409 37 import com.sun.tools.javac.util.List;
jjg@1409 38 import com.sun.tools.javac.util.Name;
jlahoda@1704 39 import com.sun.tools.javac.util.Position;
jjg@1455 40 import java.io.IOException;
jjg@1455 41 import java.io.StringWriter;
jjg@1409 42 import javax.tools.JavaFileObject;
jjg@1409 43
jjg@1409 44 /**
jjg@1409 45 * <p><b>This is NOT part of any supported API.
jjg@1409 46 * If you write code that depends on this, you do so at your own risk.
jjg@1409 47 * This code and its internal interfaces are subject to change or
jjg@1409 48 * deletion without notice.</b>
jjg@1409 49 */
jjg@1409 50 public abstract class DCTree implements DocTree {
jjg@1409 51
jjg@1409 52 /**
jjg@1409 53 * The position in the comment string.
jjg@1409 54 * Use {@link #getSourcePosition getSourcePosition} to convert
jjg@1409 55 * it to a position in the source file.
jjg@1409 56 *
jjg@1409 57 * TODO: why not simply translate all these values into
jjg@1409 58 * source file positions? Is it useful to have string-offset
jjg@1409 59 * positions as well?
jjg@1409 60 */
jjg@1409 61 public int pos;
jjg@1409 62
jjg@1409 63 public long getSourcePosition(DCDocComment dc) {
jjg@1409 64 return dc.comment.getSourcePos(pos);
jjg@1409 65 }
jjg@1409 66
jjg@1409 67 public JCDiagnostic.DiagnosticPosition pos(DCDocComment dc) {
jjg@1409 68 return new SimpleDiagnosticPosition(dc.comment.getSourcePos(pos));
jjg@1409 69 }
jjg@1409 70
jjg@1455 71 /** Convert a tree to a pretty-printed string. */
jjg@1455 72 @Override
jjg@1455 73 public String toString() {
jjg@1455 74 StringWriter s = new StringWriter();
jjg@1455 75 try {
jjg@1455 76 new DocPretty(s).print(this);
jjg@1455 77 }
jjg@1455 78 catch (IOException e) {
jjg@1455 79 // should never happen, because StringWriter is defined
jjg@1455 80 // never to throw any IOExceptions
jjg@1455 81 throw new AssertionError(e);
jjg@1455 82 }
jjg@1455 83 return s.toString();
jjg@1455 84 }
jjg@1455 85
jlahoda@1704 86 public static abstract class DCEndPosTree<T extends DCEndPosTree<T>> extends DCTree {
jlahoda@1704 87
jlahoda@1704 88 private int endPos = Position.NOPOS;
jlahoda@1704 89
jlahoda@1704 90 public int getEndPos(DCDocComment dc) {
jlahoda@1704 91 return dc.comment.getSourcePos(endPos);
jlahoda@1704 92 }
jlahoda@1704 93
jlahoda@1704 94 @SuppressWarnings("unchecked")
jlahoda@1704 95 public T setEndPos(int endPos) {
jlahoda@1704 96 this.endPos = endPos;
jlahoda@1704 97 return (T) this;
jlahoda@1704 98 }
jlahoda@1704 99
jlahoda@1704 100 }
jlahoda@1704 101
jjg@1409 102 public static class DCDocComment extends DCTree implements DocCommentTree {
jlahoda@1704 103 public final Comment comment; // required for the implicit source pos table
jjg@1409 104
jjg@1409 105 public final List<DCTree> firstSentence;
jjg@1409 106 public final List<DCTree> body;
jjg@1409 107 public final List<DCTree> tags;
jjg@1409 108
jjg@1409 109 public DCDocComment(Comment comment,
jjg@1409 110 List<DCTree> firstSentence, List<DCTree> body, List<DCTree> tags) {
jjg@1409 111 this.comment = comment;
jjg@1409 112 this.firstSentence = firstSentence;
jjg@1409 113 this.body = body;
jjg@1409 114 this.tags = tags;
jjg@1409 115 }
jjg@1409 116
jjg@1409 117 public Kind getKind() {
jjg@1409 118 return Kind.DOC_COMMENT;
jjg@1409 119 }
jjg@1409 120
jjg@1409 121 public <R, D> R accept(DocTreeVisitor<R, D> v, D d) {
jjg@1409 122 return v.visitDocComment(this, d);
jjg@1409 123 }
jjg@1409 124
jjg@1409 125 public List<? extends DocTree> getFirstSentence() {
jjg@1409 126 return firstSentence;
jjg@1409 127 }
jjg@1409 128
jjg@1409 129 public List<? extends DocTree> getBody() {
jjg@1409 130 return body;
jjg@1409 131 }
jjg@1409 132
jjg@1409 133 public List<? extends DocTree> getBlockTags() {
jjg@1409 134 return tags;
jjg@1409 135 }
jjg@1409 136
jjg@1409 137 }
jjg@1409 138
jjg@1535 139 public static abstract class DCBlockTag extends DCTree implements BlockTagTree {
jjg@1409 140 public String getTagName() {
jjg@1409 141 return getKind().tagName;
jjg@1409 142 }
jjg@1409 143 }
jjg@1409 144
jlahoda@1704 145 public static abstract class DCInlineTag extends DCEndPosTree<DCInlineTag> implements InlineTagTree {
jjg@1409 146 public String getTagName() {
jjg@1409 147 return getKind().tagName;
jjg@1409 148 }
jjg@1409 149 }
jjg@1409 150
jjg@1409 151 public static class DCAttribute extends DCTree implements AttributeTree {
jjg@1409 152 public final Name name;
jjg@1409 153 public final ValueKind vkind;
jjg@1409 154 public final List<DCTree> value;
jjg@1409 155
jjg@1409 156 DCAttribute(Name name, ValueKind vkind, List<DCTree> value) {
jjg@1409 157 Assert.check((vkind == ValueKind.EMPTY) ? (value == null) : (value != null));
jjg@1409 158 this.name = name;
jjg@1409 159 this.vkind = vkind;
jjg@1409 160 this.value = value;
jjg@1409 161 }
jjg@1409 162
jjg@1409 163 @Override
jjg@1409 164 public Kind getKind() {
jjg@1409 165 return Kind.ATTRIBUTE;
jjg@1409 166 }
jjg@1409 167
jjg@1409 168 @Override
jjg@1409 169 public <R, D> R accept(DocTreeVisitor<R, D> v, D d) {
jjg@1409 170 return v.visitAttribute(this, d);
jjg@1409 171 }
jjg@1409 172
jjg@1409 173 @Override
jjg@1409 174 public Name getName() {
jjg@1409 175 return name;
jjg@1409 176 }
jjg@1409 177
jjg@1409 178 @Override
jjg@1409 179 public ValueKind getValueKind() {
jjg@1409 180 return vkind;
jjg@1409 181 }
jjg@1409 182
jjg@1409 183 @Override
jjg@1409 184 public List<DCTree> getValue() {
jjg@1409 185 return value;
jjg@1409 186 }
jjg@1409 187 }
jjg@1409 188
jjg@1535 189 public static class DCAuthor extends DCBlockTag implements AuthorTree {
jjg@1409 190 public final List<DCTree> name;
jjg@1409 191
jjg@1409 192 DCAuthor(List<DCTree> name) {
jjg@1409 193 this.name = name;
jjg@1409 194 }
jjg@1409 195
jjg@1409 196 @Override
jjg@1409 197 public Kind getKind() {
jjg@1409 198 return Kind.AUTHOR;
jjg@1409 199 }
jjg@1409 200
jjg@1409 201 @Override
jjg@1409 202 public <R, D> R accept(DocTreeVisitor<R, D> v, D d) {
jjg@1409 203 return v.visitAuthor(this, d);
jjg@1409 204 }
jjg@1409 205
jjg@1409 206 @Override
jjg@1409 207 public List<? extends DocTree> getName() {
jjg@1409 208 return name;
jjg@1409 209 }
jjg@1409 210 }
jjg@1409 211
jjg@1409 212 public static class DCComment extends DCTree implements CommentTree {
jjg@1409 213 public final String body;
jjg@1409 214
jjg@1409 215 DCComment(String body) {
jjg@1409 216 this.body = body;
jjg@1409 217 }
jjg@1409 218
jjg@1409 219 @Override
jjg@1409 220 public Kind getKind() {
jjg@1409 221 return Kind.COMMENT;
jjg@1409 222 }
jjg@1409 223
jjg@1409 224 @Override
jjg@1409 225 public <R, D> R accept(DocTreeVisitor<R, D> v, D d) {
jjg@1409 226 return v.visitComment(this, d);
jjg@1409 227 }
jjg@1409 228
jjg@1409 229 @Override
jjg@1409 230 public String getBody() {
jjg@1409 231 return body;
jjg@1409 232 }
jjg@1409 233 }
jjg@1409 234
jjg@1409 235 public static class DCDeprecated extends DCBlockTag implements DeprecatedTree {
jjg@1409 236 public final List<DCTree> body;
jjg@1409 237
jjg@1409 238 DCDeprecated(List<DCTree> body) {
jjg@1409 239 this.body = body;
jjg@1409 240 }
jjg@1409 241
jjg@1409 242 @Override
jjg@1409 243 public Kind getKind() {
jjg@1409 244 return Kind.DEPRECATED;
jjg@1409 245 }
jjg@1409 246
jjg@1409 247 @Override
jjg@1409 248 public <R, D> R accept(DocTreeVisitor<R, D> v, D d) {
jjg@1409 249 return v.visitDeprecated(this, d);
jjg@1409 250 }
jjg@1409 251
jjg@1409 252 @Override
jjg@1409 253 public List<? extends DocTree> getBody() {
jjg@1409 254 return body;
jjg@1409 255 }
jjg@1409 256 }
jjg@1409 257
jjg@1409 258 public static class DCDocRoot extends DCInlineTag implements DocRootTree {
jjg@1409 259
jjg@1409 260 @Override
jjg@1409 261 public Kind getKind() {
jjg@1409 262 return Kind.DOC_ROOT;
jjg@1409 263 }
jjg@1409 264
jjg@1409 265 @Override
jjg@1409 266 public <R, D> R accept(DocTreeVisitor<R, D> v, D d) {
jjg@1409 267 return v.visitDocRoot(this, d);
jjg@1409 268 }
jjg@1409 269 }
jjg@1409 270
jjg@1409 271 public static class DCEndElement extends DCTree implements EndElementTree {
jjg@1409 272 public final Name name;
jjg@1409 273
jjg@1409 274 DCEndElement(Name name) {
jjg@1409 275 this.name = name;
jjg@1409 276 }
jjg@1409 277
jjg@1409 278 @Override
jjg@1409 279 public Kind getKind() {
jjg@1409 280 return Kind.END_ELEMENT;
jjg@1409 281 }
jjg@1409 282
jjg@1409 283 @Override
jjg@1409 284 public <R, D> R accept(DocTreeVisitor<R, D> v, D d) {
jjg@1409 285 return v.visitEndElement(this, d);
jjg@1409 286 }
jjg@1409 287
jjg@1409 288 @Override
jjg@1409 289 public Name getName() {
jjg@1409 290 return name;
jjg@1409 291 }
jjg@1409 292 }
jjg@1409 293
jjg@1409 294 public static class DCEntity extends DCTree implements EntityTree {
jjg@1409 295 public final Name name;
jjg@1409 296
jjg@1409 297 DCEntity(Name name) {
jjg@1409 298 this.name = name;
jjg@1409 299 }
jjg@1409 300
jjg@1409 301 @Override
jjg@1409 302 public Kind getKind() {
jjg@1409 303 return Kind.ENTITY;
jjg@1409 304 }
jjg@1409 305
jjg@1409 306 @Override
jjg@1409 307 public <R, D> R accept(DocTreeVisitor<R, D> v, D d) {
jjg@1409 308 return v.visitEntity(this, d);
jjg@1409 309 }
jjg@1409 310
jjg@1409 311 @Override
jjg@1409 312 public Name getName() {
jjg@1409 313 return name;
jjg@1409 314 }
jjg@1409 315 }
jjg@1409 316
jjg@1409 317 public static class DCErroneous extends DCTree implements ErroneousTree, JCDiagnostic.DiagnosticPosition {
jjg@1409 318 public final String body;
jjg@1409 319 public final JCDiagnostic diag;
jjg@1409 320
jjg@1409 321 DCErroneous(String body, JCDiagnostic.Factory diags, DiagnosticSource diagSource, String code, Object... args) {
jjg@1409 322 this.body = body;
jjg@1409 323 this.diag = diags.error(diagSource, this, code, args);
jjg@1409 324 }
jjg@1409 325
jjg@1409 326 @Override
jjg@1409 327 public Kind getKind() {
jjg@1409 328 return Kind.ERRONEOUS;
jjg@1409 329 }
jjg@1409 330
jjg@1409 331 @Override
jjg@1409 332 public <R, D> R accept(DocTreeVisitor<R, D> v, D d) {
jjg@1409 333 return v.visitErroneous(this, d);
jjg@1409 334 }
jjg@1409 335
jjg@1409 336 @Override
jjg@1409 337 public String getBody() {
jjg@1409 338 return body;
jjg@1409 339 }
jjg@1409 340
jjg@1409 341 @Override
jjg@1409 342 public Diagnostic<JavaFileObject> getDiagnostic() {
jjg@1409 343 return diag;
jjg@1409 344 }
jjg@1409 345
jjg@1409 346 @Override
jjg@1409 347 public JCTree getTree() {
jjg@1409 348 return null;
jjg@1409 349 }
jjg@1409 350
jjg@1409 351 @Override
jjg@1409 352 public int getStartPosition() {
jjg@1409 353 return pos;
jjg@1409 354 }
jjg@1409 355
jjg@1409 356 @Override
jjg@1409 357 public int getPreferredPosition() {
jjg@1409 358 return pos + body.length() - 1;
jjg@1409 359 }
jjg@1409 360
jjg@1409 361 @Override
jjg@1409 362 public int getEndPosition(EndPosTable endPosTable) {
jjg@1409 363 return pos + body.length();
jjg@1409 364 }
jlahoda@1704 365
jjg@1409 366 }
jjg@1409 367
jjg@1409 368 public static class DCIdentifier extends DCTree implements IdentifierTree {
jjg@1409 369 public final Name name;
jjg@1409 370
jjg@1409 371 DCIdentifier(Name name) {
jjg@1409 372 this.name = name;
jjg@1409 373 }
jjg@1409 374
jjg@1409 375 @Override
jjg@1409 376 public Kind getKind() {
jjg@1409 377 return Kind.IDENTIFIER;
jjg@1409 378 }
jjg@1409 379
jjg@1409 380 @Override
jjg@1409 381 public <R, D> R accept(DocTreeVisitor<R, D> v, D d) {
jjg@1409 382 return v.visitIdentifier(this, d);
jjg@1409 383 }
jjg@1409 384
jjg@1409 385 @Override
jjg@1409 386 public Name getName() {
jjg@1409 387 return name;
jjg@1409 388 }
jjg@1409 389 }
jjg@1409 390
jjg@1409 391 public static class DCInheritDoc extends DCInlineTag implements InheritDocTree {
jjg@1409 392 @Override
jjg@1409 393 public Kind getKind() {
jjg@1409 394 return Kind.INHERIT_DOC;
jjg@1409 395 }
jjg@1409 396
jjg@1409 397 @Override
jjg@1409 398 public <R, D> R accept(DocTreeVisitor<R, D> v, D d) {
jjg@1409 399 return v.visitInheritDoc(this, d);
jjg@1409 400 }
jjg@1409 401 }
jjg@1409 402
jjg@1409 403 public static class DCLink extends DCInlineTag implements LinkTree {
jjg@1409 404 public final Kind kind;
jjg@1409 405 public final DCReference ref;
jjg@1409 406 public final List<DCTree> label;
jjg@1409 407
jjg@1409 408 DCLink(Kind kind, DCReference ref, List<DCTree> label) {
jjg@1409 409 Assert.check(kind == Kind.LINK || kind == Kind.LINK_PLAIN);
jjg@1409 410 this.kind = kind;
jjg@1409 411 this.ref = ref;
jjg@1409 412 this.label = label;
jjg@1409 413 }
jjg@1409 414
jjg@1409 415 @Override
jjg@1409 416 public Kind getKind() {
jjg@1409 417 return kind;
jjg@1409 418 }
jjg@1409 419
jjg@1409 420 @Override
jjg@1409 421 public <R, D> R accept(DocTreeVisitor<R, D> v, D d) {
jjg@1409 422 return v.visitLink(this, d);
jjg@1409 423 }
jjg@1409 424
jjg@1409 425 @Override
jjg@1409 426 public ReferenceTree getReference() {
jjg@1409 427 return ref;
jjg@1409 428 }
jjg@1409 429
jjg@1409 430 @Override
jjg@1409 431 public List<? extends DocTree> getLabel() {
jjg@1409 432 return label;
jjg@1409 433 }
jjg@1409 434 }
jjg@1409 435
jjg@1409 436 public static class DCLiteral extends DCInlineTag implements LiteralTree {
jjg@1409 437 public final Kind kind;
jjg@1409 438 public final DCText body;
jjg@1409 439
jjg@1409 440 DCLiteral(Kind kind, DCText body) {
jjg@1409 441 Assert.check(kind == Kind.CODE || kind == Kind.LITERAL);
jjg@1409 442 this.kind = kind;
jjg@1409 443 this.body = body;
jjg@1409 444 }
jjg@1409 445
jjg@1409 446 @Override
jjg@1409 447 public Kind getKind() {
jjg@1409 448 return kind;
jjg@1409 449 }
jjg@1409 450
jjg@1409 451 @Override
jjg@1409 452 public <R, D> R accept(DocTreeVisitor<R, D> v, D d) {
jjg@1409 453 return v.visitLiteral(this, d);
jjg@1409 454 }
jjg@1409 455
jjg@1409 456 @Override
jjg@1409 457 public DCText getBody() {
jjg@1409 458 return body;
jjg@1409 459 }
jjg@1409 460 }
jjg@1409 461
jjg@1409 462 public static class DCParam extends DCBlockTag implements ParamTree {
jjg@1409 463 public final boolean isTypeParameter;
jjg@1409 464 public final DCIdentifier name;
jjg@1409 465 public final List<DCTree> description;
jjg@1409 466
jjg@1409 467 DCParam(boolean isTypeParameter, DCIdentifier name, List<DCTree> description) {
jjg@1409 468 this.isTypeParameter = isTypeParameter;
jjg@1409 469 this.name = name;
jjg@1409 470 this.description = description;
jjg@1409 471 }
jjg@1409 472
jjg@1409 473 @Override
jjg@1409 474 public Kind getKind() {
jjg@1409 475 return Kind.PARAM;
jjg@1409 476 }
jjg@1409 477
jjg@1409 478 @Override
jjg@1409 479 public <R, D> R accept(DocTreeVisitor<R, D> v, D d) {
jjg@1409 480 return v.visitParam(this, d);
jjg@1409 481 }
jjg@1409 482
jjg@1409 483 @Override
jjg@1409 484 public boolean isTypeParameter() {
jjg@1409 485 return isTypeParameter;
jjg@1409 486 }
jjg@1409 487
jjg@1409 488 @Override
jjg@1409 489 public IdentifierTree getName() {
jjg@1409 490 return name;
jjg@1409 491 }
jjg@1409 492
jjg@1409 493 @Override
jjg@1409 494 public List<? extends DocTree> getDescription() {
jjg@1409 495 return description;
jjg@1409 496 }
jjg@1409 497 }
jjg@1409 498
jlahoda@1704 499 public static class DCReference extends DCEndPosTree<DCReference> implements ReferenceTree {
jjg@1409 500 public final String signature;
jjg@1409 501
jjg@1409 502 // The following are not directly exposed through ReferenceTree
jjg@1409 503 // use DocTrees.getElement(TreePath,ReferenceTree)
jjg@1409 504 public final JCTree qualifierExpression;
jjg@1409 505 public final Name memberName;
jjg@1409 506 public final List<JCTree> paramTypes;
jjg@1409 507
jjg@1409 508
jjg@1409 509 DCReference(String signature, JCTree qualExpr, Name member, List<JCTree> paramTypes) {
jjg@1409 510 this.signature = signature;
jjg@1409 511 qualifierExpression = qualExpr;
jjg@1409 512 memberName = member;
jjg@1409 513 this.paramTypes = paramTypes;
jjg@1409 514 }
jjg@1409 515
jjg@1409 516 @Override
jjg@1409 517 public Kind getKind() {
jjg@1409 518 return Kind.REFERENCE;
jjg@1409 519 }
jjg@1409 520
jjg@1409 521 @Override
jjg@1409 522 public <R, D> R accept(DocTreeVisitor<R, D> v, D d) {
jjg@1409 523 return v.visitReference(this, d);
jjg@1409 524 }
jjg@1409 525
jjg@1409 526 @Override
jjg@1409 527 public String getSignature() {
jjg@1409 528 return signature;
jjg@1409 529 }
jjg@1409 530 }
jjg@1409 531
jjg@1409 532 public static class DCReturn extends DCBlockTag implements ReturnTree {
jjg@1409 533 public final List<DCTree> description;
jjg@1409 534
jjg@1409 535 DCReturn(List<DCTree> description) {
jjg@1409 536 this.description = description;
jjg@1409 537 }
jjg@1409 538
jjg@1409 539 @Override
jjg@1409 540 public Kind getKind() {
jjg@1409 541 return Kind.RETURN;
jjg@1409 542 }
jjg@1409 543
jjg@1409 544 @Override
jjg@1409 545 public <R, D> R accept(DocTreeVisitor<R, D> v, D d) {
jjg@1409 546 return v.visitReturn(this, d);
jjg@1409 547 }
jjg@1409 548
jjg@1409 549 @Override
jjg@1409 550 public List<? extends DocTree> getDescription() {
jjg@1409 551 return description;
jjg@1409 552 }
jjg@1409 553 }
jjg@1409 554
jjg@1409 555 public static class DCSee extends DCBlockTag implements SeeTree {
jjg@1409 556 public final List<DCTree> reference;
jjg@1409 557
jjg@1409 558 DCSee(List<DCTree> reference) {
jjg@1409 559 this.reference = reference;
jjg@1409 560 }
jjg@1409 561
jjg@1409 562 @Override
jjg@1409 563 public Kind getKind() {
jjg@1409 564 return Kind.SEE;
jjg@1409 565 }
jjg@1409 566
jjg@1409 567 @Override
jjg@1409 568 public <R, D> R accept(DocTreeVisitor<R, D> v, D d) {
jjg@1409 569 return v.visitSee(this, d);
jjg@1409 570 }
jjg@1409 571
jjg@1409 572 @Override
jjg@1409 573 public List<? extends DocTree> getReference() {
jjg@1409 574 return reference;
jjg@1409 575 }
jjg@1409 576 }
jjg@1409 577
jjg@1409 578 public static class DCSerial extends DCBlockTag implements SerialTree {
jjg@1409 579 public final List<DCTree> description;
jjg@1409 580
jjg@1409 581 DCSerial(List<DCTree> description) {
jjg@1409 582 this.description = description;
jjg@1409 583 }
jjg@1409 584
jjg@1409 585 @Override
jjg@1409 586 public Kind getKind() {
jjg@1409 587 return Kind.SERIAL;
jjg@1409 588 }
jjg@1409 589
jjg@1409 590 @Override
jjg@1409 591 public <R, D> R accept(DocTreeVisitor<R, D> v, D d) {
jjg@1409 592 return v.visitSerial(this, d);
jjg@1409 593 }
jjg@1409 594
jjg@1409 595 @Override
jjg@1409 596 public List<? extends DocTree> getDescription() {
jjg@1409 597 return description;
jjg@1409 598 }
jjg@1409 599 }
jjg@1409 600
jjg@1409 601 public static class DCSerialData extends DCBlockTag implements SerialDataTree {
jjg@1409 602 public final List<DCTree> description;
jjg@1409 603
jjg@1409 604 DCSerialData(List<DCTree> description) {
jjg@1409 605 this.description = description;
jjg@1409 606 }
jjg@1409 607
jjg@1409 608 @Override
jjg@1409 609 public Kind getKind() {
jjg@1409 610 return Kind.SERIAL_DATA;
jjg@1409 611 }
jjg@1409 612
jjg@1409 613 @Override
jjg@1409 614 public <R, D> R accept(DocTreeVisitor<R, D> v, D d) {
jjg@1409 615 return v.visitSerialData(this, d);
jjg@1409 616 }
jjg@1409 617
jjg@1409 618 @Override
jjg@1409 619 public List<? extends DocTree> getDescription() {
jjg@1409 620 return description;
jjg@1409 621 }
jjg@1409 622 }
jjg@1409 623
jjg@1409 624 public static class DCSerialField extends DCBlockTag implements SerialFieldTree {
jjg@1409 625 public final DCIdentifier name;
jjg@1409 626 public final DCReference type;
jjg@1409 627 public final List<DCTree> description;
jjg@1409 628
jjg@1409 629 DCSerialField(DCIdentifier name, DCReference type, List<DCTree> description) {
jjg@1409 630 this.description = description;
jjg@1409 631 this.name = name;
jjg@1409 632 this.type = type;
jjg@1409 633 }
jjg@1409 634
jjg@1409 635 @Override
jjg@1409 636 public Kind getKind() {
jjg@1409 637 return Kind.SERIAL_FIELD;
jjg@1409 638 }
jjg@1409 639
jjg@1409 640 @Override
jjg@1409 641 public <R, D> R accept(DocTreeVisitor<R, D> v, D d) {
jjg@1409 642 return v.visitSerialField(this, d);
jjg@1409 643 }
jjg@1409 644
jjg@1409 645 @Override
jjg@1409 646 public List<? extends DocTree> getDescription() {
jjg@1409 647 return description;
jjg@1409 648 }
jjg@1409 649
jjg@1409 650 @Override
jjg@1409 651 public IdentifierTree getName() {
jjg@1409 652 return name;
jjg@1409 653 }
jjg@1409 654
jjg@1409 655 @Override
jjg@1409 656 public ReferenceTree getType() {
jjg@1409 657 return type;
jjg@1409 658 }
jjg@1409 659 }
jjg@1409 660
jjg@1535 661 public static class DCSince extends DCBlockTag implements SinceTree {
jjg@1409 662 public final List<DCTree> body;
jjg@1409 663
jjg@1409 664 DCSince(List<DCTree> body) {
jjg@1409 665 this.body = body;
jjg@1409 666 }
jjg@1409 667
jjg@1409 668 @Override
jjg@1409 669 public Kind getKind() {
jjg@1409 670 return Kind.SINCE;
jjg@1409 671 }
jjg@1409 672
jjg@1409 673 @Override
jjg@1409 674 public <R, D> R accept(DocTreeVisitor<R, D> v, D d) {
jjg@1409 675 return v.visitSince(this, d);
jjg@1409 676 }
jjg@1409 677
jjg@1409 678 @Override
jjg@1409 679 public List<? extends DocTree> getBody() {
jjg@1409 680 return body;
jjg@1409 681 }
jjg@1409 682 }
jjg@1409 683
jlahoda@1704 684 public static class DCStartElement extends DCEndPosTree<DCStartElement> implements StartElementTree {
jjg@1409 685 public final Name name;
jjg@1409 686 public final List<DCTree> attrs;
jjg@1409 687 public final boolean selfClosing;
jjg@1409 688
jjg@1409 689 DCStartElement(Name name, List<DCTree> attrs, boolean selfClosing) {
jjg@1409 690 this.name = name;
jjg@1409 691 this.attrs = attrs;
jjg@1409 692 this.selfClosing = selfClosing;
jjg@1409 693 }
jjg@1409 694
jjg@1409 695 @Override
jjg@1409 696 public Kind getKind() {
jjg@1409 697 return Kind.START_ELEMENT;
jjg@1409 698 }
jjg@1409 699
jjg@1409 700 @Override
jjg@1409 701 public <R, D> R accept(DocTreeVisitor<R, D> v, D d) {
jjg@1409 702 return v.visitStartElement(this, d);
jjg@1409 703 }
jjg@1409 704
jjg@1409 705 @Override
jjg@1409 706 public Name getName() {
jjg@1409 707 return name;
jjg@1409 708 }
jjg@1409 709
jjg@1409 710 @Override
jjg@1409 711 public List<? extends DocTree> getAttributes() {
jjg@1409 712 return attrs;
jjg@1409 713 }
jjg@1409 714
jjg@1409 715 @Override
jjg@1409 716 public boolean isSelfClosing() {
jjg@1409 717 return selfClosing;
jjg@1409 718 }
jjg@1409 719 }
jjg@1409 720
jjg@1409 721 public static class DCText extends DCTree implements TextTree {
jjg@1409 722 public final String text;
jjg@1409 723
jjg@1409 724 DCText(String text) {
jjg@1409 725 this.text = text;
jjg@1409 726 }
jjg@1409 727
jjg@1409 728 @Override
jjg@1409 729 public Kind getKind() {
jjg@1409 730 return Kind.TEXT;
jjg@1409 731 }
jjg@1409 732
jjg@1409 733 @Override
jjg@1409 734 public <R, D> R accept(DocTreeVisitor<R, D> v, D d) {
jjg@1409 735 return v.visitText(this, d);
jjg@1409 736 }
jjg@1409 737
jjg@1409 738 @Override
jjg@1409 739 public String getBody() {
jjg@1409 740 return text;
jjg@1409 741 }
jjg@1409 742 }
jjg@1409 743
jjg@1409 744 public static class DCThrows extends DCBlockTag implements ThrowsTree {
jjg@1409 745 public final Kind kind;
jjg@1409 746 public final DCReference name;
jjg@1409 747 public final List<DCTree> description;
jjg@1409 748
jjg@1409 749 DCThrows(Kind kind, DCReference name, List<DCTree> description) {
jjg@1409 750 Assert.check(kind == Kind.EXCEPTION || kind == Kind.THROWS);
jjg@1409 751 this.kind = kind;
jjg@1409 752 this.name = name;
jjg@1409 753 this.description = description;
jjg@1409 754 }
jjg@1409 755
jjg@1409 756 @Override
jjg@1409 757 public Kind getKind() {
jjg@1409 758 return kind;
jjg@1409 759 }
jjg@1409 760
jjg@1409 761 @Override
jjg@1409 762 public <R, D> R accept(DocTreeVisitor<R, D> v, D d) {
jjg@1409 763 return v.visitThrows(this, d);
jjg@1409 764 }
jjg@1409 765
jjg@1409 766 @Override
jjg@1409 767 public ReferenceTree getExceptionName() {
jjg@1409 768 return name;
jjg@1409 769 }
jjg@1409 770
jjg@1409 771 @Override
jjg@1409 772 public List<? extends DocTree> getDescription() {
jjg@1409 773 return description;
jjg@1409 774 }
jjg@1409 775 }
jjg@1409 776
jjg@1409 777 public static class DCUnknownBlockTag extends DCBlockTag implements UnknownBlockTagTree {
jjg@1409 778 public final Name name;
jjg@1409 779 public final List<DCTree> content;
jjg@1409 780
jjg@1409 781 DCUnknownBlockTag(Name name, List<DCTree> content) {
jjg@1409 782 this.name = name;
jjg@1409 783 this.content = content;
jjg@1409 784 }
jjg@1409 785
jjg@1409 786 @Override
jjg@1409 787 public Kind getKind() {
jjg@1409 788 return Kind.UNKNOWN_BLOCK_TAG;
jjg@1409 789 }
jjg@1409 790
jjg@1409 791 @Override
jjg@1409 792 public <R, D> R accept(DocTreeVisitor<R, D> v, D d) {
jjg@1409 793 return v.visitUnknownBlockTag(this, d);
jjg@1409 794 }
jjg@1409 795
jjg@1409 796 @Override
jjg@1409 797 public String getTagName() {
jjg@1409 798 return name.toString();
jjg@1409 799 }
jjg@1409 800
jjg@1409 801 @Override
jjg@1409 802 public List<? extends DocTree> getContent() {
jjg@1409 803 return content;
jjg@1409 804 }
jjg@1409 805 }
jjg@1409 806
jjg@1409 807 public static class DCUnknownInlineTag extends DCInlineTag implements UnknownInlineTagTree {
jjg@1409 808 public final Name name;
jjg@1409 809 public final List<DCTree> content;
jjg@1409 810
jjg@1409 811 DCUnknownInlineTag(Name name, List<DCTree> content) {
jjg@1409 812 this.name = name;
jjg@1409 813 this.content = content;
jjg@1409 814 }
jjg@1409 815
jjg@1409 816 @Override
jjg@1409 817 public Kind getKind() {
jjg@1409 818 return Kind.UNKNOWN_INLINE_TAG;
jjg@1409 819 }
jjg@1409 820
jjg@1409 821 @Override
jjg@1409 822 public <R, D> R accept(DocTreeVisitor<R, D> v, D d) {
jjg@1409 823 return v.visitUnknownInlineTag(this, d);
jjg@1409 824 }
jjg@1409 825
jjg@1409 826 @Override
jjg@1409 827 public String getTagName() {
jjg@1409 828 return name.toString();
jjg@1409 829 }
jjg@1409 830
jjg@1409 831 @Override
jjg@1409 832 public List<? extends DocTree> getContent() {
jjg@1409 833 return content;
jjg@1409 834 }
jjg@1409 835 }
jjg@1409 836
jjg@1409 837 public static class DCValue extends DCInlineTag implements ValueTree {
jjg@1409 838 public final DCReference ref;
jjg@1409 839
jjg@1409 840 DCValue(DCReference ref) {
jjg@1409 841 this.ref = ref;
jjg@1409 842 }
jjg@1409 843
jjg@1409 844 @Override
jjg@1409 845 public Kind getKind() {
jjg@1409 846 return Kind.VALUE;
jjg@1409 847 }
jjg@1409 848
jjg@1409 849 @Override
jjg@1409 850 public <R, D> R accept(DocTreeVisitor<R, D> v, D d) {
jjg@1409 851 return v.visitValue(this, d);
jjg@1409 852 }
jjg@1409 853
jjg@1409 854 @Override
jjg@1409 855 public ReferenceTree getReference() {
jjg@1409 856 return ref;
jjg@1409 857 }
jjg@1409 858 }
jjg@1409 859
jjg@1409 860 public static class DCVersion extends DCBlockTag implements VersionTree {
jjg@1409 861 public final List<DCTree> body;
jjg@1409 862
jjg@1409 863 DCVersion(List<DCTree> body) {
jjg@1409 864 this.body = body;
jjg@1409 865 }
jjg@1409 866
jjg@1409 867 @Override
jjg@1409 868 public Kind getKind() {
jjg@1409 869 return Kind.VERSION;
jjg@1409 870 }
jjg@1409 871
jjg@1409 872 @Override
jjg@1409 873 public <R, D> R accept(DocTreeVisitor<R, D> v, D d) {
jjg@1409 874 return v.visitVersion(this, d);
jjg@1409 875 }
jjg@1409 876
jjg@1409 877 @Override
jjg@1409 878 public List<? extends DocTree> getBody() {
jjg@1409 879 return body;
jjg@1409 880 }
jjg@1409 881 }
jjg@1409 882
jjg@1409 883 }

mercurial