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

com.puresoltechnologies.genesis.transformation.cassandra.CassandraTransformationSequence Maven / Gradle / Ivy

The newest version!
package com.puresoltechnologies.genesis.transformation.cassandra;

import com.datastax.driver.core.Cluster;
import com.datastax.driver.core.Session;
import com.puresoltechnologies.genesis.commons.SequenceMetadata;
import com.puresoltechnologies.genesis.transformation.spi.AbstractTransformationSequence;

public class CassandraTransformationSequence extends AbstractTransformationSequence {

    private Cluster cluster;
    private Session session;

    private final String host;
    private final int port;
    private final String keyspace;

    public CassandraTransformationSequence(String host, int port, SequenceMetadata metadata) {
	super(metadata);
	this.host = host;
	this.port = port;
	this.keyspace = null;
    }

    public CassandraTransformationSequence(String host, int port, String keyspace, SequenceMetadata metadata) {
	super(metadata);
	this.host = host;
	this.port = port;
	this.keyspace = keyspace;
    }

    @Override
    public final void open() {
	cluster = Cluster.builder().addContactPoint(host).withPort(port).build();
	if (keyspace == null) {
	    session = cluster.connect();
	} else {
	    session = cluster.connect(keyspace);
	}
    }

    @Override
    public final void close() {
	try {
	    session.close();
	    session = null;
	} finally {
	    cluster.close();
	    cluster = null;
	}
    }

    public final String getHost() {
	return host;
    }

    public final int getPort() {
	return port;
    }

    public final String getKeyspace() {
	return keyspace;
    }

    public Session getSession() {
	return session;
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy