package com.facebook.infrastructure.db;
import java.io.DataInputStream;
import java.io.IOException;
import java.util.Collection;
import com.facebook.infrastructure.config.DatabaseDescriptor;
import com.facebook.infrastructure.io.DataInputBuffer;
import com.facebook.infrastructure.io.SSTable;
public class IdentityFilter implements IFilter
{
private boolean isDone_ = false;
public boolean isDone()
{
return isDone_;
}
public ColumnFamily filter(String cfString, ColumnFamily columnFamily)
{
String[] values = RowMutation.getColumnAndColumnFamily(cfString);
if( columnFamily == null )
return columnFamily;
String cfName = columnFamily.name();
if ( values.length == 2 && !columnFamily.isSuper())
{
Collection<IColumn> columns = columnFamily.getAllColumns();
if(columns.size() >= 1)
isDone_ = true;
}
if ( values.length == 3 && DatabaseDescriptor.getColumnType(cfName).equals("Super"))
{
Collection<IColumn> columns = columnFamily.getAllColumns();
for(IColumn column : columns)
{
SuperColumn superColumn = (SuperColumn)column;
Collection<IColumn> subColumns = superColumn.getSubColumns();
if( subColumns.size() >= 1 )
isDone_ = true;
}
}
return columnFamily;
}
public IColumn filter(IColumn column, DataInputStream dis)
throws IOException
{
// TODO Auto-generated method stub
return column;
}
public DataInputBuffer next(String key, String cf, SSTable ssTable)
throws IOException
{
return ssTable.next(key, cf);
}
public void setDone()
{
isDone_ = true;
}
}