/* * 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; } }