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

Quick Search    Search Deep

Source code: jhfc/HylaFaxJobController.java


1   
2   
3   package jhfc;
4   
5   import java.util.*;
6   
7   public class HylaFaxJobController
8   {
9     private String        hylaFaxHostName;
10    private  int        hylaFaxHostPort;
11    private boolean        debug;
12    private HylaFaxJobDataModel    hjdm;
13  //  private  Vector        allParameters;
14    private Vector        parameters;
15    private String        jobFmt;
16  //  private int        jobFmtMaskParameterIndex;
17    private String        delimiter="|";
18  //  private  int        numberOfAllParameters;
19    private  int        numberOfParameters;
20    private String        columnNames[];
21  //  private int        fmtMaskIndexMap[];
22    private int        numberOfVisibleParameters=0;
23      
24    public HylaFaxJobController
25    (
26      String      hylaFaxHostName, 
27      int      hylaFaxHostPort, 
28      HylaFaxJobDataModel  hjdm, 
29      boolean      debug
30    )
31    {
32      this.hylaFaxHostName=hylaFaxHostName;
33      this.hylaFaxHostPort=hylaFaxHostPort;
34      this.hjdm=hjdm;
35      this.debug=debug;
36      parameters=new Vector();
37  //    allParameters=new Vector();
38      
39      defineJobDataModellParameters();
40  
41      createColumnNames();    
42  //    createMappingIndex();
43      
44  //int i;  
45  //System.out.println(getClass().getName()+": colnames=");    
46  //for(i=0;i<columnNames.length;i++)
47  //{
48  //  System.out.println("  "+i+" "+columnNames[i]);
49  //}
50      hjdm.setColumnNames(columnNames);
51    }
52  
53    private void addParameter
54    (
55      HylaFaxJobParameter  hylaFaxJobParameter
56    )
57    {
58  
59      // Parameter schon in der kompletten Liste?
60      int index=parameters.indexOf(hylaFaxJobParameter);
61      if(index==-1)
62      {
63        // nein
64        parameters.addElement(hylaFaxJobParameter);
65        numberOfParameters++;
66      }
67  
68      if(hylaFaxJobParameter.getIsVisibleInTable()==true)
69      {
70        numberOfVisibleParameters++;
71  /*
72        if(hylaFaxJobParameter.getFormatMask()!=null)
73        {
74          hylaFaxJobParameter.setFormatMaskIndex(numberOfParametersInJobFmt);
75          numberOfParametersInJobFmt++;
76        }
77  */      
78      }
79    }
80    
81    private void createColumnNames
82    (
83    )
84    {
85      int    i;
86      int    columnIndex=0;
87      
88      HylaFaxJobParameter  hfjp;
89          
90      columnNames=new String[numberOfVisibleParameters];
91  
92      for(i=0;i<parameters.size();i++)
93      {
94        hfjp=(HylaFaxJobParameter)parameters.elementAt(i);
95        if(hfjp.getIsVisibleInTable()==true)
96        {
97          columnNames[columnIndex]=hfjp.getDescription();
98          columnIndex++;
99        }
100     }
101   }
102 
103 /*  
104   private void createMappingIndex
105   (
106   )
107   {
108     int      i;
109     HylaFaxJobParameter  hfjp;
110     int      wi=0;
111 
112     fmtMaskIndexMap=new int[numberOfParametersInJobFmt];
113 System.out.println("numberofPar="+numberOfParameters);
114 fmtMaskIndexMap
115     
116     for(i=0;i<numberOfParameters;i++)
117     {
118       hfjp=(HylaFaxJobParameter)parameters.elementAt(i);
119       if(hfjp.getFormatMaskIndex()>=0)
120       {
121         fmtMaskIndexMap[wi]=i;
122         wi++;
123       }
124 
125     }
126 
127 //for(i=0;i<wi;i++)
128 //{
129 //System.out.println(i+":"+fmtMaskIndexMap[i]);
130 //}
131 
132   }
133 */
134 
135   private void defineJobDataModellParameters
136   (
137   )
138   {
139     HylaFaxJobParameter  hylaFaxJobParameter;
140 //    int      jobFmtMaskParameterIndex=0;
141 
142     // must be first
143     // hylafax must be compiled with support fopr old protocoll!!        
144     hylaFaxJobParameter=new HylaFaxJobParameter("SENDTIME", "Time", "%Y");
145     addParameter(hylaFaxJobParameter);
146 
147     hylaFaxJobParameter=new HylaFaxJobParameter("EXTERNAL", "Fax#", "%e");
148     addParameter(hylaFaxJobParameter);
149     
150     hylaFaxJobParameter=new HylaFaxJobParameter("TOCOMPANY", "to company", "%C");
151     addParameter(hylaFaxJobParameter);
152 
153 //    hylaFaxJobParameter=new HylaFaxJobParameter("STATE", "State", null);
154     hylaFaxJobParameter=new HylaFaxJobParameter("STATE", "State", "%a");
155     addParameter(hylaFaxJobParameter);
156 
157     hylaFaxJobParameter=new HylaFaxJobParameter("STATUS", "Last Error", "%s");
158     addParameter(hylaFaxJobParameter);
159 
160     hylaFaxJobParameter=new HylaFaxJobParameter("P", "#pages", "%P");
161     addParameter(hylaFaxJobParameter);
162 
163     hylaFaxJobParameter=new HylaFaxJobParameter("D", "#dials", "%D");
164     addParameter(hylaFaxJobParameter);
165 
166     // wenn man den owner hier löscht und weiter unten einfügt dann funktioniert
167     // resend nicht mehr und auch die FaxNr wird immer angezeigt weil
168     // der Job dann scheinbar keinen owner hat (siehe transformParameters)
169     hylaFaxJobParameter=new HylaFaxJobParameter("OWNER", "owner", null);
170     addParameter(hylaFaxJobParameter);
171 
172 //    hylaFaxJobParameter=new HylaFaxJobParameter("FROMUSER", "sender", "%S");
173 //    addParameter(hylaFaxJobParameter);
174 
175 
176 
177 
178     
179 //    hylaFaxJobParameter=new HylaFaxJobParameter("DIALSTRING", "dialstring#", "%v");
180     hylaFaxJobParameter=new HylaFaxJobParameter("DIALSTRING", "dialstring#", null);
181     addParameter(hylaFaxJobParameter);
182 
183 //    hylaFaxJobParameter=new HylaFaxJobParameter("LASTTIME", "Lasttime", "%k", false);
184     hylaFaxJobParameter=new HylaFaxJobParameter("LASTTIME", "Lasttime", null);
185     addParameter(hylaFaxJobParameter);
186 
187 //    hylaFaxJobParameter=new HylaFaxJobParameter("MAXTRIES", "max tries", "%u", false);
188     hylaFaxJobParameter=new HylaFaxJobParameter("MAXTRIES", "max tries", null);
189     addParameter(hylaFaxJobParameter);
190 
191 //    hylaFaxJobParameter=new HylaFaxJobParameter("MAXDIALS", "max dials", "%x", false);
192     hylaFaxJobParameter=new HylaFaxJobParameter("MAXDIALS", "max dials", null);
193     addParameter(hylaFaxJobParameter);
194 
195 //    hylaFaxJobParameter=new HylaFaxJobParameter("ID", "ID", "%j", true);
196     hylaFaxJobParameter=new HylaFaxJobParameter("ID", "ID", "%j");
197     addParameter(hylaFaxJobParameter);
198 
199 //    hylaFaxJobParameter=new HylaFaxJobParameter("SCHEDPRI", "prio", "%i", false);
200     hylaFaxJobParameter=new HylaFaxJobParameter("SCHEDPRI", "prio", "%i");
201     addParameter(hylaFaxJobParameter);
202 
203 //    hylaFaxJobParameter=new HylaFaxJobParameter("NOTIFYADDR", "notifAddr", "%M", false);
204     hylaFaxJobParameter=new HylaFaxJobParameter("NOTIFYADDR", "notifAddr", null);
205     addParameter(hylaFaxJobParameter);
206 
207 //    hylaFaxJobParameter=new HylaFaxJobParameter("VRES", "resolution", "%r", false);
208     hylaFaxJobParameter=new HylaFaxJobParameter("VRES", "resolution", null);
209     addParameter(hylaFaxJobParameter);
210 
211 //    hylaFaxJobParameter=new HylaFaxJobParameter("PAGEWIDTH", "page width", "%w", false);
212     hylaFaxJobParameter=new HylaFaxJobParameter("PAGEWIDTH", "page width", null);
213     addParameter(hylaFaxJobParameter);
214 
215 //    hylaFaxJobParameter=new HylaFaxJobParameter("PAGELENGTH", "page length", "%l", false);
216     hylaFaxJobParameter=new HylaFaxJobParameter("PAGELENGTH", "page length", null);
217     addParameter(hylaFaxJobParameter);
218 
219 //    hylaFaxJobParameter=new HylaFaxJobParameter("NOTIFY", "notify mode", "%n", false);
220     hylaFaxJobParameter=new HylaFaxJobParameter("NOTIFY", "notify mode", null);
221     addParameter(hylaFaxJobParameter);
222 
223 //    hylaFaxJobParameter=new HylaFaxJobParameter("PAGECHOP", "page chop handling", "%h", false);
224     hylaFaxJobParameter=new HylaFaxJobParameter("PAGECHOP", "page chop handling", null);
225     addParameter(hylaFaxJobParameter);
226 
227 //    hylaFaxJobParameter=new HylaFaxJobParameter("CHOPTHRESHOLD", "chop thres", "%U", false);
228     hylaFaxJobParameter=new HylaFaxJobParameter("CHOPTHRESHOLD", "chop thres", null);
229     addParameter(hylaFaxJobParameter);
230 
231 //    hylaFaxJobParameter=new HylaFaxJobParameter("OWNER", "owner", null);
232 //    addParameter(hylaFaxJobParameter);
233 
234 
235     createJobFmt();
236     
237 //      hylaFaxJobParameter=new HylaFaxJobParameter("LASTTIME", "Time to kill document", "%q");
238 //      addParameter(hylaFaxJobParameter);
239 
240 //      hylaFaxJobParameter=new HylaFaxJobParameter("RETRYTIME", "Time between retries", null);
241 //      addParameter(hylaFaxJobParameter);
242 
243 //      hylaFaxJobParameter=new HylaFaxJobParameter("DOCUMENT", "Document file", null);
244 //      addParameter(hylaFaxJobParameter);
245   }
246 
247   private void createJobFmt
248   (
249   )
250   {
251     String jobFmtBuf="";
252     HylaFaxJobParameter hylaFaxJobParameter;
253     
254     for(Enumeration e=parameters.elements();e.hasMoreElements();)
255     {
256       hylaFaxJobParameter=(HylaFaxJobParameter)e.nextElement();
257 
258       if(hylaFaxJobParameter.getFormatMask()!=null)
259       {
260         if(jobFmtBuf.equals(""))
261         {
262           jobFmtBuf=hylaFaxJobParameter.getFormatMask();
263         }
264         else
265         {
266           jobFmtBuf=jobFmtBuf+delimiter+hylaFaxJobParameter.getFormatMask();
267         }
268       }
269     }
270 
271     jobFmt=jobFmtBuf;
272   }
273   
274   public int getIndexOfParameter
275   (
276     String    parameterName
277   )
278   {
279     HylaFaxJobParameter hpm=new HylaFaxJobParameter(parameterName, "x", "x");
280 
281     int index=parameters.indexOf(hpm);
282     return(index);
283   }
284 
285   public boolean userIsAuthorized
286   (
287     HylaFaxConnectionManager  hfcm, 
288     int        jobID, 
289     String        user
290   )
291   throws java.io.IOException, jhfc.ProtocollException
292   {
293     hfcm.command("JOB "+jobID);
294     String jobOwner=hfcm.command("JPARM OWNER");
295     hfcm.command("JOB DEFAULT");
296 
297     jobOwner=jobOwner.trim().substring(4);
298 
299     if(jobOwner!=null)
300     {
301 //System.out.print("ID="+jobID+" jo='"+jobOwner+"', user='"+FaxSetup.account+"'");
302       if(FaxSetup.account.equals(jobOwner))
303       {
304         return(true);
305       }
306     }
307 
308     return(false);
309   }
310   
311   public String getFileName
312   (
313     HylaFaxConnectionManager  hfcm, 
314     int        jobID
315   )
316   throws java.io.IOException, 
317     jhfc.ProtocollException
318   {
319     hfcm.command("JOB "+jobID);
320     String result=hfcm.command("JPARM DOCUMENT");
321     return(result.substring(7));
322   }
323   
324   private void retrieveAdditionalJobParametersFromServer
325   (
326     HylaFaxConnectionManager  hfcm, 
327     HylaFaxJob      job
328   )
329   {
330     HylaFaxJobParameter  hylaFaxJobParameter;
331     String      parameterName;
332     String      value;
333 
334     try
335     {    
336       hfcm.command("JOB "+job.getID());
337 
338       for(Enumeration e=parameters.elements();e.hasMoreElements();)
339       {
340         hylaFaxJobParameter=(HylaFaxJobParameter)e.nextElement();
341 
342         if(hylaFaxJobParameter.getFormatMask()==null)
343         {
344           parameterName=hylaFaxJobParameter.getName();
345           value=hfcm.command("JPARM "+parameterName).substring(4);
346 /*
347           if(parameterName.equals("SENDTIME"))
348           {
349             // 00000000001111
350             // 01234567890123
351             // 20000102123456
352             // JJJJMMDDhhmmss
353 //System.out.println("1.value='"+value+"'");          
354             value=value.substring(8, 10)+":"+
355               value.substring(10, 12)+" "+
356               value.substring(6, 8)+"."+
357               value.substring(4, 6)+"."+
358               value.substring(2, 4);
359             
360 //System.out.println("2.value='"+value+"'");          
361 //System.exit(0);
362           }
363 */
364 
365           job.setParameter(parameterName, value);
366         }
367       }
368     }
369     catch (java.io.IOException ex)
370     {
371       System.out.println(getClass().getName()+": "+ex+" "+ex.getMessage());
372       ex.printStackTrace();
373     }
374     catch (jhfc.ProtocollException ex)
375     {
376       System.out.println(getClass().getName()+": "+ex+" "+ex.getMessage());
377       ex.printStackTrace();
378     }
379   }
380 
381   public void resendJob
382   (
383     HylaFaxConnectionManager  hfcm, 
384     int        jobID
385   )
386   throws  java.io.IOException, 
387     jhfc.ProtocollException
388   {
389     String  name;
390     
391     if(jobID>0)
392     {
393       hfcm.command("JOB "+jobID);
394 
395       String fileNameOnServer="";
396 
397       try
398       {
399         fileNameOnServer=getFileName(hfcm, jobID);
400       }
401       catch (java.lang.NullPointerException ex)
402       {
403         return;
404       }
405 
406 
407 
408       HylaFaxJob    hfj=new HylaFaxJob(this, numberOfParameters);
409       String       value;
410       HylaFaxJobParameter  hfjp;
411       int      i;
412 
413       // get parameters of source-job            
414       for(i=0;i<numberOfParameters;i++)
415       {
416         value=null;
417         try
418         {
419           hfjp=(HylaFaxJobParameter)parameters.elementAt(i);
420 //System.out.println("JPARM "+hfjp.getName());
421           value=hfcm.command("JPARM "+hfjp.getName()).substring(4);
422 //System.out.println("value="+value);
423           hfj.setParameter(hfjp.getName(), value);
424         }
425         catch (jhfc.ProtocollException ex)
426         {
427           System.out.println("ex="+ex+": "+ex.getMessage());
428         }
429 //System.out.println("value="+value);        
430       }
431 
432       String fileName=this.getFileName(hfcm, jobID);
433       
434 System.out.println("hfj="+hfj);      
435       String owner=hfj.getHylaFaxJobParameterValue("OWNER");
436 System.out.println("owner="+owner);      
437       String user=FaxSetup.account;
438 System.out.println("user="+user);
439       if(user.trim().equals(owner.trim()))
440       {
441         // own job!
442         // submit new job based on source job
443 
444         hfcm.command("JOB DEFAULT");
445         hfcm.command("JNEW");
446         // get parameters of source-job            
447         for(i=0;i<numberOfParameters;i++)
448         {
449           try
450           {
451             value=hfj.getHylaFaxJobParameterValue(i);
452             hfjp=(HylaFaxJobParameter)parameters.elementAt(i);
453             name=hfjp.getName();
454 System.out.println("name="+name);
455             if((!name.equals("SENDTIME"))&&
456               (!name.equals("STATE"))&&
457               (!name.equals("STATUS"))&&
458               (!name.equals("P"))&&
459               (!name.equals("OWNER"))&&
460               (!name.equals("LASTTIME"))&&
461               (!name.equals("ID"))&&
462               (!name.equals("D")))
463             {
464 System.out.println("value="+value);
465               hfcm.command("JPARM "+name+" "+value);
466             }
467             else if(name.equals("LASTTIME"))
468             {
469               hfcm.command("JPARM LASTTIME 000259");
470             }
471           }
472           catch (jhfc.ProtocollException ex)
473           {
474             System.out.println("ex="+ex+": "+ex.getMessage());
475           }
476         }
477         hfcm.command("JPARM DOCUMENT "+fileName);
478         hfcm.command("JSUBM");
479       }
480       else
481       {
482         return;
483         // throw "operation not permitted: not owner!"
484 /*        
485         JOptionPane.showMessageDialog(
486           null,
487           "you are not the owner of this job", 
488           "JHFC",
489 //          JOptionPane.INFORMATION_MESSAGE);
490           JOptionPane.ERROR_MESSAGE);
491 */
492 
493       }
494       
495       
496       
497 /*
498       hfcm.command("JPARM FROMUSER "+fromUser);
499       hfcm.command("JPARM LASTTIME 000259");
500       hfcm.command("JPARM MAXDIALS 6");
501       hfcm.command("JPARM MAXTRIES 3");
502       hfcm.command("JPARM SCHEDPRI 127");
503       hfcm.command("JPARM DIALSTRING "+externalDialstring);
504       hfcm.command("JPARM NOTIFYADDR "+notifyAddress);
505       hfcm.command("JPARM VRES 98");
506       hfcm.command("JPARM PAGEWIDTH 209");
507       hfcm.command("JPARM PAGELENGTH 296");
508       hfcm.command("JPARM NOTIFY none");
509       hfcm.command("JPARM PAGECHOP default");
510       hfcm.command("JPARM CHOPTHRESHOLD 3");
511       hfcm.command("JPARM DOCUMENT "+fileNameOnServer);
512 */              
513     }
514   }
515   
516           
517 /*
518   public HylaFaxJob getJobFromServer
519   (
520     HylaFaxConnectionManager  hfcm, 
521     int        jobID
522   )
523   {
524     int  i;
525 
526     for(i=0;i<numberOfAllParameters;i++)
527     {
528 System.out.println(allParameters.elementAt(i)+" ");
529     }
530     return(null);
531   }
532 */  
533 
534   private boolean displayDestination
535   (
536     String  owner, 
537     String  sendersIdentity
538   )
539   {
540     if(owner.equals(FaxSetup.account))
541     {
542       return(true);
543     }
544 
545     if(sendersIdentity.equals(FaxSetup.account))
546     {
547       return(true);
548     }
549 
550     return(false);
551   }
552   
553   private boolean displayJob
554   (
555     String  tts, 
556     int  timespan, 
557     String  status, 
558     String  owner, 
559     String  sendersIdentity
560   )
561   {
562     int        yearSendtimeJob;
563     int        monthSendtimeJob;
564     int        daySendtimeJob;
565     Calendar      calendarDisplaySince;
566     Calendar      calendarSendtimeJob;
567     Date        now;
568     boolean        jobIsInTimespan;
569     
570     now=new Date();
571     calendarDisplaySince=Calendar.getInstance();
572     calendarSendtimeJob=Calendar.getInstance();
573     
574     calendarDisplaySince.setTime(now);
575     calendarDisplaySince.add(Calendar.DATE, -timespan);
576 
577     jobIsInTimespan=false;
578     
579     try
580     {
581       yearSendtimeJob=Integer.parseInt(tts.substring(0,4));
582       monthSendtimeJob=Integer.parseInt(tts.substring(5,7));
583       daySendtimeJob=Integer.parseInt(tts.substring(8,10));
584 
585       calendarSendtimeJob.set(
586         yearSendtimeJob, 
587         monthSendtimeJob-1, 
588         daySendtimeJob, 0, 0, 0);
589 //System.out.println("a="+calendarDisplaySince);
590 //System.out.println("b="+calendarSendtimeJob);
591 //System.out.println(calendarDisplaySince.get(Calendar.DAY_OF_MONTH)+"."+(calendarDisplaySince.get(Calendar.MONTH)+1));
592 //System.out.println(calendarSendtimeJob.get(Calendar.DAY_OF_MONTH)+"."+(calendarSendtimeJob.get(Calendar.MONTH)+1));
593 //System.exit(0);
594       if(calendarDisplaySince.before(calendarSendtimeJob))
595       {
596         jobIsInTimespan=true;
597       }
598     }
599     catch (NumberFormatException ex)
600     {
601       jobIsInTimespan=true;
602     }
603 
604 
605     if(jobIsInTimespan==false)
606     {
607       return(false);
608     }
609 
610 
611     if(!status.equals("D"))
612     {
613       return(true);
614     }
615 
616     if(displayDestination(owner, sendersIdentity))
617     {
618       return(true);
619     }
620 
621     return(false);
622   }
623 
624   private void transformParameterValues
625   (
626     HylaFaxJob  hfj, 
627     String    owner, 
628     String    sendersIdentity
629   )
630   {
631     HylaFaxJobParameter  hfjp;
632     int      i;
633     String      newValue;
634     String      oldValue;
635 
636     for(i=0;i<parameters.size();i++)
637     {
638       hfjp=(HylaFaxJobParameter)parameters.elementAt(i);
639 
640       if(hfjp.getName().equals("STATE"))
641       {
642         oldValue=hfj.getHylaFaxJobParameterValue(i);
643         newValue=oldValue;
644 
645         if(oldValue.equals("D")) newValue="DONE";
646         else if(oldValue.equals("S")) newValue="SUSPENDED";
647         else if(oldValue.equals("P")) newValue="PENDING";
648         else if(oldValue.equals("S")) newValue="SLEEPING";
649         else if(oldValue.equals("B")) newValue="BLOCKED";
650         else if(oldValue.equals("R")) newValue="READY";
651         else if(oldValue.equals("A")) newValue="ACTIVE";
652         else if(oldValue.equals("W")) newValue="WAITING";
653         else if(oldValue.equals("U")) newValue="UNDEFINED";
654 
655         hfj.setParameter(i, newValue);
656         break;
657       }
658       else if ((hfjp.getName().equals("SENDTIME")))
659       {
660         oldValue=hfj.getHylaFaxJobParameterValue(i);
661 //System                
662         hfj.setParameter(i, 
663           oldValue.substring(0,4)+"-"+
664           oldValue.substring(5,7)+"-"+
665           oldValue.substring(8,10)+" "+
666           oldValue.substring(11,13)+":"+
667           oldValue.substring(14,16)+":"+
668           oldValue.substring(17,19)
669           );
670       }
671 
672     }
673 
674 /*    
675     for(i=0;i<parameters.size();i++)
676     {
677       hfjp=(HylaFaxJobParameter)parameters.elementAt(i);
678 //System.out.println("param="+hfjp.getName());
679       if(hfjp.getName().equals("OWNER"))
680       {
681         oldValue=hfj.getHylaFaxJobParameterValue(i);
682 //System.out.println("owner="+oldValue);
683         if(oldValue!=null)
684         {
685           if(!oldValue.equals(FaxSetup.account))
686           {
687             hfj.setParameter("EXTERNAL", "");
688             hfj.setParameter("TOCOMPANY", "");
689           }
690         }
691       }
692     }
693 */
694     if(!displayDestination(owner, sendersIdentity))
695     {
696       hfj.setParameter("EXTERNAL", "");
697       hfj.setParameter("TOCOMPANY", "");
698     }
699   }
700 
701   
702   private void readQueue
703   (
704     HylaFaxConnectionManager  hfcm, 
705     Vector        jobs, 
706     String        queueName, 
707     int        timespan
708   )
709   {
710     HylaFaxJob      newJob;
711     int        index;
712     HylaFaxJobParameter    hylaFaxJobParameter;
713     String        tts;
714 //    int        indexCash;
715     String        status;
716     String        owner;
717     String        dummy;
718     String        sendersIdentity;
719         
720     try
721     {
722       String sendq=hfcm.list(queueName);
723       StringTokenizer st=new StringTokenizer(sendq, "\n");
724 
725       while(st.hasMoreTokens())
726       {
727         newJob=new HylaFaxJob(this, numberOfParameters);
728         
729 
730         String s=st.nextToken();
731         s=s.trim();
732 //System.out.println("s="+s);
733 
734         StringTokenizer stJobFmt=new StringTokenizer(
735           s, 
736           delimiter, 
737           true);
738           
739 
740         try
741         {
742           String paramValue=stJobFmt.nextToken();
743           if(stJobFmt.hasMoreTokens())
744           {
745             stJobFmt.nextToken();
746           }
747 
748           int id=Integer.parseInt(paramValue);
749           newJob.setID(id);
750 System.out.println("*ID="+id);
751 
752           status=stJobFmt.nextToken();
753           dummy=stJobFmt.nextToken();
754 
755           owner=stJobFmt.nextToken();
756           dummy=stJobFmt.nextToken();
757 //System.out.println("stat="+status+" owner="+owner);
758 
759           sendersIdentity=stJobFmt.nextToken();
760 //System.out.println("sendersIdentity="+sendersIdentity);
761           dummy=stJobFmt.nextToken();
762 
763 
764           // TTS must be next
765           tts=stJobFmt.nextToken();
766 //System.out.println("tts="+tts);
767 
768           
769           if(displayJob(tts, timespan, status, owner, sendersIdentity)==false)
770           {
771             continue;
772           }
773 
774           newJob.setParameter(0, tts);
775           
776           paramValue=stJobFmt.nextToken();
777 
778           index=1;
779           while (stJobFmt.hasMoreTokens())
780           {
781             paramValue=stJobFmt.nextToken();
782 //            indexCash=fmtMaskIndexMap[index];
783 //System.out.println("value='"+paramValue+"', index="+index);
784 
785             if(paramValue.equals(delimiter))
786             {
787               if(index!=0)
788               {
789                 newJob.setParameter(index, "");
790               }
791             }
792             else
793             {
794               newJob.setParameter(index, paramValue);
795 
796               if(stJobFmt.hasMoreTokens())
797               {
798                 stJobFmt.nextToken();
799               }
800             }
801 
802             
803             index++;
804           }
805 
806           transformParameterValues(newJob, owner, sendersIdentity);
807           jobs.addElement(newJob);
808         }
809         catch (java.lang.NumberFormatException ex)
810         {
811           System.out.println(getClass().getName()+": "+ex+" "+ex.getMessage()+" data="+s);
812           continue;
813         }
814 /*xxxxxxxx
815         catch (NoSuchElementException ex)
816         {
817           System.out.println(getClass().getName()+": "+ex+" "+ex.getMessage()+" data="+s);
818           continue;
819         }
820 */        
821       }
822     }
823     catch (java.io.IOException ex)
824     {
825       System.out.println(getClass().getName()+": Exception="+ex+" getMessage()="+ex.getMessage());
826     }
827     catch (jhfc.ProtocollException ex)
828     {
829       System.out.println(getClass().getName()+": Exception="+ex+" getMessage()="+ex.getMessage());
830     }
831   }
832   
833   public void retrieveAllJobsFromServer
834   (
835     int  timespan
836   )
837   throws java.io.IOException
838   {
839     HylaFaxJob      newJob;
840     Vector        jobs=new Vector();
841     HylaFaxConnectionManager  hfcm=null;
842         
843 //    try
844 //    {
845       hfcm=new HylaFaxConnectionManager(hylaFaxHostName, hylaFaxHostPort, false);
846       try
847       {
848         hfcm.openConnection();
849 
850         // Wird ein Passwort benoetigt?
851         if(hfcm.login(FaxSetup.account)==HylaFaxConnectionManager.NEEDS_PASSWD)
852         {
853           System.out.println(getClass().getName()+": Password wird benötigt");
854 //          hfcm.command("PASS " + ipd.in.getText());
855         }
856 
857       }
858       catch (java.io.IOException ex)
859       {
860         synchronized (jobs)
861         {
862           hjdm.setJobs(null);
863         }
864         throw ex;
865       }
866       catch (jhfc.ProtocollException ex)
867       {
868         System.out.println(getClass().getName()+".retrieveAllJobsFromServer(): "+ex+" message="+ex.getMessage());
869         return;
870       }
871 
872 
873 
874       HylaFaxJob xJob=new HylaFaxJob(this, numberOfParameters);
875         
876       String jobFMT="JOBFMT %j"+delimiter+"%a"+delimiter+"%o"+delimiter+"%S"+delimiter+jobFmt;
877 //System.out.println(getClass().getName()+": "+jobFMT);
878 
879       try
880       {        
881         hfcm.command(jobFMT);
882 //        hfcm.command("IDLE 900");
883         hfcm.command("TZONE LOCAL");
884       
885         readQueue(hfcm, jobs, "sendq", timespan);
886         readQueue(hfcm, jobs, "doneq", timespan);
887 
888         hfcm.logout();
889         hfcm.closeConnection();
890 
891         synchronized (jobs)
892         {
893           hjdm.setJobs(jobs);
894         }
895       }
896       catch (java.io.IOException ex)
897       {
898         synchronized (jobs)
899         {
900           hjdm.setJobs(null);
901         }
902         throw ex;
903       }
904       catch (jhfc.ProtocollException ex)
905       {
906         System.out.println(getClass().getName()+".retrieveAllJobsFromServer(): "+ex+" message="+ex.getMessage());
907         return;
908       }
909 /*
910     }
911     catch (Exception ex1)
912     {
913       System.out.println(getClass().getName()+": Exception="+ex1+" getMessage()="+ex1.getMessage());
914       Thread.dumpStack();
915 
916       if(ex1 instanceof ProtocollException ||
917          ex1 instanceof java.net.SocketException ||
918          ex1 instanceof java.net.UnknownHostException )
919       {
920         try
921         {
922           if(hfcm!=null)
923           {
924             hfcm.closeConnection();
925           }
926         }
927         catch (Exception ex2)
928         {
929         }
930         hfcm=null;
931       }
932     }
933     */
934   }
935 }