home *** CD-ROM | disk | FTP | other *** search
/ Java Developer's Companion / Java Developer's Companion.iso / documentation / tutorial / java / threads / example / SortAlgorithm.java < prev    next >
Encoding:
Text File  |  1997-07-13  |  3.0 KB  |  113 lines

  1. /*
  2.  * Copyright (c) 1995-1997 Sun Microsystems, Inc. All Rights Reserved.
  3.  *
  4.  * Permission to use, copy, modify, and distribute this software
  5.  * and its documentation for NON-COMMERCIAL purposes and without
  6.  * fee is hereby granted provided that this copyright notice
  7.  * appears in all copies. Please refer to the file "copyright.html"
  8.  * for further important copyright and licensing information.
  9.  *
  10.  * SUN MAKES NO REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF
  11.  * THE SOFTWARE, EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED
  12.  * TO THE IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A
  13.  * PARTICULAR PURPOSE, OR NON-INFRINGEMENT. SUN SHALL NOT BE LIABLE FOR
  14.  * ANY DAMAGES SUFFERED BY LICENSEE AS A RESULT OF USING, MODIFYING OR
  15.  * DISTRIBUTING THIS SOFTWARE OR ITS DERIVATIVES.
  16.  */
  17. /*
  18.  * @(#)SortAlgorithm.java    1.6f 95/01/31 James Gosling
  19.  *
  20.  * Copyright (c) 1994 Sun Microsystems, Inc. All Rights Reserved.
  21.  *
  22.  * Permission to use, copy, modify, and distribute this software
  23.  * and its documentation for NON-COMMERCIAL purposes and without
  24.  * fee is hereby granted provided that this copyright notice
  25.  * appears in all copies. Please refer to the file "copyright.html"
  26.  * for further important copyright and licensing information.
  27.  *
  28.  * SUN MAKES NO REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF
  29.  * THE SOFTWARE, EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED
  30.  * TO THE IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A
  31.  * PARTICULAR PURPOSE, OR NON-INFRINGEMENT. SUN SHALL NOT BE LIABLE FOR
  32.  * ANY DAMAGES SUFFERED BY LICENSEE AS A RESULT OF USING, MODIFYING OR
  33.  * DISTRIBUTING THIS SOFTWARE OR ITS DERIVATIVES.
  34.  */
  35.  
  36. /**
  37.  * A generic sort demonstration algorithm
  38.  * SortAlgorithm.java, Thu Oct 27 10:32:35 1994
  39.  *
  40.  * @author James Gosling
  41.  * @version     1.6f, 31 Jan 1995
  42.  */
  43.  
  44. class SortAlgorithm {
  45.     /**
  46.      * The sort item.
  47.      */
  48.     private SortItem parent;
  49.  
  50.     /**
  51.      * When true stop sorting.
  52.      */
  53.     protected boolean stopRequested = false;
  54.  
  55.     /**
  56.      * Set the parent.
  57.      */
  58.     public void setParent(SortItem p) {
  59.     parent = p;
  60.     }
  61.  
  62.     /**
  63.      * Pause for a while.
  64.      */
  65.     protected void pause() throws Exception {
  66.     if (stopRequested) {
  67.         throw new Exception("Sort Algorithm");
  68.     }
  69.     parent.pause(parent.h1, parent.h2);
  70.     }
  71.  
  72.     /**
  73.      * Pause for a while and mark item 1.
  74.      */
  75.     protected void pause(int H1) throws Exception {
  76.     if (stopRequested) {
  77.         throw new Exception("Sort Algorithm");
  78.     }
  79.     parent.pause(H1, parent.h2);
  80.     }
  81.  
  82.     /**
  83.      * Pause for a while and mark item 1 & 2.
  84.      */
  85.     protected void pause(int H1, int H2) throws Exception {
  86.     if (stopRequested) {
  87.         throw new Exception("Sort Algorithm");
  88.     }
  89.     parent.pause(H1, H2);
  90.     }
  91.  
  92.     /**
  93.      * Stop sorting.
  94.      */
  95.     public void stop() {
  96.     stopRequested = true;
  97.     }
  98.  
  99.     /**
  100.      * Initialize
  101.      */
  102.     public void init() {
  103.     stopRequested = false;
  104.     }
  105.  
  106.     /**
  107.      * This method will be called to
  108.      * sort an array of integers.
  109.      */
  110.     void sort(int[] a) throws Exception {
  111.     }
  112. }
  113.