org.infinispan.persistence.jdbc.configuration.AbstractJdbcStoreConfiguration Maven / Gradle / Ivy
package org.infinispan.persistence.jdbc.configuration;
import org.infinispan.commons.configuration.attributes.Attribute;
import org.infinispan.commons.configuration.attributes.AttributeDefinition;
import org.infinispan.commons.configuration.attributes.AttributeSet;
import org.infinispan.configuration.cache.AbstractStoreConfiguration;
import org.infinispan.configuration.cache.AsyncStoreConfiguration;
import org.infinispan.configuration.cache.SingletonStoreConfiguration;
import org.infinispan.persistence.jdbc.DatabaseType;
public abstract class AbstractJdbcStoreConfiguration extends AbstractStoreConfiguration {
static final AttributeDefinition MANAGE_CONNECTION_FACTORY = AttributeDefinition.builder("manageConnectionFactory", true).immutable().build();
static final AttributeDefinition DIALECT = AttributeDefinition.builder("databaseType", null, DatabaseType.class).immutable().xmlName("dialect").build();
static final AttributeDefinition DB_MAJOR_VERSION = AttributeDefinition.builder("databaseMajorVersion", null, Integer.class).immutable().xmlName("db-major-version").build();
static final AttributeDefinition DB_MINOR_VERSION = AttributeDefinition.builder("databaseMinorVersion", null, Integer.class).immutable().xmlName("db-minor-version").build();
public static AttributeSet attributeDefinitionSet() {
return new AttributeSet(AbstractJdbcStoreConfiguration.class, AbstractStoreConfiguration.attributeDefinitionSet(),
MANAGE_CONNECTION_FACTORY, DIALECT, DB_MAJOR_VERSION, DB_MINOR_VERSION);
}
private final Attribute manageConnectionFactory;
private final Attribute dialect;
private final Attribute dbMajorVersion;
private final Attribute dbMinorVersion;
private final ConnectionFactoryConfiguration connectionFactory;
protected AbstractJdbcStoreConfiguration(AttributeSet attributes, AsyncStoreConfiguration async, SingletonStoreConfiguration singletonStore,
ConnectionFactoryConfiguration connectionFactory) {
super(attributes, async, singletonStore);
this.connectionFactory = connectionFactory;
manageConnectionFactory = attributes.attribute(MANAGE_CONNECTION_FACTORY);
dialect = attributes.attribute(DIALECT);
dbMajorVersion = attributes.attribute(DB_MAJOR_VERSION);
dbMinorVersion = attributes.attribute(DB_MINOR_VERSION);
}
public ConnectionFactoryConfiguration connectionFactory() {
return connectionFactory;
}
public boolean manageConnectionFactory() {
return manageConnectionFactory.get();
}
public DatabaseType dialect() {
return dialect.get();
}
public Integer dbMajorVersion() {
return dbMajorVersion.get();
}
public Integer dbMinorVersion() {
return dbMinorVersion.get();
}
@Override
public String toString() {
return "AbstractJdbcStoreConfiguration [connectionFactory=" + connectionFactory + ", attributes=" + attributes + "]";
}
@Override
public int hashCode() {
final int prime = 31;
int result = super.hashCode();
result = prime * result + ((connectionFactory == null) ? 0 : connectionFactory.hashCode());
return result;
}
@Override
public boolean equals(Object obj) {
if (this == obj)
return true;
if (!super.equals(obj))
return false;
if (getClass() != obj.getClass())
return false;
AbstractJdbcStoreConfiguration other = (AbstractJdbcStoreConfiguration) obj;
if (connectionFactory == null) {
if (other.connectionFactory != null)
return false;
} else if (!connectionFactory.equals(other.connectionFactory))
return false;
return true;
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy