blob: 90916ae07ae12372f8c3be85f98bc036f32a0110 [file] [log] [blame]
/*
* Copyright (c) 1998, 2021 Oracle and/or its affiliates. All rights reserved.
*
* This program and the accompanying materials are made available under the
* terms of the Eclipse Public License v. 2.0 which is available at
* http://www.eclipse.org/legal/epl-2.0,
* or the Eclipse Distribution License v. 1.0 which is available at
* http://www.eclipse.org/org/documents/edl-v10.php.
*
* SPDX-License-Identifier: EPL-2.0 OR BSD-3-Clause
*/
// Contributors:
// Oracle - initial API and implementation from Oracle TopLink
package org.eclipse.persistence.internal.sessions.factories.model.sequencing;
import java.util.Vector;
/**
* INTERNAL:
*/
public class SequencingConfig {
private SequenceConfig m_defaultSequenceConfig;
private Vector<SequenceConfig> m_sequenceConfigs;
public SequencingConfig() {
super();
}
public void setDefaultSequenceConfig(SequenceConfig defaultSequenceConfig) {
m_defaultSequenceConfig = defaultSequenceConfig;
}
public SequenceConfig getDefaultSequenceConfig() {
return m_defaultSequenceConfig;
}
public void setSequenceConfigs(Vector<SequenceConfig> sequenceConfigs) {
m_sequenceConfigs = sequenceConfigs;
}
public Vector<SequenceConfig> getSequenceConfigs() {
return m_sequenceConfigs;
}
// backward compatibility
public void setNativeSequencing(boolean nativeSequencing) {
Integer preallocationSize = null;
if (getDefaultSequenceConfig() != null) {
if (getNativeSequencing() == nativeSequencing) {
return;
}
preallocationSize = getDefaultSequenceConfig().getPreallocationSize();
}
setDefaultSequenceConfig(nativeSequencing);
if (preallocationSize != null) {
getDefaultSequenceConfig().setPreallocationSize(preallocationSize);
}
}
public boolean getNativeSequencing() {
if (getDefaultSequenceConfig() == null) {
return false;
} else {
return getDefaultSequenceConfig() instanceof NativeSequenceConfig;
}
}
public void setSequencePreallocationSize(Integer sequencePreallocationSize) {
if (getDefaultSequenceConfig() == null) {
setDefaultSequenceConfig(false);
}
getDefaultSequenceConfig().setPreallocationSize(sequencePreallocationSize);
}
public Integer getSequencePreallocationSize() {
if (getDefaultSequenceConfig() == null) {
return null;
} else {
return getDefaultSequenceConfig().getPreallocationSize();
}
}
public void setSequenceTable(String sequenceTable) {
if (getDefaultSequenceConfig() == null) {
setDefaultSequenceConfig(false);
}
if (getDefaultSequenceConfig() instanceof TableSequenceConfig) {
((TableSequenceConfig)getDefaultSequenceConfig()).setTable(sequenceTable);
}
}
public String getSequenceTable() {
if ((getDefaultSequenceConfig() != null) && getDefaultSequenceConfig() instanceof TableSequenceConfig) {
return ((TableSequenceConfig)getDefaultSequenceConfig()).getTable();
} else {
return null;
}
}
public void setSequenceNameField(String sequenceNameField) {
if (getDefaultSequenceConfig() == null) {
setDefaultSequenceConfig(false);
}
if (getDefaultSequenceConfig() instanceof TableSequenceConfig) {
((TableSequenceConfig)getDefaultSequenceConfig()).setNameField(sequenceNameField);
}
}
public String getSequenceNameField() {
if ((getDefaultSequenceConfig() != null) && getDefaultSequenceConfig() instanceof TableSequenceConfig) {
return ((TableSequenceConfig)getDefaultSequenceConfig()).getNameField();
} else {
return null;
}
}
public void setSequenceCounterField(String sequenceCounterField) {
if (getDefaultSequenceConfig() == null) {
setDefaultSequenceConfig(false);
}
if (getDefaultSequenceConfig() instanceof TableSequenceConfig) {
((TableSequenceConfig)getDefaultSequenceConfig()).setCounterField(sequenceCounterField);
}
}
public String getSequenceCounterField() {
if ((getDefaultSequenceConfig() != null) && getDefaultSequenceConfig() instanceof TableSequenceConfig) {
return ((TableSequenceConfig)getDefaultSequenceConfig()).getCounterField();
} else {
return null;
}
}
protected void setDefaultSequenceConfig(boolean nativeSequencing) {
SequenceConfig sequenceConfig;
if (nativeSequencing) {
NativeSequenceConfig nativeSequenceConfig = new NativeSequenceConfig();
sequenceConfig = nativeSequenceConfig;
} else {
TableSequenceConfig tableSequenceConfig = new TableSequenceConfig();
tableSequenceConfig.setTable("SEQUENCE");
tableSequenceConfig.setNameField("SEQ_NAME");
tableSequenceConfig.setCounterField("SEQ_COUNT");
sequenceConfig = tableSequenceConfig;
}
sequenceConfig.setName("");
sequenceConfig.setPreallocationSize(50);
setDefaultSequenceConfig(sequenceConfig);
}
}