package com.sleepycat.je;
import java.util.Properties;
import com.sleepycat.je.config.ConfigParam;
import com.sleepycat.je.config.EnvironmentParams;
import de.ovgu.cide.jakutil.*;
/**
* Javadoc for this public class is generated
* via the doc templates in the doc_src directory.
*/
public class EnvironmentConfig extends EnvironmentMutableConfig {
static EnvironmentConfig DEFAULT=new EnvironmentConfig();
/**
* For unit testing, to prevent creating the utilization profile DB.
*/
private boolean createUP=true;
/**
* For unit testing, to prevent writing utilization data during checkpoint.
*/
private boolean checkpointUP=true;
private boolean allowCreate=false;
/**
* For unit testing, to set readCommitted as the default.
*/
private boolean txnReadCommitted=false;
/**
* Javadoc for this public method is generated via
* the doc templates in the doc_src directory.
*/
public EnvironmentConfig(){
super();
}
/**
* Javadoc for this public method is generated via
* the doc templates in the doc_src directory.
*/
public EnvironmentConfig( Properties properties) throws IllegalArgumentException {
super(properties);
}
/**
* Javadoc for this public method is generated via
* the doc templates in the doc_src directory.
*/
public void setAllowCreate( boolean allowCreate){
this.allowCreate=allowCreate;
}
/**
* Javadoc for this public method is generated via
* the doc templates in the doc_src directory.
*/
public boolean getAllowCreate(){
return allowCreate;
}
/**
* Javadoc for this public method is generated via
* the doc templates in the doc_src directory.
*/
public void setLockTimeout( long timeout) throws IllegalArgumentException {
setVal(EnvironmentParams.LOCK_TIMEOUT,Long.toString(timeout));
}
/**
* Javadoc for this public method is generated via
* the doc templates in the doc_src directory.
*/
public long getLockTimeout(){
String val=getVal(EnvironmentParams.LOCK_TIMEOUT);
long timeout=0;
try {
timeout=Long.parseLong(val);
}
catch ( NumberFormatException e) {
throw new IllegalArgumentException("Bad value for timeout:" + e.getMessage());
}
return timeout;
}
/**
* Javadoc for this public method is generated via
* the doc templates in the doc_src directory.
*/
public void setReadOnly( boolean readOnly){
setVal(EnvironmentParams.ENV_RDONLY,Boolean.toString(readOnly));
}
/**
* Javadoc for this public method is generated via
* the doc templates in the doc_src directory.
*/
public boolean getReadOnly(){
String val=getVal(EnvironmentParams.ENV_RDONLY);
return (Boolean.valueOf(val)).booleanValue();
}
/**
* Javadoc for this public method is generated via
* the doc templates in the doc_src directory.
*/
public void setTransactional( boolean transactional){
setVal(EnvironmentParams.ENV_INIT_TXN,Boolean.toString(transactional));
}
/**
* Javadoc for this public method is generated via
* the doc templates in the doc_src directory.
*/
public boolean getTransactional(){
String val=getVal(EnvironmentParams.ENV_INIT_TXN);
return (Boolean.valueOf(val)).booleanValue();
}
/**
* Javadoc for this public method is generated via
* the doc templates in the doc_src directory.
*/
public void setLocking( boolean locking){
setVal(EnvironmentParams.ENV_INIT_LOCKING,Boolean.toString(locking));
}
/**
* Javadoc for this public method is generated via
* the doc templates in the doc_src directory.
*/
public boolean getLocking(){
String val=getVal(EnvironmentParams.ENV_INIT_LOCKING);
return (Boolean.valueOf(val)).booleanValue();
}
/**
* Javadoc for this public method is generated via
* the doc templates in the doc_src directory.
*/
public void setTxnTimeout( long timeout) throws IllegalArgumentException {
setVal(EnvironmentParams.TXN_TIMEOUT,Long.toString(timeout));
}
/**
* Javadoc for this public method is generated via
* the doc templates in the doc_src directory.
*/
public long getTxnTimeout(){
String val=getVal(EnvironmentParams.TXN_TIMEOUT);
long timeout=0;
try {
timeout=Long.parseLong(val);
}
catch ( NumberFormatException e) {
throw new IllegalArgumentException("Bad value for timeout:" + e.getMessage());
}
return timeout;
}
/**
* Javadoc for this public method is generated via
* the doc templates in the doc_src directory.
*/
public void setTxnSerializableIsolation( boolean txnSerializableIsolation){
setVal(EnvironmentParams.TXN_SERIALIZABLE_ISOLATION,Boolean.toString(txnSerializableIsolation));
}
/**
* Javadoc for this public method is generated via
* the doc templates in the doc_src directory.
*/
public boolean getTxnSerializableIsolation(){
String val=getVal(EnvironmentParams.TXN_SERIALIZABLE_ISOLATION);
return (Boolean.valueOf(val)).booleanValue();
}
/**
* For unit testing, to set readCommitted as the default.
*/
void setTxnReadCommitted( boolean txnReadCommitted){
this.txnReadCommitted=txnReadCommitted;
}
/**
* For unit testing, to set readCommitted as the default.
*/
boolean getTxnReadCommitted(){
return txnReadCommitted;
}
/**
* Javadoc for this public method is generated via
* the doc templates in the doc_src directory.
*/
public void setConfigParam( String paramName, String value) throws IllegalArgumentException {
ConfigParam param=(ConfigParam)EnvironmentParams.SUPPORTED_PARAMS.get(paramName);
if (param == null) {
throw new IllegalArgumentException(paramName + " is not a valid BDBJE environment configuration");
}
setVal(param,value);
}
/**
* For unit testing, to prevent creating the utilization profile DB.
*/
void setCreateUP( boolean createUP){
this.createUP=createUP;
}
/**
* For unit testing, to prevent creating the utilization profile DB.
*/
boolean getCreateUP(){
return createUP;
}
/**
* For unit testing, to prevent writing utilization data during checkpoint.
*/
void setCheckpointUP( boolean checkpointUP){
this.checkpointUP=checkpointUP;
}
/**
* For unit testing, to prevent writing utilization data during checkpoint.
*/
boolean getCheckpointUP(){
return checkpointUP;
}
/**
* Used by Environment to create a copy of the application
* supplied configuration.
*/
EnvironmentConfig cloneConfig(){
try {
return (EnvironmentConfig)clone();
}
catch ( CloneNotSupportedException willNeverOccur) {
return null;
}
}
public String toString(){
return ("allowCreate=" + allowCreate + "\n"+ super.toString());
}
}