/******************************************************************************* * Copyright (c) 2000, 2005 IBM Corporation and others. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html * * Contributors: * IBM Corporation - initial API and implementation *******************************************************************************/ import java.util.*; public class Breakpoints implements IBreakpoints { static { new Vector(1); System.out.println("Initializer"); } public class InnerBreakpoints { public void innerInstanceMethod() { System.out.println("inner instance"); } } Enumeration myNamedEnumerate(final Object array[]) { final int count[] = {0}; // final reference to mutable array class E implements Enumeration { public boolean hasMoreElements(){ return count[0] < array.length; } public Object nextElement(){ return array[count[0]++]; } } return new E(); } Enumeration myAnonymousEnumerate(final Object array[]) { return new Enumeration() { int count = 0; public boolean hasMoreElements(){ return count < array.length; } public Object nextElement(){ return array[count++]; } }; } public static void main (String[] args) { threading(); Breakpoints bp= new Breakpoints(); bp.instanceMethod(); bp.instanceMethod2(); } public class InnerRunnable implements Runnable { public void run() { System.out.println("Threading"); } } public static boolean threading() { try { Thread runner = new Thread(new Breakpoints().new InnerRunnable(), "BreakpointsThread"); runner.setPriority(Thread.MIN_PRIORITY); runner.start(); runner.join(); } catch (InterruptedException ie) { } return false; } public Breakpoints() { super(); System.out.println("Constructor"); } public void instanceMethod() { if (true) { System.out.println("If"); } else { System.out.println("Can't get here"); } if (false) { System.out.println("Can't get here"); } else { System.out.println("Else"); } int i; for (i= 0; i < 3; i++) { System.out.println("for"); } while (i < 6) { System.out.println("while"); i++; } { System.out.println("block"); } } public void instanceMethod2() { int count= 0; do { System.out.println("dowhile"); count++; } while (count < 5); try { Vector v= new Vector(1); v.firstElement(); } catch (NoSuchElementException nsee) { System.out.println("catch block"); } finally { System.out.println("finally after catch"); } try { new Vector(1); System.out.println("try"); } catch (NoSuchElementException nsee) { } finally { System.out.println("finally after try"); } switch (count) { case 5: System.out.println("switch"); break; } switch (count) { case 3: break; default: System.out.println("switch default"); } Object lock= new Object(); synchronized (lock) { System.out.println("synchronized"); } InnerBreakpoints ibp= new InnerBreakpoints(); ibp.innerInstanceMethod(); String[] array= {"1", "2", "3"}; Enumeration myNamed= myNamedEnumerate(array); myNamed.hasMoreElements(); Enumeration myAnonymous= myAnonymousEnumerate(array); myAnonymous.hasMoreElements(); ibp.innerInstanceMethod(); } }