/******************************************************************************* | |
* Copyright (c) 2002 IBM Corp. and others. | |
* All rights reserved. This program and the accompanying materials | |
* are made available under the terms of the Common Public License v1.0 | |
* which accompanies this distribution, and is available at | |
* http://www.eclipse.org/legal/cpl-v10.html | |
* | |
* Contributors: | |
* IBM Corporation - initial implementation | |
******************************************************************************/ | |
/* | |
* Syntactically correct Java program containing at least an instance of | |
* each different kind of construct in the Java language (1.4). | |
*/ | |
// PackageDeclaration | |
package examples.oneofeach; | |
// ImportDeclaration (single-type) | |
import java.io.Serializable; | |
// ImportDeclaration (on-demand) | |
import java.util.*; | |
/** | |
* TypeDeclaration (class) | |
*/ | |
public final class ASTPosterChild extends java.lang.Object | |
implements Serializable, ASTPosterInterface { | |
/** | |
* FieldDeclaration | |
*/ | |
public transient boolean[] f1 = {true, false}; | |
// Initializer | |
{ | |
f1 = null; | |
} | |
/** | |
* MethodDeclaration (constructor) | |
*/ | |
ASTPosterChild() { | |
// ConstructorInvocation | |
this(true); | |
} | |
/** | |
* MethodDeclaration (constructor) | |
*/ | |
ASTPosterChild(boolean flag) { | |
// SuperConstructorInvocation | |
super(); | |
} | |
/** | |
* MethodDeclaration (method) | |
*/ | |
public void op() { | |
// PrimitiveType, NumberLiteral | |
byte a = 0; | |
// BooleanLiteral | |
boolean b = true; | |
// CharacterLiteral | |
char c = 'x'; | |
short s = 1; | |
long l = 1L; | |
float f = 1.0f; | |
double d = 1e6; | |
// SimpleType, StringLiteral | |
String z = "hello";//$NON-NLS-1$ | |
// NullLiteral | |
Vector o1 = null; | |
// ArrayType, ArrayInitializer | |
int[] t1 = {1}; | |
int[][] t2 = {{1,2}, {3,4}}; | |
int[][][] t3 = null; | |
// ClassInstanceCreation | |
java.lang.Object o = new Object(); | |
// ArrayCreation (initializer) | |
Object[] o2 = new Object[]{"0", "1"};//$NON-NLS-1$//$NON-NLS-2$ | |
// ArrayCreation (dimensions) | |
Object[][] o3 = new Object[3][]; | |
// Assigment | |
o3 = null; | |
// ArrayAccess | |
Object x1 = o3[0]; | |
// CastExpression | |
Object x2 = (Object) o3; | |
// ConditionalExpression | |
int x3 = b ? 1 : 2; | |
// FieldAccess | |
Object x4 = System.out; | |
// InfixExpression | |
String x5 = "a" + "b";//$NON-NLS-1$//$NON-NLS-2$ | |
// InfixExpression (extended operands) | |
String x6 = "a" + "b" + "c" + "d";//$NON-NLS-1$//$NON-NLS-2$//$NON-NLS-3$//$NON-NLS-4$ | |
// MethodInvocation | |
notifyAll(); | |
// ParenthesizedExpression | |
Object x7 = ((o)); | |
// PostfixExpression | |
l++; | |
// PrefixExpression | |
--l; | |
// ThisExpression | |
Object x8 = ASTPosterChild.this; | |
// TypeLiteral | |
Object x9 = void.class; | |
// AssertStatement | |
// assert true: "unhappy";//$NON-NLS-1$ | |
// Block | |
{} | |
// DoStatement | |
do { | |
} while (false); | |
// VariableDeclarationStatement | |
int i; | |
// ExpressionStatement | |
i = 1; | |
// LabeledStatement | |
looping: | |
// ForStatement, VariableDeclarationExpression | |
for (int j=0; j<10; j++) { | |
// ContinueStatement | |
continue looping; | |
} | |
// IfStatement | |
if (false) | |
System.exit(0); | |
else | |
i++; | |
// SwitchStatement | |
switch (2) { | |
// SwitchCase | |
case 2: | |
// BreakStatement | |
break; | |
default: | |
// EmptyStatement | |
; | |
} | |
// SynchronizedStatement | |
synchronized (this) { | |
} | |
// TryStatement | |
try { | |
// ThrowStatement | |
throw new RuntimeException(); | |
} catch (Exception e) // CatchClause | |
{ | |
} finally { | |
} | |
// TypeDeclarationStatement | |
abstract class X { | |
int f; | |
void m() { | |
} | |
} | |
// ClassInstanceCreation (with body declarations) | |
Object anon = new X() { | |
void m() { | |
// SuperMethodInvocation | |
super.m(); | |
// SuperFieldAccess | |
super.f = 1; | |
} | |
}; | |
// WhileStatement | |
boolean b1 = true; | |
while (b1); | |
// ReturnStatement; | |
return; | |
} | |
} | |
/** | |
* TypeDeclaration (interface) | |
*/ | |
interface ASTPosterInterface { | |
String FOO = "hi";//$NON-NLS-1$ | |
void op(); | |
} |