Docjar: A Java Source and Docuemnt Enginecom.*    java.*    javax.*    org.*    all    new    plug-in

Quick Search    Search Deep

Source code: org/projectapollo/demo/Jobs/LoggedInJob.java


1   /*
2    * LoggedInJob.java
3    *
4    */
5   
6   package org.projectapollo.demo.Jobs;
7   
8   import apollo.Job.*;
9   import apollo.Session.*;
10  import apollo.Template.*;
11  import apollo.*;
12  
13  import java.util.*;
14  
15  import org.projectapollo.demo.Storable.*;
16  
17  /**
18   *
19   * @author  kislo
20   * @version 
21   */
22  public class LoggedInJob implements Job {
23  
24  
25      /** Creates new DemoJob */
26      private double percentage;
27      private int jobID;
28      private String jobName;
29      private String error;
30      private JobResult jobResult;
31      private int status;
32      private ManagerTracker MT;
33    private Date startDate;
34    private User user;
35    private int returnFormat;
36    private int pauseTime;
37    private String extendedStatus;
38    private boolean foregroundOperation;
39    private boolean crash;
40  
41      public LoggedInJob(ManagerTracker MT, String jobName, User user, int returnFormat, int pauseTime, boolean crash) {
42      this.MT=MT;
43          this.jobName=jobName;
44      this.user=user;
45          this.percentage=0.0;
46      this.returnFormat=returnFormat;
47      this.pauseTime=pauseTime;
48      this.crash=crash;
49          status=JobManager.JOB_UNINITIALIZED;
50      }
51  
52    private void crash() throws UserException{
53      Vector a = null;
54      try {
55        a.addElement("Uh-oh, Nullpointer exception!");
56      } catch (Exception e) {
57        throw new UserException("Oh my goodness, we crashed!",e);
58      }
59    }
60  
61      public JobResult execute() throws Exception {
62  
63      //Attach this job to a UserID for tracking
64          JobMembership jm = new JobMembership(user.getUserID(), new Integer(jobID));
65      jm.insert(MT);
66  
67      status=JobManager.JOB_RUNNING;
68      extendedStatus="Fetching user list";
69          jobResult = new JobResult();
70      
71      TemplatePage mainPage;
72      TemplatePage row;
73  
74      if (returnFormat==JobMembership.RETURN_TYPE_MS_WORD) {
75        mainPage = MT.getPM().getPage("Jobs.LoggedInUsers.doc");
76        row = MT.getPM().getPage("Jobs.LoggedInUsers_Row.doc");
77        jobResult.setFilename("loggedinusers.doc");
78        jobResult.setResultTypeID(JobMembership.RETURN_TYPE_MS_WORD);
79      } else if (returnFormat==JobMembership.RETURN_TYPE_MS_EXCEL) {
80        row= MT.getPM().getPage("Jobs.LoggedInUsers_Row.xls");
81        mainPage= MT.getPM().getPage("Jobs.LoggedInUsers.xls");
82        jobResult.setFilename("loggedinusers.xls");
83        jobResult.setResultTypeID(JobMembership.RETURN_TYPE_MS_EXCEL);
84      } else if (returnFormat==JobMembership.RETURN_TYPE_HTML) {
85        row=MT.getPM().getPage("Jobs.LoggedInUsers_Row.html");
86        mainPage= MT.getPM().getPage("Jobs.LoggedInUsers.html");
87        jobResult.setResultTypeID(JobMembership.RETURN_TYPE_HTML);
88      } else {
89        row=MT.getPM().getPage("Jobs.LoggedInUsers_Row.txt");
90        mainPage=MT.getPM().getPage("Jobs.LoggedInUsers.txt");
91        jobResult.setResultTypeID(JobMembership.RETURN_TYPE_TEXT);
92      }
93  
94  
95  
96      int totalNum=0;
97      for (Enumeration e = MT.getSM().getSessions(); e.hasMoreElements();) {
98        WebSession s = (WebSession) e.nextElement();
99        if (!s.isExpired()) {
100         totalNum++;
101       }
102     }
103 
104     StringBuffer sb = new StringBuffer();
105     Hashtable RT = new Hashtable();
106     int count=0;
107     for (Enumeration e = MT.getSM().getSessions(); e.hasMoreElements();) {
108       WebSession s = (WebSession) e.nextElement();
109       if (s.isExpired()) {
110         continue;
111       }
112       count++;
113             percentage=count/totalNum;
114       extendedStatus="Fetching user number "+count;
115 
116 
117       if (percentage>.7 && crash) {
118         crash();
119       }
120       RT.put("Username", s.getValue("Username"));
121       RT.put("Idle", new Integer(s.getTimeBetweenTransactions()));
122       sb.append(row.toString(RT,null));
123       Thread.sleep(pauseTime);
124         }
125 
126 
127     RT=new Hashtable();
128     RT.put("UserRows", sb);
129     jobResult.setResult(mainPage.toString(RT, null));
130 
131         status=JobManager.JOB_FINISHED;
132         return jobResult;
133     }
134     
135     public double getPercentage() {
136         return percentage;
137     }
138     
139     public int getStatusID() {
140         return status;
141     }
142     
143   public void setStatusID(int statusID) {
144     this.status=statusID;
145   }
146     public JobResult getJobResult() {
147         return jobResult;
148     }
149     
150     public void setJobID(int jobID) {
151         this.jobID=jobID;
152     }
153     
154     public int getJobID() {
155         return jobID;
156     }
157     
158     public String getJobName() {
159         return jobName;
160     }
161     
162     public String getError() {
163         return error;
164     }
165   public void setError(String error) {
166     this.error=error;
167   }
168   public Date getStartDate() {
169     return startDate;
170   }
171 
172   public String getExtendedStatus() {
173     return extendedStatus;
174   }
175 
176   public void setStartDate(Date startDate) {
177     this.startDate=startDate;
178   }
179 }