/*
* JBoss, Home of Professional Open Source.
* See the COPYRIGHT.txt file distributed with this work for information
* regarding copyright ownership. Some portions may be licensed
* to Red Hat, Inc. under one or more contributor license agreements.
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* This library 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
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
* 02110-1301 USA.
*/
package org.teiid.query.util;
import java.util.Properties;
import org.teiid.translator.ExecutionFactory.NullOrder;
/**
* A holder for options
*/
public class Options {
public static final String UNNEST_DEFAULT = "org.teiid.subqueryUnnestDefault"; //$NON-NLS-1$
public static final String PUSHDOWN_DEFAULT_NULL_ORDER = "org.teiid.pushdownDefaultNullOrder"; //$NON-NLS-1$
public static final String IMPLICIT_MULTISOURCE_JOIN = "org.teiid.implicitMultiSourceJoin"; //$NON-NLS-1$
public static final String JOIN_PREFETCH_BATCHES = "org.teiid.joinPrefetchBatches"; //$NON-NLS-1$
public static final String SANITIZE_MESSAGES = "org.teiid.sanitizeMessages"; //$NON-NLS-1$
public static final String REQUIRE_COLLATION = "org.teiid.requireTeiidCollation"; //$NON-NLS-1$
public static final String DEFAULT_NULL_ORDER = "org.teiid.defaultNullOrder"; //$NON-NLS-1$
public static final String ASSUME_MATCHING_COLLATION = "org.teiid.assumeMatchingCollation"; //$NON-NLS-1$
public static final String AGGRESSIVE_JOIN_GROUPING = "org.teiid.aggressiveJoinGrouping"; //$NON-NLS-1$
public static final String MAX_SESSION_BUFFER_SIZE_ESTIMATE = "org.teiid.maxSessionBufferSizeEstimate"; //$NON-NLS-1$
private Properties properties;
private boolean subqueryUnnestDefault = false;
private boolean pushdownDefaultNullOrder;
private boolean implicitMultiSourceJoin = true;
private int joinPrefetchBatches = 10;
private boolean sanitizeMessages;
private boolean requireTeiidCollation;
private NullOrder defaultNullOrder = NullOrder.LOW;
private boolean assumeMatchingCollation = true;
private boolean aggressiveJoinGrouping = true;
private long maxSessionBufferSizeEstimate = Long.MAX_VALUE;
public Properties getProperties() {
return properties;
}
public void setProperties(Properties properties) {
this.properties = properties;
}
public boolean isSubqueryUnnestDefault() {
return subqueryUnnestDefault;
}
public void setSubqueryUnnestDefault(boolean subqueryUnnestDefault) {
this.subqueryUnnestDefault = subqueryUnnestDefault;
}
public Options subqueryUnnestDefault(boolean s) {
this.subqueryUnnestDefault = s;
return this;
}
public boolean isPushdownDefaultNullOrder() {
return pushdownDefaultNullOrder;
}
public void setPushdownDefaultNullOrder(boolean virtualizeDefaultNullOrdering) {
this.pushdownDefaultNullOrder = virtualizeDefaultNullOrdering;
}
public Options pushdownDefaultNullOrder(boolean p) {
this.pushdownDefaultNullOrder = p;
return this;
}
public void setImplicitMultiSourceJoin(boolean implicitMultiSourceJoin) {
this.implicitMultiSourceJoin = implicitMultiSourceJoin;
}
public boolean isImplicitMultiSourceJoin() {
return implicitMultiSourceJoin;
}
public Options implicitMultiSourceJoin(boolean b) {
this.implicitMultiSourceJoin = b;
return this;
}
public void setJoinPrefetchBatches(int joinPrefetchBatches) {
this.joinPrefetchBatches = joinPrefetchBatches;
}
public int getJoinPrefetchBatches() {
return joinPrefetchBatches;
}
public Options joinPrefetchBatches(int i) {
this.joinPrefetchBatches = i;
return this;
}
public void setSanitizeMessages(boolean sanitizeMessages) {
this.sanitizeMessages = sanitizeMessages;
}
public boolean isSanitizeMessages() {
return sanitizeMessages;
}
public Options sanitizeMessages(boolean b) {
this.sanitizeMessages = b;
return this;
}
public boolean isRequireTeiidCollation() {
return requireTeiidCollation;
}
public void setRequireTeiidCollation(boolean requireTeiidCollation) {
this.requireTeiidCollation = requireTeiidCollation;
}
public Options requireTeiidCollation(boolean b) {
this.requireTeiidCollation = b;
return this;
}
public NullOrder getDefaultNullOrder() {
return defaultNullOrder;
}
public void setDefaultNullOrder(NullOrder defaultNullOrder) {
this.defaultNullOrder = defaultNullOrder;
}
public Options defaultNullOrder(NullOrder b) {
this.defaultNullOrder = b;
return this;
}
public boolean isAssumeMatchingCollation() {
return this.assumeMatchingCollation;
}
public void setAssumeMatchingCollation(boolean assumeMatchingCollation) {
this.assumeMatchingCollation = assumeMatchingCollation;
}
public Options assumeMatchingCollation(boolean b) {
this.assumeMatchingCollation = b;
return this;
}
public boolean isAggressiveJoinGrouping() {
return this.aggressiveJoinGrouping;
}
public void setAggressiveJoinGrouping(boolean aggressiveJoinGrouping) {
this.aggressiveJoinGrouping = aggressiveJoinGrouping;
}
public Options aggressiveJoinGrouping(boolean b) {
this.aggressiveJoinGrouping = b;
return this;
}
public Options maxSessionBufferSizeEstimate(
long l) {
this.maxSessionBufferSizeEstimate = l;
return this;
}
public void setMaxSessionBufferSizeEstimate(
long maxSessionBufferSizeEstimate) {
this.maxSessionBufferSizeEstimate = maxSessionBufferSizeEstimate;
}
public long getMaxSessionBufferSizeEstimate() {
return maxSessionBufferSizeEstimate;
}
}