Электронный магазин на Java и XML

         

Метод doQueryNow (XMLgrabber.java)



Листинг 9.4. Метод doQueryNow (XMLgrabber.java)

// run by external Thread to get file resident // return true if suceeds public boolean doQueryNow() throws IOException { theURL = new URL( source );
createTempXmlWriter();
grabXml();
if( !renameTemp( tfnxml, saveName )) return false ; tfnxml = null ; // now for the dtd if( dtdURL == null ) return true ; // System.out.println("Start DTD retrieval");
theURL = new URL( dtdURL );
createTempDtdWriter();
grabDtd();
boolean ret = renameTemp( tfndtd,dtdFname );
tfndtd = null ; return ret ; }

Существует несколько возможных ситуаций, в которых этот метод дает сбой: либо в случае, когда при попытке получить доступ к исходному файлу возникает исключение lOException, либо в случае неполадок с локальной файловой системой. Чтобы не загромождать локальный диск временными файлами, которые были созданы, но не прошли надлежащей обработки, для работы с файлами tfnxml и tfndtd разработана специальная методика.

Файл tfnxml создается при вызове метода createTempXmlWriter. Заметим, что если не возникнет исключительных ситуаций и переименование файла tfnxml в saveName пройдет успешно, переменная tfnxml устанавливается равной null. В противном случае метод finalize (листинг 9.9) попытается удалить временный файл. Файл tfndtd, предназначенный для загрузки DTD, проходит такую же обработку.

В листинге 9.5 показаны методы объекта XMLgrabber, которые применяются для создания и управления временными файлами.



Содержание раздела