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

info.archinnov.achilles.iterator.ThriftCounterClusteredEntityIterator Maven / Gradle / Ivy

package info.archinnov.achilles.iterator;

import info.archinnov.achilles.context.ThriftPersistenceContext;
import me.prettyprint.hector.api.beans.Composite;
import me.prettyprint.hector.api.beans.HCounterColumn;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

/**
 * ThriftCounterClusteredEntityIterator
 * 
 * @author DuyHai DOAN
 * 
 */
public class ThriftCounterClusteredEntityIterator extends ThriftAbstractClusteredEntityIterator
{
    private static final Logger log = LoggerFactory.getLogger(ThriftCounterClusteredEntityIterator.class);

    private ThriftCounterSliceIterator sliceIterator;

    public ThriftCounterClusteredEntityIterator(Class entityClass,
            ThriftCounterSliceIterator sliceIterator,
            ThriftPersistenceContext context)
    {
        super(entityClass, sliceIterator, context);
        this.sliceIterator = sliceIterator;
    }

    @Override
    public T next()
    {
        log.trace("Get next clustered entity of type {} ", entityClass.getCanonicalName());
        HCounterColumn counterColumn = this.sliceIterator.next();
        T target = transformer.buildCounterClusteredEntity(entityClass, context, counterColumn);
        return proxifyClusteredEntity(target);
    }

}