/*
* Copyright (c) 1998, 2006, Oracle and/or its affiliates. All rights reserved.
* ORACLE PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*/
package com.sun.javadoc;
import java.text.BreakIterator;
import java.util.Locale;
/**
* Represents a simple documentation tag, such as @since, @author, @version.
* Given a tag (e.g. "@since 1.2"), holds tag name (e.g. "@since")
* and tag text (e.g. "1.2"). Tags with structure or which require
* special processing are handled by subclasses such as ParamTag
* (for @param), SeeTag (for @see and {@link}), and ThrowsTag
* (for @throws).
*
* @author Robert Field
* @author Atul M Dambalkar
* @see SeeTag
* @see ParamTag
* @see ThrowsTag
* @see SerialFieldTag
* @see Doc#tags()
*
*/
public interface Tag {
/**
* Return the name of this tag. The name is the string
* starting with "@" that is used in a doc comment, such as
* @return
. For inline tags, such as
* {@link}
, the curly brackets
* are not part of the name, so in this example the name
* would be simply @link
.
*/
String name();
/**
* Return the containing {@link Doc} of this Tag element.
*/
Doc holder();
/**
* Return the kind of this tag.
* similar or synonymous tags. For most tags,
* kind() == name()
;
* the following table lists those cases where there is more
* than one tag of a given kind:
*
*
kind() | name() |
---|---|
@throws | @throws |
@throws | @exception |
@see | @see |
@see | @link |
@see | @linkplain |
@serial | @serial |
@serial | @serialData |
{@link}
* tags, return an array of Tag
objects. The entire
* doc comment is broken down into strings separated by
* {@link}
tags, where each successive element
* of the array represents either a string or
* {@link}
tag, in order, from start to end.
* Each string is represented by a Tag
object of
* name "Text", where {@link #text()} returns the string. Each
* {@link}
tag is represented by a
* {@link SeeTag} of name "@link" and kind "@see".
* For example, given the following comment
* tag:
*
* This is a {@link Doc commentlabel} example.
*
* return an array of Tag objects: *
Doc
and label "commentlabel"
*