Skip to content

Instantly share code, notes, and snippets.

@malexejev
Created March 15, 2013 14:40
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save malexejev/5170300 to your computer and use it in GitHub Desktop.
Save malexejev/5170300 to your computer and use it in GitHub Desktop.
package com.xxx.metadata.hector;
import java.util.Map;
import me.prettyprint.cassandra.connection.client.HClient;
import me.prettyprint.cassandra.service.CassandraHost;
import me.prettyprint.cassandra.service.ExceptionsTranslator;
import me.prettyprint.cassandra.service.ExceptionsTranslatorImpl;
import org.apache.cassandra.thrift.Cassandra.Client;
import org.apache.cassandra.thrift.InvalidRequestException;
import org.apache.thrift.TException;
/**
* Wrapper class for Cassandra client.
* The only thing it adds is set_cql_version() call on open.
*
* @author Max Alexejev
* Mar 13, 2013
*/
public class HVersionEnforcingClient implements HClient {
private final HClient delegate;
private final String cqlVersion;
private final ExceptionsTranslator exceptionTranslator;
public HVersionEnforcingClient(HClient delegate, String cqlVersion) {
this.delegate = delegate;
this.cqlVersion = cqlVersion;
this.exceptionTranslator = new ExceptionsTranslatorImpl();
}
@Override
public long getCreatedTime() {
return delegate.getCreatedTime();
}
@Override
public Client getCassandra() {
return delegate.getCassandra();
}
@Override
public Client getCassandra(String keyspaceNameArg) {
return delegate.getCassandra(keyspaceNameArg);
}
@Override
public HClient close() {
return delegate.close();
}
@Override
public HClient open() {
final HClient client = delegate.open();
try {
client.getCassandra().set_cql_version(cqlVersion);
} catch (TException | InvalidRequestException e) {
throw exceptionTranslator.translate(e);
}
return client;
}
@Override
public boolean isOpen() {
return delegate.isOpen();
}
@Override
public void startToUse() {
delegate.startToUse();
}
@Override
public long getSinceLastUsed() {
return delegate.getSinceLastUsed();
}
@Override
public CassandraHost getCassandraHost() {
return delegate.getCassandraHost();
}
@Override
public void setAuthenticated(Map<String, String> credentials) {
delegate.setAuthenticated(credentials);
}
@Override
public boolean isAlreadyAuthenticated(Map<String, String> credentials) {
return delegate.isAlreadyAuthenticated(credentials);
}
@Override
public void clearAuthentication() {
delegate.clearAuthentication();
}
@Override
public long getLastSuccessTime() {
return delegate.getLastSuccessTime();
}
@Override
public void updateLastSuccessTime() {
delegate.updateLastSuccessTime();
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment