/**
* Copyright (C) 2009-2013 FoundationDB, LLC
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package com.foundationdb.sql.optimizer.rule;
import java.util.Properties;
public class PipelineConfiguration
{
private boolean mapEnabled = false;
private int indexScanLookaheadQuantum = 1;
private int groupLookupLookaheadQuantum = 1;
private boolean unionAllOpenBoth = false;
private boolean selectBloomFilterEnabled = false;
public PipelineConfiguration() {
}
public PipelineConfiguration(Properties properties) {
load(properties);
}
public boolean isMapEnabled() {
return mapEnabled;
}
public int getIndexScanLookaheadQuantum() {
return indexScanLookaheadQuantum;
}
public int getGroupLookupLookaheadQuantum() {
return groupLookupLookaheadQuantum;
}
public boolean isUnionAllOpenBoth() {
return unionAllOpenBoth;
}
public boolean isSelectBloomFilterEnabled() {
return selectBloomFilterEnabled;
}
public void load(Properties properties) {
for (String prop : properties.stringPropertyNames()) {
String val = properties.getProperty(prop);
if ("map.enabled".equals(prop))
mapEnabled = Boolean.parseBoolean(val);
else if ("indexScan.lookaheadQuantum".equals(prop))
indexScanLookaheadQuantum = Integer.parseInt(val);
else if ("groupLookup.lookaheadQuantum".equals(prop))
groupLookupLookaheadQuantum = Integer.parseInt(val);
else if ("unionAll.openBoth".equals(prop))
unionAllOpenBoth = Boolean.parseBoolean(val);
else if ("selectBloomFilter.enabled".equals(prop))
selectBloomFilterEnabled = Boolean.parseBoolean(val);
else
throw new IllegalArgumentException("Unknown property " + prop);
}
}
}