/*
* DBeaver - Universal Database Manager
* Copyright (C) 2010-2017 Serge Rider (serge@jkiss.org)
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.jkiss.dbeaver.model.connection;
import org.jkiss.utils.CommonUtils;
import java.util.*;
/**
* Connection bootstrap info.
* Bootstrap properties are applied to each opened connection after data-source initialization.
*/
public class DBPConnectionBootstrap
{
private String defaultObjectName;
private Boolean defaultAutoCommit;
private Integer defaultTransactionIsolation;
private final List<String> initQueries;
private boolean ignoreErrors;
public DBPConnectionBootstrap()
{
this.initQueries = new ArrayList<>();
this.ignoreErrors = false;
}
public DBPConnectionBootstrap(DBPConnectionBootstrap info)
{
this.defaultObjectName = info.defaultObjectName;
this.defaultAutoCommit = info.defaultAutoCommit;
this.defaultTransactionIsolation = info.defaultTransactionIsolation;
this.initQueries = new ArrayList<>(info.initQueries);
this.ignoreErrors = info.ignoreErrors;
}
public List<String> getInitQueries() {
return initQueries;
}
public void setInitQueries(Collection<String> queries) {
initQueries.clear();
initQueries.addAll(queries);
}
public String getDefaultObjectName() {
return defaultObjectName;
}
public void setDefaultObjectName(String defaultObjectName) {
this.defaultObjectName = defaultObjectName;
}
public Boolean getDefaultAutoCommit() {
return defaultAutoCommit;
}
public void setDefaultAutoCommit(Boolean defaultAutoCommit) {
this.defaultAutoCommit = defaultAutoCommit;
}
public Integer getDefaultTransactionIsolation() {
return defaultTransactionIsolation;
}
public void setDefaultTransactionIsolation(Integer defaultTransactionIsolation) {
this.defaultTransactionIsolation = defaultTransactionIsolation;
}
public boolean isIgnoreErrors() {
return ignoreErrors;
}
public void setIgnoreErrors(boolean ignoreErrors) {
this.ignoreErrors = ignoreErrors;
}
public boolean hasData() {
return
defaultAutoCommit != null ||
defaultTransactionIsolation != null ||
!CommonUtils.isEmpty(defaultObjectName) ||
ignoreErrors ||
!CommonUtils.isEmpty(initQueries);
}
@Override
public boolean equals(Object obj) {
if (!(obj instanceof DBPConnectionBootstrap)) {
return false;
}
DBPConnectionBootstrap source = (DBPConnectionBootstrap)obj;
return
CommonUtils.equalObjects(this.defaultObjectName, source.defaultObjectName) &&
CommonUtils.equalObjects(this.defaultAutoCommit, source.defaultAutoCommit) &&
CommonUtils.equalObjects(this.defaultTransactionIsolation, source.defaultTransactionIsolation) &&
CommonUtils.equalObjects(this.initQueries, source.initQueries) &&
this.ignoreErrors == source.ignoreErrors;
}
}