home *** CD-ROM | disk | FTP | other *** search
/ CD Actual Thematic 7: Programming / CDAT7.iso / Share / Java / JDesignerPro / Jdp3_0.exe / data1.cab / Program_Files / JDPSubsystem.class (.txt) < prev    next >
Encoding:
Java Class File  |  1999-04-09  |  3.0 KB  |  134 lines

  1. import java.util.Hashtable;
  2. import java.util.Vector;
  3.  
  4. public class JDPSubsystem extends Thread {
  5.    JDPSubsystemMgr manager;
  6.    ThreadGroup thisThreadGroup;
  7.    Hashtable info;
  8.    Vector jobs;
  9.  
  10.    public JDPSubsystem(JDPSubsystemMgr var1, String var2) {
  11.       super(var1.mainThreadGroup, var2);
  12.       this.manager = var1;
  13.       this.thisThreadGroup = new ThreadGroup(var1.mainThreadGroup, var2);
  14.       this.info = new Hashtable();
  15.       this.jobs = new Vector();
  16.       this.setSubsystemName(var2);
  17.    }
  18.  
  19.    public void run() {
  20.       while(!this.manager.shutdownRequested) {
  21.          try {
  22.             Thread.sleep(60000L);
  23.          } catch (Exception var1) {
  24.          }
  25.       }
  26.  
  27.    }
  28.  
  29.    public String getSubsystemName() {
  30.       return (String)this.info.get("SubsystemName");
  31.    }
  32.  
  33.    public void setSubsystemName(String var1) {
  34.       this.info.put("SubsystemName", var1);
  35.    }
  36.  
  37.    public String getSubsystemDesc() {
  38.       return (String)this.info.get("SubsystemDesc");
  39.    }
  40.  
  41.    public void setSubsystemDesc(String var1) {
  42.       this.info.put("SubsystemDesc", var1);
  43.    }
  44.  
  45.    public int getActiveJobCount() {
  46.       return this.jobs.size();
  47.    }
  48.  
  49.    public int getMaxJobs() {
  50.       return (Integer)this.info.get("Maxjobs");
  51.    }
  52.  
  53.    public void setMaxJobs(int var1) {
  54.       this.info.put("Maxjobs", new Integer(var1));
  55.    }
  56.  
  57.    public boolean getSubsystemHeld() {
  58.       return (Boolean)this.info.get("SubsystemHeld");
  59.    }
  60.  
  61.    public void setSubsystemHeld(boolean var1) {
  62.       this.info.put("SubsystemHeld", new Boolean(var1));
  63.  
  64.       for(int var2 = 0; var2 < this.jobs.size(); ++var2) {
  65.          JDPJob var3 = (JDPJob)this.jobs.elementAt(var2);
  66.          if (var1) {
  67.             var3.getActiveJob().suspend();
  68.             var3.setJobStatus(5);
  69.          } else {
  70.             var3.getActiveJob().resume();
  71.             var3.setJobStatus(4);
  72.          }
  73.       }
  74.  
  75.    }
  76.  
  77.    public boolean submitJob(JDPJob var1) {
  78.       if (this.getMaxJobs() != 0 && this.getMaxJobs() <= this.getActiveJobCount()) {
  79.          return false;
  80.       } else {
  81.          var1.setSubsystem(this.getSubsystemName());
  82.          var1.setJobStatus(4);
  83.          this.jobs.addElement(var1);
  84.          return this.startJob(var1);
  85.       }
  86.    }
  87.  
  88.    private boolean startJob(JDPJob var1) {
  89.       JDPActiveJob var2 = new JDPActiveJob(this, var1);
  90.       var1.setActiveJob(var2);
  91.       ((Thread)var2).start();
  92.       ((Thread)var2).setPriority(var1.getJobPriority());
  93.       return true;
  94.    }
  95.  
  96.    public boolean setJobComplete(JDPJob var1) {
  97.       boolean var2 = this.jobs.removeElement(var1);
  98.       this.manager.queueMgr.reOrderQueue();
  99.       return var2;
  100.    }
  101.  
  102.    public boolean holdJob(int var1) {
  103.       JDPJob var2 = this.getJob(var1);
  104.       return var2 != null && var2.setJobStatus(5);
  105.    }
  106.  
  107.    public boolean releaseJob(int var1) {
  108.       JDPJob var2 = this.getJob(var1);
  109.       return var2 != null && var2.setJobStatus(4);
  110.    }
  111.  
  112.    public JDPJob getJob(int var1) {
  113.       for(int var2 = 0; var2 < this.jobs.size(); ++var2) {
  114.          JDPJob var3 = (JDPJob)this.jobs.elementAt(var2);
  115.          if (var3.getJobNumber() == var1) {
  116.             return var3;
  117.          }
  118.       }
  119.  
  120.       return null;
  121.    }
  122.  
  123.    public JDPJob getJob(String var1) {
  124.       for(int var2 = 0; var2 < this.jobs.size(); ++var2) {
  125.          JDPJob var3 = (JDPJob)this.jobs.elementAt(var2);
  126.          if (var3.getJobName().equals(var1)) {
  127.             return var3;
  128.          }
  129.       }
  130.  
  131.       return null;
  132.    }
  133. }
  134.