Листинг 4.20. Метод addText (ProductFormatter.java)
// заметим, что в большинстве случаев нам нужно
// значение узла
private void addText(StringBuffer sb, String name, Element el ){
Object obj = fieldHash.get( name );
if( obj == null ){
sb.append( "no " + name + " found " ); return ;
}
switch( ((Integer)obj).intValue()){
case 0 : // "id",
addID( sb, el ); break ;
case 1 : // "keywords",
case 2 : // "prname", product name
addProductName( sb, el ); break ;
case 3 : // "price"
addPrice( sb, el ); break ;
case 4 : // "author",
addAuthor( sb, el ); break ;
case 5 : // "artist",
addArtist( sb, el ); break ;
case 6 : // "description",
addExtendedText( sb, el ); break ;
case 7 : // "image",
addImageTag( sb, el ); break ;
case 8 : // "caption"
addExtendedText( sb, el ); break ;
case 9 : // "quantity_in_stock",
case 10 : // "onsale_date"
}
}
Различные методы, вызываемые методом addText, приведены в листингах 4.21 и 4.22. Эти методы извлекают тот или иной текст из элемента product и добавляют его в Stri ngBuffer.