EMMA Coverage Report (generated Thu Dec 06 15:52:10 GMT 2007)
[all classes][com.sun.source.tree]

COVERAGE SUMMARY FOR SOURCE FILE [Tree.java]

nameclass, %method, %block, %line, %
Tree.java0%   (0/1)0%   (0/5)0%   (0/1036)0%   (0/97)

COVERAGE BREAKDOWN BY CLASS AND METHOD

nameclass, %method, %block, %line, %
     
class Tree$Kind0%   (0/1)0%   (0/5)0%   (0/1036)0%   (0/97)
<static initializer> 0%   (0/1)0%   (0/1016)0%   (0/93)
Tree$Kind (String, int, Class): void 0%   (0/1)0%   (0/8)0%   (0/3)
asInterface (): Class 0%   (0/1)0%   (0/3)0%   (0/1)
valueOf (String): Tree$Kind 0%   (0/1)0%   (0/5)0%   (0/1)
values (): Tree$Kind [] 0%   (0/1)0%   (0/4)0%   (0/1)

1/*
2 * Copyright 2005-2006 Sun Microsystems, Inc.  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.  Sun designates this
8 * particular file as subject to the "Classpath" exception as provided
9 * by Sun 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 Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
22 * CA 95054 USA or visit www.sun.com if you need additional information or
23 * have any questions.
24 */
25 
26package com.sun.source.tree;
27 
28/**
29 * Common interface for all nodes in an abstract syntax tree.
30 *
31 * <p><b>WARNING:</b> This interface and its sub-interfaces are
32 * subject to change as the Java&trade; programming language evolves.
33 * These interfaces are implemented by Sun's Java compiler (javac)
34 * and should not be implemented either directly or indirectly by
35 * other applications.
36 *
37 * @author Peter von der Ah&eacute;
38 * @author Jonathan Gibbons
39 *
40 * @since 1.6
41 */
42public interface Tree {
43 
44    /**
45     * Enumerates all kinds of trees.
46     */
47    public enum Kind {
48        /**
49         * Used for instances of {@link AnnotationTree}.
50         */
51        ANNOTATION(AnnotationTree.class),
52 
53        /**
54         * Used for instances of {@link ArrayAccessTree}.
55         */
56        ARRAY_ACCESS(ArrayAccessTree.class),
57 
58        /**
59         * Used for instances of {@link ArrayTypeTree}.
60         */
61        ARRAY_TYPE(ArrayTypeTree.class),
62 
63        /**
64         * Used for instances of {@link AssertTree}.
65         */
66        ASSERT(AssertTree.class),
67 
68        /**
69         * Used for instances of {@link AssignmentTree}.
70         */
71        ASSIGNMENT(AssignmentTree.class),
72 
73        /**
74         * Used for instances of {@link BlockTree}.
75         */
76        BLOCK(BlockTree.class),
77 
78        /**
79         * Used for instances of {@link BreakTree}.
80         */
81        BREAK(BreakTree.class),
82 
83        /**
84         * Used for instances of {@link CaseTree}.
85         */
86        CASE(CaseTree.class),
87 
88        /**
89         * Used for instances of {@link CatchTree}.
90         */
91        CATCH(CatchTree.class),
92 
93        /**
94         * Used for instances of {@link ClassTree}.
95         */
96        CLASS(ClassTree.class),
97 
98        /**
99         * Used for instances of {@link CompilationUnitTree}.
100         */
101        COMPILATION_UNIT(CompilationUnitTree.class),
102 
103        /**
104         * Used for instances of {@link ConditionalExpressionTree}.
105         */
106        CONDITIONAL_EXPRESSION(ConditionalExpressionTree.class),
107 
108        /**
109         * Used for instances of {@link ContinueTree}.
110         */
111        CONTINUE(ContinueTree.class),
112 
113        /**
114         * Used for instances of {@link DoWhileLoopTree}.
115         */
116        DO_WHILE_LOOP(DoWhileLoopTree.class),
117 
118        /**
119         * Used for instances of {@link EnhancedForLoopTree}.
120         */
121        ENHANCED_FOR_LOOP(EnhancedForLoopTree.class),
122 
123        /**
124         * Used for instances of {@link ExpressionStatementTree}.
125         */
126        EXPRESSION_STATEMENT(ExpressionStatementTree.class),
127 
128        /**
129         * Used for instances of {@link MemberSelectTree}.
130         */
131        MEMBER_SELECT(MemberSelectTree.class),
132 
133        /**
134         * Used for instances of {@link ForLoopTree}.
135         */
136        FOR_LOOP(ForLoopTree.class),
137 
138        /**
139         * Used for instances of {@link IdentifierTree}.
140         */
141        IDENTIFIER(IdentifierTree.class),
142 
143        /**
144         * Used for instances of {@link IfTree}.
145         */
146        IF(IfTree.class),
147 
148        /**
149         * Used for instances of {@link ImportTree}.
150         */
151        IMPORT(ImportTree.class),
152 
153        /**
154         * Used for instances of {@link InstanceOfTree}.
155         */
156        INSTANCE_OF(InstanceOfTree.class),
157 
158        /**
159         * Used for instances of {@link LabeledStatementTree}.
160         */
161        LABELED_STATEMENT(LabeledStatementTree.class),
162 
163        /**
164         * Used for instances of {@link MethodTree}.
165         */
166        METHOD(MethodTree.class),
167 
168        /**
169         * Used for instances of {@link MethodInvocationTree}.
170         */
171        METHOD_INVOCATION(MethodInvocationTree.class),
172 
173        /**
174         * Used for instances of {@link ModifiersTree}.
175         */
176        MODIFIERS(ModifiersTree.class),
177 
178        /**
179         * Used for instances of {@link NewArrayTree}.
180         */
181        NEW_ARRAY(NewArrayTree.class),
182 
183        /**
184         * Used for instances of {@link NewClassTree}.
185         */
186        NEW_CLASS(NewClassTree.class),
187 
188        /**
189         * Used for instances of {@link ParenthesizedTree}.
190         */
191        PARENTHESIZED(ParenthesizedTree.class),
192 
193        /**
194         * Used for instances of {@link PrimitiveTypeTree}.
195         */
196        PRIMITIVE_TYPE(PrimitiveTypeTree.class),
197 
198        /**
199         * Used for instances of {@link ReturnTree}.
200         */
201        RETURN(ReturnTree.class),
202 
203        /**
204         * Used for instances of {@link EmptyStatementTree}.
205         */
206        EMPTY_STATEMENT(EmptyStatementTree.class),
207 
208        /**
209         * Used for instances of {@link SwitchTree}.
210         */
211        SWITCH(SwitchTree.class),
212 
213        /**
214         * Used for instances of {@link SynchronizedTree}.
215         */
216        SYNCHRONIZED(SynchronizedTree.class),
217 
218        /**
219         * Used for instances of {@link ThrowTree}.
220         */
221        THROW(ThrowTree.class),
222 
223        /**
224         * Used for instances of {@link TryTree}.
225         */
226        TRY(TryTree.class),
227 
228        /**
229         * Used for instances of {@link ParameterizedTypeTree}.
230         */
231        PARAMETERIZED_TYPE(ParameterizedTypeTree.class),
232 
233        /**
234         * Used for instances of {@link TypeCastTree}.
235         */
236        TYPE_CAST(TypeCastTree.class),
237 
238        /**
239         * Used for instances of {@link TypeParameterTree}.
240         */
241        TYPE_PARAMETER(TypeParameterTree.class),
242 
243        /**
244         * Used for instances of {@link VariableTree}.
245         */
246        VARIABLE(VariableTree.class),
247 
248        /**
249         * Used for instances of {@link WhileLoopTree}.
250         */
251        WHILE_LOOP(WhileLoopTree.class),
252 
253        /**
254         * Used for instances of {@link UnaryTree} representing postfix
255         * increment operator {@code ++}.
256         */
257        POSTFIX_INCREMENT(UnaryTree.class),
258 
259        /**
260         * Used for instances of {@link UnaryTree} representing postfix
261         * decrement operator {@code --}.
262         */
263        POSTFIX_DECREMENT(UnaryTree.class),
264 
265        /**
266         * Used for instances of {@link UnaryTree} representing prefix
267         * increment operator {@code ++}.
268         */
269        PREFIX_INCREMENT(UnaryTree.class),
270 
271        /**
272         * Used for instances of {@link UnaryTree} representing prefix
273         * decrement operator {@code --}.
274         */
275        PREFIX_DECREMENT(UnaryTree.class),
276 
277        /**
278         * Used for instances of {@link UnaryTree} representing unary plus
279         * operator {@code +}.
280         */
281        UNARY_PLUS(UnaryTree.class),
282 
283        /**
284         * Used for instances of {@link UnaryTree} representing unary minus
285         * operator {@code -}.
286         */
287        UNARY_MINUS(UnaryTree.class),
288 
289        /**
290         * Used for instances of {@link UnaryTree} representing bitwise
291         * complement operator {@code ~}.
292         */
293        BITWISE_COMPLEMENT(UnaryTree.class),
294 
295        /**
296         * Used for instances of {@link UnaryTree} representing logical
297         * complement operator {@code !}.
298         */
299        LOGICAL_COMPLEMENT(UnaryTree.class),
300 
301        /**
302         * Used for instances of {@link BinaryTree} representing
303         * multiplication {@code *}.
304         */
305        MULTIPLY(BinaryTree.class),
306 
307        /**
308         * Used for instances of {@link BinaryTree} representing
309         * division {@code /}.
310         */
311        DIVIDE(BinaryTree.class),
312 
313        /**
314         * Used for instances of {@link BinaryTree} representing
315         * remainder {@code %}.
316         */
317        REMAINDER(BinaryTree.class),
318 
319        /**
320         * Used for instances of {@link BinaryTree} representing
321         * addition or string concatenation {@code +}.
322         */
323        PLUS(BinaryTree.class),
324 
325        /**
326         * Used for instances of {@link BinaryTree} representing
327         * subtraction {@code -}.
328         */
329        MINUS(BinaryTree.class),
330 
331        /**
332         * Used for instances of {@link BinaryTree} representing
333         * left shift {@code <<}.
334         */
335        LEFT_SHIFT(BinaryTree.class),
336 
337        /**
338         * Used for instances of {@link BinaryTree} representing
339         * right shift {@code >>}.
340         */
341        RIGHT_SHIFT(BinaryTree.class),
342 
343        /**
344         * Used for instances of {@link BinaryTree} representing
345         * unsigned right shift {@code >>>}.
346         */
347        UNSIGNED_RIGHT_SHIFT(BinaryTree.class),
348 
349        /**
350         * Used for instances of {@link BinaryTree} representing
351         * less-than {@code <}.
352         */
353        LESS_THAN(BinaryTree.class),
354 
355        /**
356         * Used for instances of {@link BinaryTree} representing
357         * greater-than {@code >}.
358         */
359        GREATER_THAN(BinaryTree.class),
360 
361        /**
362         * Used for instances of {@link BinaryTree} representing
363         * less-than-equal {@code <=}.
364         */
365        LESS_THAN_EQUAL(BinaryTree.class),
366 
367        /**
368         * Used for instances of {@link BinaryTree} representing
369         * greater-than-equal {@code >=}.
370         */
371        GREATER_THAN_EQUAL(BinaryTree.class),
372 
373        /**
374         * Used for instances of {@link BinaryTree} representing
375         * equal-to {@code ==}.
376         */
377        EQUAL_TO(BinaryTree.class),
378 
379        /**
380         * Used for instances of {@link BinaryTree} representing
381         * not-equal-to {@code !=}.
382         */
383        NOT_EQUAL_TO(BinaryTree.class),
384 
385        /**
386         * Used for instances of {@link BinaryTree} representing
387         * bitwise and logical "and" {@code &}.
388         */
389        AND(BinaryTree.class),
390 
391        /**
392         * Used for instances of {@link BinaryTree} representing
393         * bitwise and logical "xor" {@code ^}.
394         */
395        XOR(BinaryTree.class),
396 
397        /**
398         * Used for instances of {@link BinaryTree} representing
399         * bitwise and logical "or" {@code |}.
400         */
401        OR(BinaryTree.class),
402 
403        /**
404         * Used for instances of {@link BinaryTree} representing
405         * conditional-and {@code &&}.
406         */
407        CONDITIONAL_AND(BinaryTree.class),
408 
409        /**
410         * Used for instances of {@link BinaryTree} representing
411         * conditional-or {@code ||}.
412         */
413        CONDITIONAL_OR(BinaryTree.class),
414 
415        /**
416         * Used for instances of {@link CompoundAssignmentTree} representing
417         * multiplication assignment {@code *=}.
418         */
419        MULTIPLY_ASSIGNMENT(CompoundAssignmentTree.class),
420 
421        /**
422         * Used for instances of {@link CompoundAssignmentTree} representing
423         * division assignment {@code /=}.
424         */
425        DIVIDE_ASSIGNMENT(CompoundAssignmentTree.class),
426 
427        /**
428         * Used for instances of {@link CompoundAssignmentTree} representing
429         * remainder assignment {@code %=}.
430         */
431        REMAINDER_ASSIGNMENT(CompoundAssignmentTree.class),
432 
433        /**
434         * Used for instances of {@link CompoundAssignmentTree} representing
435         * addition or string concatenation assignment {@code +=}.
436         */
437        PLUS_ASSIGNMENT(CompoundAssignmentTree.class),
438 
439        /**
440         * Used for instances of {@link CompoundAssignmentTree} representing
441         * subtraction assignment {@code -=}.
442         */
443        MINUS_ASSIGNMENT(CompoundAssignmentTree.class),
444 
445        /**
446         * Used for instances of {@link CompoundAssignmentTree} representing
447         * left shift assignment {@code <<=}.
448         */
449        LEFT_SHIFT_ASSIGNMENT(CompoundAssignmentTree.class),
450 
451        /**
452         * Used for instances of {@link CompoundAssignmentTree} representing
453         * right shift assignment {@code >>=}.
454         */
455        RIGHT_SHIFT_ASSIGNMENT(CompoundAssignmentTree.class),
456 
457        /**
458         * Used for instances of {@link CompoundAssignmentTree} representing
459         * unsigned right shift assignment {@code >>>=}.
460         */
461        UNSIGNED_RIGHT_SHIFT_ASSIGNMENT(CompoundAssignmentTree.class),
462 
463        /**
464         * Used for instances of {@link CompoundAssignmentTree} representing
465         * bitwise and logical "and" assignment {@code &=}.
466         */
467        AND_ASSIGNMENT(CompoundAssignmentTree.class),
468 
469        /**
470         * Used for instances of {@link CompoundAssignmentTree} representing
471         * bitwise and logical "xor" assignment {@code ^=}.
472         */
473        XOR_ASSIGNMENT(CompoundAssignmentTree.class),
474 
475        /**
476         * Used for instances of {@link CompoundAssignmentTree} representing
477         * bitwise and logical "or" assignment {@code |=}.
478         */
479        OR_ASSIGNMENT(CompoundAssignmentTree.class),
480 
481        /**
482         * Used for instances of {@link LiteralTree} representing
483         * an integral literal expression of type {@code int}.
484         */
485        INT_LITERAL(LiteralTree.class),
486 
487        /**
488         * Used for instances of {@link LiteralTree} representing
489         * an integral literal expression of type {@code long}.
490         */
491        LONG_LITERAL(LiteralTree.class),
492 
493        /**
494         * Used for instances of {@link LiteralTree} representing
495         * a floating-point literal expression of type {@code float}.
496         */
497        FLOAT_LITERAL(LiteralTree.class),
498 
499        /**
500         * Used for instances of {@link LiteralTree} representing
501         * a floating-point literal expression of type {@code double}.
502         */
503        DOUBLE_LITERAL(LiteralTree.class),
504 
505        /**
506         * Used for instances of {@link LiteralTree} representing
507         * a boolean literal expression of type {@code boolean}.
508         */
509        BOOLEAN_LITERAL(LiteralTree.class),
510 
511        /**
512         * Used for instances of {@link LiteralTree} representing
513         * a character literal expression of type {@code char}.
514         */
515        CHAR_LITERAL(LiteralTree.class),
516 
517        /**
518         * Used for instances of {@link LiteralTree} representing
519         * a string literal expression of type {@link String}.
520         */
521        STRING_LITERAL(LiteralTree.class),
522 
523        /**
524         * Used for instances of {@link LiteralTree} representing
525         * the use of {@code null}.
526         */
527        NULL_LITERAL(LiteralTree.class),
528 
529        /**
530         * Used for instances of {@link WildcardTree} representing
531         * an unbounded wildcard type argument.
532         */
533        UNBOUNDED_WILDCARD(WildcardTree.class),
534 
535        /**
536         * Used for instances of {@link WildcardTree} representing
537         * an extends bounded wildcard type argument.
538         */
539        EXTENDS_WILDCARD(WildcardTree.class),
540 
541        /**
542         * Used for instances of {@link WildcardTree} representing
543         * a super bounded wildcard type argument.
544         */
545        SUPER_WILDCARD(WildcardTree.class),
546 
547        /**
548         * Used for instances of {@link ErroneousTree}.
549         */
550        ERRONEOUS(ErroneousTree.class),
551 
552        /**
553         * An implementation-reserved node. This is the not the node
554         * you are looking for.
555         */
556        OTHER(null);
557 
558 
559        Kind(Class<? extends Tree> intf) {
560            associatedInterface = intf;
561        }
562 
563        public Class<? extends Tree> asInterface() {
564            return associatedInterface;
565        }
566 
567        private final Class<? extends Tree> associatedInterface;
568    }
569 
570    /**
571     * Gets the kind of this tree.
572     *
573     * @return the kind of this tree.
574     */
575    Kind getKind();
576 
577    /**
578     * Accept method used to implement the visitor pattern.  The
579     * visitor pattern is used to implement operations on trees.
580     *
581     * @param <R> result type of this operation.
582     * @param <D> type of additonal data.
583     */
584    <R,D> R accept(TreeVisitor<R,D> visitor, D data);
585}

[all classes][com.sun.source.tree]
EMMA 2.0.5312 (C) Vladimir Roubtsov