blob: ad55aa81c6e2f3e7ba15c5e1c0da9610a1043eac [file] [log] [blame]
/*******************************************************************************
* 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();
}