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

         

Метод genQuest (Interpreter-Java)



Листинг 7.12. Метод genQuest (Interpreter-Java)

public void genQuest( PrintWriter out ){ Element E = (Element) nowNode ; String qid = E.getAttribute("id") ; String type = E.getAttribute("type");
String lim = E.getAttribute("limit");
// out.print("Question id: " + qid + " type: " + type + brcrlf );
writeHead( out );
NodeList nm = E.getElementsByTagName("Qtext");
out.print( nm.item(0).getFirstChild().getNodeValue() );
out.println(brcrlf );
NodeList opm = E.getElementsByTagName("Qopt");
int optCt = opm.getLength();
int typeN = lookUpType( type );
switch( typeN ){ case QMC : out.print("Choose one");
break ; case QMCM : if( lim.length() == 0 ){ out.print("Choose any number");
} else { out.print("Choose up to " + lim );
} break ; default : out.print("Unknown type");
} out.print( brcrlf );
startForm( out );
// creates <form... for( int i = 0 ; i < optCt ; i++ ){ doOption(out, opm.item(i), typeN );
} endForm( out, qid );
}

Метод genQuest в предыдущем листинге вызывает метод doOption (листинг 7.13) для каждого элемента <Qopt>
. Если вы захотите добавить дополнительные типы ответов, например поле для ввода текста, вам потребуется модифицировать именно этот метод. В этом листинге также показан метод checkBl ockType, который используется для проверки атрибутов элемента Block.



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