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

         

Метод run и другие...



Листинг 7.42. Метод run и другие служебные методы (DOMIibrary.java)

// run is used for upkeep, not reading XML public void run() { while( running ){ try{ Thread.sleep( 60000 );
// example management code Enumeration keys = trackerHash.keys();
long time = System.currentTimeMillis();
while( keys.hasMoreElements() ){ String key = (String) keys.nextElement();
if(((DomTracker)trackerHash.get(key)).getAge(time) >
maxAge ){ removeDOM( key );
} } }catch(InterruptedException e){ } }// end while } public String getLastErr(){ return lastErr ; } public String toString() { StringBuffer sb = new StringBuffer("DOMlibrary contains ");
int ct = domHash.size();
if( ct >
0 ){ sb.append(Integer.toString( ct ) );
sb.append( " DOM objects ");
Enumeration e = domHash.keys();
while( e.hasMoreElements() ){ String key = (String)e.nextElement();
sb.append( key );
sb.append(" " );
} } else { sb.append("no DOM objects");
} sb.append(" Last error: " );
sb.append( lastErr );
return sb.toString();
}

Экземпляр внутреннего класса DOMTracker создается всякий раз, когда загружается документ XML. Этот экземпляр подвергается обработке параллельно с самим объектом document. В нынешней версии нас интересуют только два параметра: время, когда документ XML был создан, и время, когда последний раз поступал запрос на этот документ. Как показано в листинге 7.43, метод getAge возвращает время в секундах, прошедшее с момента последнего использования документа, а метод changed проверяет время создания или последней модификации исходного файла.



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