Листинг 7.9. Константы и инструкции импорта в начале исходного кода класса Interpreter (Interpreter.java)
package com.XmlEcomBook.Chap07; // import org.w3c.dom.* ; import com.sun.xml.tree.* ; import java.io.*; import java.util.* ; import javax.servlet.*; import javax.servlet.http.*;
public class Interpreter { static final String brcrlf = "<br> \r\n"; static final int QMC = 1 ; static final int QMCM = 2 ;
static Hashtable typeHash = new Hashtable(); static { // static initialization block typeHash.put("QMC", new Integer( QMC )); typeHash.put("QMCM", new Integer( QMCM )); }
static int lookUpType( String type ){ Integer N = (Integer)typeHash.get( type ); if( N == null ) return 0 ; return N.intValue(); }
В листинге 7.10 приводятся переменные экземпляра и конструктор класса Interpreter. Для каждого сеанса работы пользователя создается экземпляр класса Interpreter, в котором хранится сам документ и отмечается текущая позиция пользователя в процессе его «продвижения» по анкете. Переменные nowBlock и nowNode являются ссылками на объекты, реализующие интерфейс org.w3c.dom.Node.