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