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

         

Различные вспомогательные...



Листинг 8.28. Различные вспомогательные функции класса NewsUpKeep (NewsUpKeep.java)

//ensure there are no leading or trailing spaces on the // individual topics, comma separated, general,food , etc private String formatTopics(String s ){ if( s.indexOf(',') < 0 ) return s.trim();
// only separator is comma StringTokenizer st = new StringTokenizer( s, "," );
StringBuffer sb = new StringBuffer( s.length() );
while( st.hasMoreTokens() ){ sb.append( st.nextToken().trim() );
if( st.hasMoreTokens() ) sb.append(',');
} return sb.toString();
} // convert system millisecs to days since epoch private String timeInDays(){ long t = System.currentTimeMillis() ; int tid = (int)(t / ( 1000 * 60 * 60 * 24 ));
return Integer.toString( tid );
} // s expected to be decimal number used in <Newsitem id= private String incrementID(String s ){ try{ int n = Integer.parseInt( s );
return Integer.toString( n + 2 );
}catch(NumberFormatException e){ return s + "a" ; } } public String toString() { StringBuffer sb = new StringBuffer("NewsUpkeep ");
sb.append(" Newsitem count: " );
sb.append( Integer.toString( itemNodes.length ));
return sb.toString();
}

Теперь мы подходим к основному рабочему методу, addltem. Сначала этот метод создает новый файл с временным именем и записывает туда стандартное объявление XML и комментарии. Затем создается тег <Newsfile>
, куда записываются имена атрибутов и их значения из коллекции rootNNM.

Как видно из листинга 8.29, атрибут nextid обрабатывается специальным образом. Сохраняется текущее значение, которое становится значением атрибута id нового элемента <Newsitem>
, а увеличенное значение записывается в тег <Newsfile>
.



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