Метод run класса...
Листинг 9.21. Метод run класса NetNewsSuper (NetNewsSuper.java)
// low priority - check for need to update xml public void run(){ running = true ; try { // runs when first started if( !checkSrc() ){ XMLgrabber grab = new XMLgrabber ( sourceURL, destPath, destFname );
System.out.println("NetNewsSuper runs doQueryNow");
if( !grab.doQueryNow() ){ errCt++ ; System.out.println ("NetNewsSuper.run - bad return from grab");
} } createModel();
}catch(Exception e1){ errCt++ ; } while( running ){ try { sleep( longTime );
XMLgrabber grab = new XMLgrabber ( sourceURL, destPath, destFname );
//System.out.println("NetNewsSuper.run runs doQueryNow");
if( running && grab.doQueryNow() ){ if( errCt >
0 ) errCt-- ; createModel();
} else { errCt++ ; System.out.println ("NetNewsSuper.run - bad return from grab");
} }catch(InterruptedException ie){ errCt++ ; System.err.println("NetNewsSuper.run " + ie );
}catch(Exception ee ){ errCt++ ; System.err.println("NetNewsSuper.run " + ee );
} if( errCt >
maxErrCt ){ System.out.println ("NetNewsSuper.run too many errors: " + errCt +" run exiting.");
running = false ; } } System.out.println("Leaving NetNewsSuper.run method");
}
// return true if XML source file is found private boolean checkSrc(){ File f = new File( destPath, destFname );
return (f.exists() && f.canRead());
}
В листинге 9.22 показан метод, который создает новый экземпляр класса NewsModel и затем вызывает методы экземпляра loadXML и locateCategories. В случае ошибки переменная usabl е устанавливается равной fal se.
Содержание раздела