Author: eevans Date: Fri Oct 22 22:40:23 2010 New Revision: 1026517 URL: http://svn.apache.org/viewvc?rev=1026517&view=rev Log: branch for 0.7 series
Added: cassandra/branches/cassandra-0.7/ - copied from r1026515, cassandra/trunk/ Modified: cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/db/filter/IFilter.java Modified: cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/db/filter/IFilter.java URL: http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/db/filter/IFilter.java?rev=1026517&r1=1026515&r2=1026517&view=diff ============================================================================== --- cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/db/filter/IFilter.java (original) +++ cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/db/filter/IFilter.java Fri Oct 22 22:40:23 2010 @@ -1,77 +1,77 @@ -package org.apache.cassandra.db.filter; -/* - * - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you 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. - * - */ - -import java.util.Comparator; -import java.util.Iterator; - -import org.apache.cassandra.config.CFMetaData; -import org.apache.cassandra.db.*; -import org.apache.cassandra.db.columniterator.IColumnIterator; -import org.apache.cassandra.db.marshal.AbstractType; -import org.apache.cassandra.io.sstable.SSTableReader; -import org.apache.cassandra.io.util.FileDataInput; - -/** - * Given an implementation-specific description of what columns to look for, provides methods - * to extract the desired columns from a Memtable, SSTable, or SuperColumn. Either the get*ColumnIterator - * methods will be called, or filterSuperColumn, but not both on the same object. QueryFilter - * takes care of putting the two together if subcolumn filtering needs to be done, based on the - * querypath that it knows (but that IFilter implementations are oblivious to). - */ -public interface IFilter -{ - /** - * returns an iterator that returns columns from the given memtable - * matching the Filter criteria in sorted order. - */ - public abstract IColumnIterator getMemtableColumnIterator(ColumnFamily cf, DecoratedKey key, AbstractType comparator); - - /** - * Get an iterator that returns columns from the given SSTable using the opened file - * matching the Filter criteria in sorted order. - * @param metadata - * @param file Already opened file data input, saves us opening another one - * @param key The key of the row we are about to iterate over - */ - public abstract IColumnIterator getSSTableColumnIterator(CFMetaData metadata, FileDataInput file, DecoratedKey key); - - /** - * returns an iterator that returns columns from the given SSTable - * matching the Filter criteria in sorted order. - */ - public abstract IColumnIterator getSSTableColumnIterator(SSTableReader sstable, DecoratedKey key); - - /** - * collects columns from reducedColumns into returnCF. Termination is determined - * by the filter code, which should have some limit on the number of columns - * to avoid running out of memory on large rows. - */ - public abstract void collectReducedColumns(IColumnContainer container, Iterator<IColumn> reducedColumns, int gcBefore); - - /** - * subcolumns of a supercolumn are unindexed, so to pick out parts of those we operate in-memory. - * @param superColumn may be modified by filtering op. - */ - public abstract SuperColumn filterSuperColumn(SuperColumn superColumn, int gcBefore); - - public Comparator<IColumn> getColumnComparator(AbstractType comparator); -} +package org.apache.cassandra.db.filter; +/* + * + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you 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. + * + */ + +import java.util.Comparator; +import java.util.Iterator; + +import org.apache.cassandra.config.CFMetaData; +import org.apache.cassandra.db.*; +import org.apache.cassandra.db.columniterator.IColumnIterator; +import org.apache.cassandra.db.marshal.AbstractType; +import org.apache.cassandra.io.sstable.SSTableReader; +import org.apache.cassandra.io.util.FileDataInput; + +/** + * Given an implementation-specific description of what columns to look for, provides methods + * to extract the desired columns from a Memtable, SSTable, or SuperColumn. Either the get*ColumnIterator + * methods will be called, or filterSuperColumn, but not both on the same object. QueryFilter + * takes care of putting the two together if subcolumn filtering needs to be done, based on the + * querypath that it knows (but that IFilter implementations are oblivious to). + */ +public interface IFilter +{ + /** + * returns an iterator that returns columns from the given memtable + * matching the Filter criteria in sorted order. + */ + public abstract IColumnIterator getMemtableColumnIterator(ColumnFamily cf, DecoratedKey key, AbstractType comparator); + + /** + * Get an iterator that returns columns from the given SSTable using the opened file + * matching the Filter criteria in sorted order. + * @param metadata + * @param file Already opened file data input, saves us opening another one + * @param key The key of the row we are about to iterate over + */ + public abstract IColumnIterator getSSTableColumnIterator(CFMetaData metadata, FileDataInput file, DecoratedKey key); + + /** + * returns an iterator that returns columns from the given SSTable + * matching the Filter criteria in sorted order. + */ + public abstract IColumnIterator getSSTableColumnIterator(SSTableReader sstable, DecoratedKey key); + + /** + * collects columns from reducedColumns into returnCF. Termination is determined + * by the filter code, which should have some limit on the number of columns + * to avoid running out of memory on large rows. + */ + public abstract void collectReducedColumns(IColumnContainer container, Iterator<IColumn> reducedColumns, int gcBefore); + + /** + * subcolumns of a supercolumn are unindexed, so to pick out parts of those we operate in-memory. + * @param superColumn may be modified by filtering op. + */ + public abstract SuperColumn filterSuperColumn(SuperColumn superColumn, int gcBefore); + + public Comparator<IColumn> getColumnComparator(AbstractType comparator); +}