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

         

Метод, выбирающий...



Листинг 8.9. Метод, выбирающий сообщения по дате их создания (NewsFormatter.java)

// limit to only most recent entries - return number, may be zero private int limitAge(String age, PrintWriter out ){ int days = 100 ; try { days = Integer.parseInt( age );
if( days <= 0 ) days = 1 ; }catch(NumberFormatException nfe){ return itemNodes.length ; // no change } int today =(int)( System.currentTimeMillis() /( 24 * 60 * 60 * 1000));
int oldest = today - days ; Vector v = new Vector( itemNodes.length );
int nidate = today ; // in case of parse problem int i ; for( i = 0 ; i < itemNodes.length ; i++ ){ Node n = itemNodes[i]; // <Newsitem nodes String t = ((Element)n).getAttribute("timestamp");
try { nidate = Integer.parseInt( t );
}catch(Exception nfe){ // number format or null pointer System.out.println( "NewsFormatter.limitAge " + nfe );
} if( nidate >
= oldest ){ v.addElement( n );
} } itemNodes = new Node[ v.size() ]; // may be zero for( i = 0 ; i < v.size();
i++ ){ itemNodes[i] = (Node) v.elementAt(i);
} return itemNodes.length ; }

Причина сложности метода selectNodes заключается в том, что и параметр topics этого метода, задающий выбор тем сообщений, и атрибут topic каждого сообщения могут содержать как одну, так и несколько тем, разделенных запятыми. Как показано в листинге 8.10, мы строим хэш-таблицу recognize для ускорения распознавания тем.



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