001: /*
002: *
003: * The DbUnit Database Testing Framework
004: * Copyright (C)2002-2004, DbUnit.org
005: *
006: * This library is free software; you can redistribute it and/or
007: * modify it under the terms of the GNU Lesser General Public
008: * License as published by the Free Software Foundation; either
009: * version 2.1 of the License, or (at your option) any later version.
010: *
011: * This library is distributed in the hope that it will be useful,
012: * but WITHOUT ANY WARRANTY; without even the implied warranty of
013: * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
014: * Lesser General Public License for more details.
015: *
016: * You should have received a copy of the GNU Lesser General Public
017: * License along with this library; if not, write to the Free Software
018: * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
019: *
020: */
021: package org.dbunit.database;
022:
023: import org.slf4j.Logger;
024: import org.slf4j.LoggerFactory;
025:
026: import org.dbunit.database.statement.PreparedStatementFactory;
027: import org.dbunit.dataset.datatype.DefaultDataTypeFactory;
028:
029: import java.util.HashMap;
030: import java.util.HashSet;
031: import java.util.Map;
032: import java.util.Set;
033:
034: /**
035: *
036: * @author manuel.laflamme
037: * @since Jul 17, 2003
038: * @version $Revision: 583 $
039: */
040: public class DatabaseConfig {
041:
042: /**
043: * Logger for this class
044: */
045: private static final Logger logger = LoggerFactory
046: .getLogger(DatabaseConfig.class);
047:
048: public static final String PROPERTY_STATEMENT_FACTORY = "http://www.dbunit.org/properties/statementFactory";
049: public static final String PROPERTY_RESULTSET_TABLE_FACTORY = "http://www.dbunit.org/properties/resultSetTableFactory";
050: public static final String PROPERTY_DATATYPE_FACTORY = "http://www.dbunit.org/properties/datatypeFactory";
051: public static final String PROPERTY_ESCAPE_PATTERN = "http://www.dbunit.org/properties/escapePattern";
052: public static final String PROPERTY_TABLE_TYPE = "http://www.dbunit.org/properties/tableType";
053: public static final String PROPERTY_PRIMARY_KEY_FILTER = "http://www.dbunit.org/properties/primaryKeyFilter";
054:
055: public static final String FEATURE_QUALIFIED_TABLE_NAMES = "http://www.dbunit.org/features/qualifiedTableNames";
056: public static final String FEATURE_BATCHED_STATEMENTS = "http://www.dbunit.org/features/batchedStatements";
057: public static final String FEATURE_DATATYPE_WARNING = "http://www.dbunit.org/features/datatypeWarning";
058: public static final String FEATURE_SKIP_ORACLE_RECYCLEBIN_TABLES = "http://www.dbunit.org/features/skipOracleRecycleBinTables";
059:
060: private static final DefaultDataTypeFactory DEFAULT_DATA_TYPE_FACTORY = new DefaultDataTypeFactory();
061: private static final PreparedStatementFactory PREPARED_STATEMENT_FACTORY = new PreparedStatementFactory();
062: private static final CachedResultSetTableFactory RESULT_SET_TABLE_FACTORY = new CachedResultSetTableFactory();
063: private static final String DEFAULT_ESCAPE_PATTERN = null;
064: private static final String[] DEFAULT_TABLE_TYPE = { "TABLE" };
065:
066: private Set _featuresSet = new HashSet();
067: private Map _propertyMap = new HashMap();
068:
069: public DatabaseConfig() {
070: setFeature(FEATURE_BATCHED_STATEMENTS, false);
071: setFeature(FEATURE_QUALIFIED_TABLE_NAMES, false);
072: setFeature(FEATURE_DATATYPE_WARNING, true);
073:
074: setProperty(PROPERTY_STATEMENT_FACTORY,
075: PREPARED_STATEMENT_FACTORY);
076: setProperty(PROPERTY_RESULTSET_TABLE_FACTORY,
077: RESULT_SET_TABLE_FACTORY);
078: setProperty(PROPERTY_DATATYPE_FACTORY,
079: DEFAULT_DATA_TYPE_FACTORY);
080: setProperty(PROPERTY_ESCAPE_PATTERN, DEFAULT_ESCAPE_PATTERN);
081: setProperty(PROPERTY_TABLE_TYPE, DEFAULT_TABLE_TYPE);
082: }
083:
084: /**
085: * Set the value of a feature flag.
086: *
087: * @param name the feature id
088: * @param value the feature status
089: */
090: public void setFeature(String name, boolean value) {
091: logger.debug("setFeature(name=" + name + ", value=" + value
092: + ") - start");
093:
094: if (value) {
095: _featuresSet.add(name);
096: } else {
097: _featuresSet.remove(name);
098: }
099: }
100:
101: /**
102: * Look up the value of a feature flag.
103: *
104: * @param name the feature id
105: * @return the feature status
106: */
107: public boolean getFeature(String name) {
108: logger.debug("getFeature(name=" + name + ") - start");
109:
110: return _featuresSet.contains(name);
111: }
112:
113: /**
114: * Set the value of a property.
115: *
116: * @param name the property id
117: * @param value the property value
118: */
119: public void setProperty(String name, Object value) {
120: logger.debug("setProperty(name=" + name + ", value=" + value
121: + ") - start");
122:
123: _propertyMap.put(name, value);
124: }
125:
126: /**
127: * Look up the value of a property.
128: *
129: * @param name the property id
130: * @return the property value
131: */
132: public Object getProperty(String name) {
133: logger.debug("getProperty(name=" + name + ") - start");
134:
135: return _propertyMap.get(name);
136: }
137:
138: }
|