1 8 9 package com.sleepycat.je.dbi; 10 11 import com.sleepycat.je.DatabaseException; 12 13 17 class DbEnvState { 18 private static final boolean DEBUG = false; 19 20 private String name; 21 22 23 public static final DbEnvState INIT = new DbEnvState("initialized"); 24 public static final DbEnvState OPEN = new DbEnvState("open"); 25 public static final DbEnvState CLOSED = new DbEnvState("closed"); 26 public static final DbEnvState INVALID = new DbEnvState("invalid"); 27 28 29 public static final DbEnvState[] VALID_FOR_OPEN = {INIT, CLOSED}; 30 public static final DbEnvState[] VALID_FOR_CLOSE = {INIT, OPEN, INVALID}; 31 public static final DbEnvState[] VALID_FOR_REMOVE = {INIT, CLOSED}; 32 33 DbEnvState(String name) { 34 this.name = name; 35 } 36 37 public String toString() { 38 return name; 39 } 40 41 42 void checkState(DbEnvState [] validPrevStates, 43 DbEnvState newState) 44 throws DatabaseException { 45 46 if (DEBUG) { 47 System.out.println("newState = " + newState + 48 " currentState = " + name); 49 } 50 boolean transitionOk = false; 51 for (int i = 0; i < validPrevStates.length; i++) { 52 if (this == validPrevStates[i]) { 53 transitionOk = true; 54 break; 55 } 56 } 57 if (!transitionOk) { 58 throw new DatabaseException("Can't go from environment state " + 59 toString() + 60 " to " + 61 newState.toString()); 62 } 63 } 64 } 65 | Popular Tags |