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

         

Класс Interpreter


В классе Interpreter инкапсулирована вся работа по созданию на основе документа XML форм для вопросов. Этот класс устроен так, чтобы быть максимально гибким в отношении способов анкетирования. Хотя в данной версии поддерживаются только два типа вопросов, используемый механизм может быть легко расширен для включения в анкету других типов вопросов.

Статические методы и инструкции импорта для класса Interpreter показаны в листинге 7.9. Константы QMC и QMCM означают два допустимых в нашей версии типа вопросов: QMC — вопрос, допускающий выбор одного ответа из списка, а QMCM — вопрос, допускающий выбор нескольких ответов из списка. Рассмотрим в качестве примера код XML для вопроса о музыкальных предпочтениях, приведенный в листинге 7.8.

Листинг 7.8. Начало блока вопросов в документе XML (customersurvey.xml)

<Block name="cds" type="terminal" > <Ques type="QMCM" id="palm:1"> <Qtext>Please select all of the categories of CD that you would like to see in our catalog </Qtext> <Qopt val="0">Classical music</Qopt> <Qopt val="1">Country and Western</Qopt> <Qopt val="2">The latest Pop Groups</Qopt> <Qopt val="3">Current Rock</Qopt> <Qopt val="4">Golden Oldies Rock</Qopt> <Qopt val="5">Environmental</Qopt> <Qopt val="6">Novelty and Humor</Qopt> </Ques>

Открывающий тег Ques использует атрибут type для задания типа вопросов, в данном случае QMCM. Атрибут id является уникальным идентификатором этого вопроса.

Вместо того чтобы сравнивать строку, являющуюся значением атрибута type, с возможными типами вопросов, мы используем хэш-таблицу Hashtable и отыскиваем в ней целочисленное значение типа int, которое можно использовать в инструкции switch для выбора нужного способа представления вопроса. Эта хэш-таблица называется typeHash, а поиск в ней осуществляется с помощью метода 1 ookUpType, показанного в листинге 7.9.




Содержание  Назад  Вперед