1 30 31 32 package org.hsqldb.scriptio; 33 34 import java.io.IOException ; 35 36 import org.hsqldb.Database; 37 import org.hsqldb.HsqlException; 38 import org.hsqldb.NumberSequence; 39 import org.hsqldb.Session; 40 import org.hsqldb.Table; 41 42 49 public abstract class ScriptReaderBase { 50 51 public static ScriptReaderBase newScriptReader(Database db, String file, 52 int scriptType) throws HsqlException, IOException { 53 54 if (scriptType == ScriptWriterBase.SCRIPT_TEXT_170) { 55 return new ScriptReaderText(db, file); 56 } else if (scriptType == ScriptWriterBase.SCRIPT_BINARY_172) { 57 return new ScriptReaderBinary(db, file); 58 } else { 59 return new ScriptReaderZipped(db, file); 60 } 61 } 62 63 public static final int ANY_STATEMENT = 1; 64 public static final int DELETE_STATEMENT = 2; 65 public static final int INSERT_STATEMENT = 3; 66 public static final int SEQUENCE_STATEMENT = 4; 67 public static final int COMMIT_STATEMENT = 5; 68 public static final int SESSION_ID = 6; 69 public static final int SCHEMA_STATEMENT = 7; 70 Database db; 71 int lineCount; 72 73 String fileName; 75 76 ScriptReaderBase(Database db, 77 String file) throws HsqlException, IOException { 78 79 this.db = db; 80 fileName = file; 81 82 openFile(); 83 } 84 85 protected abstract void openFile() throws IOException ; 86 87 public void readAll(Session session) throws IOException , HsqlException { 88 readDDL(session); 89 readExistingData(session); 90 } 91 92 protected abstract void readDDL(Session session) 93 throws IOException , HsqlException; 94 95 protected abstract void readExistingData(Session session) 96 throws IOException , HsqlException; 97 98 public abstract boolean readLoggedStatement(Session session) 99 throws IOException ; 100 101 int statementType; 102 int sessionNumber; 103 Object [] rowData; 104 long sequenceValue; 105 String statement; 106 Table currentTable; 107 NumberSequence currentSequence; 108 String currentSchema; 109 110 public int getStatementType() { 111 return statementType; 112 } 113 114 public int getSessionNumber() { 115 return sessionNumber; 116 } 117 118 public Object [] getData() { 119 return rowData; 120 } 121 122 public String getLoggedStatement() { 123 return statement; 124 } 125 126 public NumberSequence getCurrentSequence() { 127 return currentSequence; 128 } 129 130 public long getSequenceValue() { 131 return sequenceValue; 132 } 133 134 public Table getCurrentTable() { 135 return currentTable; 136 } 137 138 public String getCurrentSchema() { 139 return currentSchema; 140 } 141 142 public int getLineNumber() { 143 return lineCount; 144 } 145 146 public abstract void close(); 147 } 148 | Popular Tags |