/* * Copyright 2010 Impetus Infotech. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.impetus.kundera.client; import java.util.List; import java.util.Map; import javax.persistence.EntityManager; import javax.persistence.PersistenceException; import org.apache.cassandra.thrift.Cassandra; import org.apache.cassandra.thrift.Cassandra.Client; import org.apache.cassandra.thrift.SuperColumn; import org.apache.commons.lang.NotImplementedException; import org.apache.thrift.protocol.TBinaryProtocol; import org.apache.thrift.protocol.TProtocol; import org.apache.thrift.transport.TSocket; import org.apache.thrift.transport.TTransport; import org.apache.thrift.transport.TTransportException; import com.impetus.kundera.CassandraClient; import com.impetus.kundera.ejb.EntityManagerImpl; import com.impetus.kundera.loader.DBType; import com.impetus.kundera.metadata.EntityMetadata; import com.impetus.kundera.proxy.EnhancedEntity; /** * The Class ThriftClient. * * @author animesh.kumar * @since 0.1 */ public class ThriftClient implements CassandraClient { /** cassandra host. */ private String contactNode = "localhost"; /** default port. */ private int defaultPort = 9160; /** The tr. */ private TTransport tr = null; /** * Open up a new connection to the Cassandra Database. * * @return the Cassandra Client */ protected Cassandra.Client setupConnection() { try { tr = new TSocket(contactNode, defaultPort); TProtocol proto = new TBinaryProtocol(tr); Cassandra.Client client = new Cassandra.Client(proto); tr.open(); return client; } catch (TTransportException exception) { exception.printStackTrace(); } return null; } /** * Close the connection to the Cassandra Database. */ protected void closeConnection() { try { tr.flush(); tr.close(); } catch (TTransportException exception) { exception.printStackTrace(); } } /* * @see com.impetus.kundera.CassandraClient#delete(java.lang.String, * java.lang.String, java.lang.String) */ @Override public void delete(String keyspace, String columnFamily, String rowId) throws Exception { throw new NotImplementedException("TODO"); } /* * @see com.impetus.kundera.CassandraClient#loadColumns(java.lang.String, * java.lang.String, java.lang.String) */ @Override public <E> E loadColumns(EntityManagerImpl em, Class<E> clazz,String keyspace, String columnFamily, String key, EntityMetadata m) throws Exception { throw new NotImplementedException("TODO"); } /* * @see com.impetus.kundera.CassandraClient#loadColumns(java.lang.String, * java.lang.String, java.lang.String[]) */ @Override public <E> List<E> loadColumns(EntityManagerImpl em, Class<E> clazz, String keyspace, String columnFamily, EntityMetadata m, String... keys) throws Exception { throw new NotImplementedException("TODO"); } /* * @see * com.impetus.kundera.CassandraClient#loadSuperColumns(java.lang.String, * java.lang.String, java.lang.String, java.lang.String[]) */ @Override public List<SuperColumn> loadSuperColumns(String keyspace, String columnFamily, String key, String... superColumnNames) throws Exception { throw new NotImplementedException("TODO"); } /* * @see * com.impetus.kundera.CassandraClient#loadSuperColumns(java.lang.String, * java.lang.String, java.lang.String[]) */ @Override public Map<String, List<SuperColumn>> loadSuperColumns(String keyspace, String columnFamily, String... rowIds) throws Exception { throw new NotImplementedException("TODO"); } /* * @see com.impetus.kundera.CassandraClient#writeColumns(java.lang.String, * java.lang.String, java.lang.String, org.apache.cassandra.thrift.Column[]) */ @Override public void writeColumns(String keyspace, String columnFamily, String key, List<com.impetus.kundera.metadata.EntityMetadata.Column> columns, EnhancedEntity e) throws Exception { throw new NotImplementedException("TODO"); } @Override public void writeColumns(EntityManagerImpl em, EnhancedEntity e, EntityMetadata m) throws Exception { throw new PersistenceException("Not yet implemented"); } /* * @see * com.impetus.kundera.CassandraClient#writeSuperColumns(java.lang.String, * java.lang.String, java.lang.String, * org.apache.cassandra.thrift.SuperColumn[]) */ @Override public void writeSuperColumns(String keyspace, String columnFamily, String rowId, SuperColumn... superColumns) throws Exception { throw new NotImplementedException("TODO"); } /* * @see * com.impetus.kundera.CassandraClient#setContactNodes(java.lang.String[]) */ @Override public void setContactNodes(String... contactNodes) { this.contactNode = contactNodes[0]; } /* @see com.impetus.kundera.CassandraClient#setDefaultPort(int) */ @Override public void setDefaultPort(int defaultPort) { this.defaultPort = defaultPort; } /* @see com.impetus.kundera.CassandraClient#getCassandraClient() */ @Override public Client getCassandraClient() throws Exception { throw new NotImplementedException("TODO"); } /* @see com.impetus.kundera.CassandraClient#shutdown() */ @Override public void shutdown() { } /* @see com.impetus.kundera.CassandraClient#connect() */ @Override public void connect() { throw new NotImplementedException("TODO"); } @Override public void setKeySpace(String keySpace) { // TODO Auto-generated method stub } @Override public DBType getType() { return DBType.CASSANDRA; } }