| /******************************************************************************* | |
| * 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(); | |
| } | |
| } |