org.zalando.boot.cassandra.CassandraMappingManagerFactoryBean Maven / Gradle / Ivy
package org.zalando.boot.cassandra;
import org.springframework.beans.factory.config.AbstractFactoryBean;
import org.springframework.util.Assert;
import com.datastax.driver.core.ProtocolVersion;
import com.datastax.driver.core.Session;
import com.datastax.driver.mapping.MappingManager;
import lombok.Getter;
import lombok.Setter;
@Getter
@Setter
public class CassandraMappingManagerFactoryBean extends AbstractFactoryBean {
/**
* cassandra session
*/
private Session session;
/**
* protocol version
*/
private ProtocolVersion protocolVersion;
/**
* Creates a new CassandraMappingManagerFactoryBean.
*/
public CassandraMappingManagerFactoryBean() {
super();
}
/**
* Creates a new CassandraMappingManagerFactoryBean with the given session.
*
* @param session
* the cassandra session
*/
public CassandraMappingManagerFactoryBean(Session session) {
this(session, null);
}
/**
* Creates a new CassandraMappingManagerFactoryBean with the given session
* and protocol version.
*
* @param session
* the cassandra session
* @param protocolVersion
* the cassandra protocol version
*/
public CassandraMappingManagerFactoryBean(Session session, ProtocolVersion protocolVersion) {
this.session = session;
this.protocolVersion = protocolVersion;
}
/**
* {@inheritDoc}
*
* @see AbstractFactoryBean#createInstance()
*/
@Override
protected MappingManager createInstance() throws Exception {
Assert.notNull(session);
MappingManager manager = null;
if (protocolVersion == null) {
manager = new MappingManager(session);
} else {
manager = new MappingManager(session, protocolVersion);
}
return manager;
}
/**
* {@inheritDoc}
*
* @see AbstractFactoryBean#destroyInstance(Object)
*/
@Override
protected void destroyInstance(MappingManager instance) throws Exception {
// nothing to do
}
/**
* {@inheritDoc}
*
* @see AbstractFactoryBean#getObjectType()
*/
@Override
public Class getObjectType() {
return MappingManager.class;
}
}