FlexOr.searchAndSort
Class SortObservable

java.lang.Object
  extended by java.util.Observable
      extended by FlexOr.searchAndSort.SortObservable
All Implemented Interfaces:
java.lang.Runnable
Direct Known Subclasses:
BubbleObs, HeapsortObs, InsertObs, MergeObs, QuicksortObs, SelectionObs

public abstract class SortObservable
extends java.util.Observable
implements java.lang.Runnable

An observable sort of an array of objects using selection sort, including a runnable interface.

Version:
1.0 1999 Jan 15
Author:
Gunnar Gotshalks

Field Summary
 java.lang.Object[] sortArray
          The array of objects to sort.
 
Constructor Summary
SortObservable(java.lang.Object[] array, BinaryPredicate bp)
          Store pointers to the array locally.
 
Method Summary
abstract  void execute(java.lang.Object[] array, BinaryPredicate bp)
          Abstract sort routine to be provided for observation.
 void run()
          Do the sort.
 void start()
          Runnable interface start method to create a thread for each object of this class.
 boolean step()
          Advance to next comparison or swap.
 
Methods inherited from class java.util.Observable
addObserver, countObservers, deleteObserver, deleteObservers, hasChanged, notifyObservers, notifyObservers
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

sortArray

public java.lang.Object[] sortArray
The array of objects to sort.

Constructor Detail

SortObservable

public SortObservable(java.lang.Object[] array,
                      BinaryPredicate bp)
Store pointers to the array locally. Need this as neither start nor run should have these paramters to conform to the Thread model.

Method Detail

start

public void start()
Runnable interface start method to create a thread for each object of this class.


step

public boolean step()
Advance to next comparison or swap. Observable sorts wait at each comparison and swap so the user can study pictures at their speed.


run

public void run()
Do the sort. After sorting sortThread is set to null so the test can be restarted. Also nottify observers with end of data flags of -1.

Specified by:
run in interface java.lang.Runnable

execute

public abstract void execute(java.lang.Object[] array,
                             BinaryPredicate bp)
Abstract sort routine to be provided for observation.