All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.zalando.boot.cassandra.CassandraMappingManagerFactoryBean Maven / Gradle / Ivy

There is a newer version: 2.2
Show newest version
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;
    }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy