src/share/classes/com/sun/tools/javadoc/ParamTagImpl.java

Mon, 25 Mar 2013 16:55:14 -0700

author
mfang
date
Mon, 25 Mar 2013 16:55:14 -0700
changeset 1658
fdf30b225e1c
parent 1410
bfec2a1cc869
child 2525
2eb010b6cb22
permissions
-rw-r--r--

8010521: jdk8 l10n resource file translation update 2
Reviewed-by: naoto, yhuang

     1 /*
     2  * Copyright (c) 1997, 2012, Oracle and/or its affiliates. All rights reserved.
     3  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
     4  *
     5  * This code is free software; you can redistribute it and/or modify it
     6  * under the terms of the GNU General Public License version 2 only, as
     7  * published by the Free Software Foundation.  Oracle designates this
     8  * particular file as subject to the "Classpath" exception as provided
     9  * by Oracle in the LICENSE file that accompanied this code.
    10  *
    11  * This code is distributed in the hope that it will be useful, but WITHOUT
    12  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
    13  * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
    14  * version 2 for more details (a copy is included in the LICENSE file that
    15  * accompanied this code).
    16  *
    17  * You should have received a copy of the GNU General Public License version
    18  * 2 along with this work; if not, write to the Free Software Foundation,
    19  * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
    20  *
    21  * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
    22  * or visit www.oracle.com if you need additional information or have any
    23  * questions.
    24  */
    26 package com.sun.tools.javadoc;
    28 import java.util.regex.*;
    30 import com.sun.javadoc.*;
    32 /**
    33  * Represents an @param documentation tag.
    34  * Parses and stores the name and comment parts of the parameter tag.
    35  *
    36  *  <p><b>This is NOT part of any supported API.
    37  *  If you write code that depends on this, you do so at your own risk.
    38  *  This code and its internal interfaces are subject to change or
    39  *  deletion without notice.</b>
    40  *
    41  * @author Robert Field
    42  *
    43  */
    44 class ParamTagImpl extends TagImpl implements ParamTag {
    46     private static final Pattern typeParamRE = Pattern.compile("<([^<>]+)>");
    48     private final String parameterName;
    49     private final String parameterComment;
    50     private final boolean isTypeParameter;
    52     /**
    53      * Cached inline tags.
    54      */
    55     private Tag[] inlineTags;
    57     ParamTagImpl(DocImpl holder, String name, String text) {
    58         super(holder, name, text);
    59         String[] sa = divideAtWhite();
    61         Matcher m = typeParamRE.matcher(sa[0]);
    62         isTypeParameter = m.matches();
    63         parameterName = isTypeParameter ? m.group(1) : sa[0];
    64         parameterComment = sa[1];
    65     }
    67     /**
    68      * Return the parameter name.
    69      */
    70     public String parameterName() {
    71         return parameterName;
    72     }
    74     /**
    75      * Return the parameter comment.
    76      */
    77     public String parameterComment() {
    78         return parameterComment;
    79     }
    81     /**
    82      * Return the kind of this tag.
    83      */
    84     @Override
    85     public String kind() {
    86         return "@param";
    87     }
    89     /**
    90      * Return true if this ParamTag corresponds to a type parameter.
    91      */
    92     public boolean isTypeParameter() {
    93         return isTypeParameter;
    94     }
    96     /**
    97      * convert this object to a string.
    98      */
    99     @Override
   100     public String toString() {
   101         return name + ":" + text;
   102     }
   104     /**
   105      * For the parameter comment with embedded @link tags return the array of
   106      * TagImpls consisting of SeeTagImpl(s) and text containing TagImpl(s).
   107      *
   108      * @return TagImpl[] Array of tags with inline SeeTagImpls.
   109      * @see TagImpl#inlineTags()
   110      * @see ThrowsTagImpl#inlineTags()
   111      */
   112     @Override
   113     public Tag[] inlineTags() {
   114         if (inlineTags == null) {
   115             inlineTags = Comment.getInlineTags(holder, parameterComment);
   116         }
   117         return inlineTags;
   118     }
   119 }

mercurial