1 /*******************************************************************************
2  * Copyright (c) 2000, 2012 IBM Corporation and others.
3  * All rights reserved. This program and the accompanying materials
4  * are made available under the terms of the Eclipse Public License v1.0
5  * which accompanies this distribution, and is available at
6  * http://www.eclipse.org/legal/epl-v10.html
7  *
8  * Contributors:
9  *     IBM Corporation - initial API and implementation
10  *******************************************************************************/
11 
12 package org.eclipse.jdt.internal.compiler.parser;
13 
14 import org.eclipse.jdt.core.compiler.CharOperation;
15 
16 /**
17  * Javadoc tag constants.
18  *
19  * @since 3.2
20  */
21 public interface JavadocTagConstants {
22 
23 	// recognized tags
24 	public static final char[] TAG_DEPRECATED = "deprecated".toCharArray(); //$NON-NLS-1$
25 	public static final char[] TAG_PARAM = "param".toCharArray(); //$NON-NLS-1$
26 	public static final char[] TAG_RETURN = "return".toCharArray(); //$NON-NLS-1$
27 	public static final char[] TAG_THROWS = "throws".toCharArray(); //$NON-NLS-1$
28 	public static final char[] TAG_EXCEPTION = "exception".toCharArray(); //$NON-NLS-1$
29 	public static final char[] TAG_SEE = "see".toCharArray(); //$NON-NLS-1$
30 	public static final char[] TAG_LINK = "link".toCharArray(); //$NON-NLS-1$
31 	public static final char[] TAG_LINKPLAIN = "linkplain".toCharArray(); //$NON-NLS-1$
32 	public static final char[] TAG_INHERITDOC = "inheritDoc".toCharArray(); //$NON-NLS-1$
33 	public static final char[] TAG_VALUE = "value".toCharArray(); //$NON-NLS-1$
34 	public static final char[] TAG_AUTHOR = "author".toCharArray(); //$NON-NLS-1$
35 	public static final char[] TAG_CODE = "code".toCharArray(); //$NON-NLS-1$
36 	public static final char[] TAG_DOC_ROOT = "docRoot".toCharArray(); //$NON-NLS-1$
37 	public static final char[] TAG_LITERAL = "literal".toCharArray(); //$NON-NLS-1$
38 	public static final char[] TAG_SERIAL = "serial".toCharArray(); //$NON-NLS-1$
39 	public static final char[] TAG_SERIAL_DATA = "serialData".toCharArray(); //$NON-NLS-1$
40 	public static final char[] TAG_SERIAL_FIELD = "serialField".toCharArray(); //$NON-NLS-1$
41 	public static final char[] TAG_SINCE = "since".toCharArray(); //$NON-NLS-1$
42 	public static final char[] TAG_VERSION = "version".toCharArray(); //$NON-NLS-1$
43 	public static final char[] TAG_CATEGORY = "category".toCharArray(); //$NON-NLS-1$
44 
45 	// tags lengthes
46 	public static final int TAG_DEPRECATED_LENGTH = TAG_DEPRECATED.length;
47 	public static final int TAG_PARAM_LENGTH = TAG_PARAM.length;
48 	public static final int TAG_RETURN_LENGTH = TAG_RETURN.length;
49 	public static final int TAG_THROWS_LENGTH = TAG_THROWS.length;
50 	public static final int TAG_EXCEPTION_LENGTH = TAG_EXCEPTION.length;
51 	public static final int TAG_SEE_LENGTH = TAG_SEE.length;
52 	public static final int TAG_LINK_LENGTH = TAG_LINK.length;
53 	public static final int TAG_LINKPLAIN_LENGTH = TAG_LINKPLAIN.length;
54 	public static final int TAG_INHERITDOC_LENGTH = TAG_INHERITDOC.length;
55 	public static final int TAG_VALUE_LENGTH = TAG_VALUE.length;
56 	public static final int TAG_CATEGORY_LENGTH = TAG_CATEGORY.length;
57 	public static final int TAG_AUTHOR_LENGTH = TAG_AUTHOR.length;
58 	public static final int TAG_SERIAL_LENGTH = TAG_SERIAL.length;
59 	public static final int TAG_SERIAL_DATA_LENGTH = TAG_SERIAL_DATA.length;
60 	public static final int TAG_SERIAL_FIELD_LENGTH = TAG_SERIAL_FIELD.length;
61 	public static final int TAG_SINCE_LENGTH = TAG_SINCE.length;
62 	public static final int TAG_VERSION_LENGTH = TAG_VERSION.length;
63 	public static final int TAG_CODE_LENGTH = TAG_CODE.length;
64 	public static final int TAG_LITERAL_LENGTH = TAG_LITERAL.length;
65 	public static final int TAG_DOC_ROOT_LENGTH = TAG_DOC_ROOT.length;
66 
67 	// tags value
68 	public static final int NO_TAG_VALUE = 0;
69 	public static final int TAG_DEPRECATED_VALUE = 1;
70 	public static final int TAG_PARAM_VALUE = 2;
71 	public static final int TAG_RETURN_VALUE = 3;
72 	public static final int TAG_THROWS_VALUE = 4;
73 	public static final int TAG_EXCEPTION_VALUE = 5;
74 	public static final int TAG_SEE_VALUE = 6;
75 	public static final int TAG_LINK_VALUE = 7;
76 	public static final int TAG_LINKPLAIN_VALUE = 8;
77 	public static final int TAG_INHERITDOC_VALUE = 9;
78 	public static final int TAG_VALUE_VALUE = 10;
79 	public static final int TAG_CATEGORY_VALUE = 11;
80 	public static final int TAG_AUTHOR_VALUE = 12;
81 	public static final int TAG_SERIAL_VALUE = 13;
82 	public static final int TAG_SERIAL_DATA_VALUE = 14;
83 	public static final int TAG_SERIAL_FIELD_VALUE = 15;
84 	public static final int TAG_SINCE_VALUE = 16;
85 	public static final int TAG_VERSION_VALUE = 17;
86 	public static final int TAG_CODE_VALUE = 18;
87 	public static final int TAG_LITERAL_VALUE = 19;
88 	public static final int TAG_DOC_ROOT_VALUE = 20;
89 	public static final int TAG_OTHERS_VALUE = 100;
90 
91 	// Tag names array
92 	public static final char[][] TAG_NAMES = {
93 		CharOperation.NO_CHAR,
94 		TAG_DEPRECATED,		/* 1 */
95 		TAG_PARAM,				/* 2 */
96 		TAG_RETURN,				/* 3 */
97 		TAG_THROWS,				/* 4 */
98 		TAG_EXCEPTION,			/* 5 */
99 		TAG_SEE,						/* 6 */
100 		TAG_LINK,						/* 7 */
101 		TAG_LINKPLAIN,			/* 8 */
102 		TAG_INHERITDOC,		/* 9 */
103 		TAG_VALUE,					/* 10 */
104 		TAG_CATEGORY,			/* 11 */
105 		TAG_AUTHOR,				/* 12 */
106 		TAG_SERIAL,				/* 13 */
107 		TAG_SERIAL_DATA,	/* 14 */
108 		TAG_SERIAL_FIELD,	/* 15 */
109 		TAG_SINCE,					/* 16 */
110 		TAG_VERSION,				/* 17 */
111 		TAG_CODE,					/* 18 */
112 		TAG_LITERAL,				/* 19 */
113 		TAG_DOC_ROOT,			/* 20 */
114 	};
115 
116 	// tags expected positions
117 	public final static int ORDERED_TAGS_NUMBER = 3;
118 	public final static int PARAM_TAG_EXPECTED_ORDER = 0;
119 	public final static int THROWS_TAG_EXPECTED_ORDER = 1;
120 	public final static int SEE_TAG_EXPECTED_ORDER = 2;
121 
122 	/*
123 	 * Tag kinds indexes
124 	 */
125 	public final static int BLOCK_IDX = 0;
126 	public final static int INLINE_IDX = 1;
127 
128 	// href tag
129 	public final static char[] HREF_TAG = {'h', 'r', 'e', 'f'};
130 	/*
131 	 * Tags versions
132 	 */
133 	public static final char[][][] BLOCK_TAGS = {
134 		// since 1.0
135 		{ TAG_AUTHOR, TAG_DEPRECATED, TAG_EXCEPTION, TAG_PARAM, TAG_RETURN, TAG_SEE, TAG_VERSION, TAG_CATEGORY /* 1.6 tag but put here as we support it for all compliances */ },
136 		// since 1.1
137 		{ TAG_SINCE },
138 		// since 1.2
139 		{ TAG_SERIAL, TAG_SERIAL_DATA, TAG_SERIAL_FIELD , TAG_THROWS },
140 		// since 1.3
141 		{},
142 		// since 1.4
143 		{},
144 		// since 1.5
145 		{},
146 		// since 1.6
147 		{},
148 		// since 1.7
149 		{},
150 		// since 1.8
151 		{}
152 	};
153 	public static final char[][][] INLINE_TAGS = {
154 		// since 1.0
155 		{},
156 		// since 1.1
157 		{},
158 		// since 1.2
159 		{ TAG_LINK },
160 		// since 1.3
161 		{ TAG_DOC_ROOT },
162 		// since 1.4
163 		{ TAG_INHERITDOC, TAG_LINKPLAIN, TAG_VALUE },
164 		// since 1.5
165 		{ TAG_CODE, TAG_LITERAL },
166 		// since 1.6
167 		{},
168 		// since 1.7
169 		{},
170 		// since 1.8
171 		{}
172 	};
173 	public final static int INLINE_TAGS_LENGTH = INLINE_TAGS.length;
174 	public final static int BLOCK_TAGS_LENGTH = BLOCK_TAGS.length;
175 	public final static int ALL_TAGS_LENGTH = BLOCK_TAGS_LENGTH+INLINE_TAGS_LENGTH;
176 
177 	public final static short TAG_TYPE_NONE = 0;
178 	public final static short TAG_TYPE_INLINE = 1;
179 	public final static short TAG_TYPE_BLOCK = 2;
180 
181 	public static final short[] JAVADOC_TAG_TYPE = {
182 		TAG_TYPE_NONE, 		// NO_TAG_VALUE = 0;
183 		TAG_TYPE_BLOCK,		// TAG_DEPRECATED_VALUE = 1;
184 		TAG_TYPE_BLOCK,		// TAG_PARAM_VALUE = 2;
185 		TAG_TYPE_BLOCK,		// TAG_RETURN_VALUE = 3;
186 		TAG_TYPE_BLOCK,		// TAG_THROWS_VALUE = 4;
187 		TAG_TYPE_BLOCK,		// TAG_EXCEPTION_VALUE = 5;
188 		TAG_TYPE_BLOCK,		// TAG_SEE_VALUE = 6;
189 		TAG_TYPE_INLINE,	// TAG_LINK_VALUE = 7;
190 		TAG_TYPE_INLINE,	// TAG_LINKPLAIN_VALUE = 8;
191 		TAG_TYPE_INLINE,	// TAG_INHERITDOC_VALUE = 9;
192 		TAG_TYPE_INLINE,	// TAG_VALUE_VALUE = 10;
193 		TAG_TYPE_BLOCK,		// TAG_CATEGORY_VALUE = 11;
194 		TAG_TYPE_BLOCK,		// TAG_AUTHOR_VALUE = 12;
195 		TAG_TYPE_BLOCK,		// TAG_SERIAL_VALUE = 13;
196 		TAG_TYPE_BLOCK,		// TAG_SERIAL_DATA_VALUE = 14;
197 		TAG_TYPE_BLOCK,		// TAG_SERIAL_FIELD_VALUE = 15;
198 		TAG_TYPE_BLOCK,		// TAG_SINCE_VALUE = 16;
199 		TAG_TYPE_BLOCK,		// TAG_VERSION_VALUE = 17;
200 		TAG_TYPE_INLINE,	// TAG_CODE_VALUE = 18;
201 		TAG_TYPE_INLINE,	// TAG_LITERAL_VALUE = 19;
202 		TAG_TYPE_INLINE		// TAG_DOC_ROOT_VALUE = 20;
203 	};
204 	/*
205 	 * Tags usage
206 	 */
207 	public static final char[][] PACKAGE_TAGS = {
208 		TAG_SEE,
209 		TAG_SINCE,
210 		TAG_SERIAL,
211 		TAG_AUTHOR,
212 		TAG_VERSION,
213 		TAG_CATEGORY,
214 		TAG_LINK,
215 		TAG_LINKPLAIN,
216 		TAG_DOC_ROOT,
217 		TAG_VALUE,
218 	};
219 	public static final char[][] COMPILATION_UNIT_TAGS = {};
220 	public static final char[][] CLASS_TAGS = {
221 		TAG_SEE,
222 		TAG_SINCE,
223 		TAG_DEPRECATED,
224 		TAG_SERIAL,
225 		TAG_AUTHOR,
226 		TAG_VERSION,
227 		TAG_PARAM,
228 		TAG_CATEGORY,
229 		TAG_LINK,
230 		TAG_LINKPLAIN,
231 		TAG_DOC_ROOT,
232 		TAG_VALUE,
233 		TAG_CODE,
234 		TAG_LITERAL
235 	};
236 	public static final char[][] FIELD_TAGS = {
237 		TAG_SEE,
238 		TAG_SINCE,
239 		TAG_DEPRECATED,
240 		TAG_SERIAL,
241 		TAG_SERIAL_FIELD,
242 		TAG_CATEGORY,
243 		TAG_LINK,
244 		TAG_LINKPLAIN,
245 		TAG_DOC_ROOT,
246 		TAG_VALUE,
247 		TAG_CODE,
248 		TAG_LITERAL
249 	};
250 	public static final char[][] METHOD_TAGS = {
251 		TAG_SEE,
252 		TAG_SINCE,
253 		TAG_DEPRECATED,
254 		TAG_PARAM,
255 		TAG_RETURN,
256 		TAG_THROWS,
257 		TAG_EXCEPTION,
258 		TAG_SERIAL_DATA,
259 		TAG_CATEGORY,
260 		TAG_LINK,
261 		TAG_LINKPLAIN,
262 		TAG_INHERITDOC,
263 		TAG_DOC_ROOT,
264 		TAG_VALUE,
265 		TAG_CODE,
266 		TAG_LITERAL
267 	};
268 }
269