OrderedReader.java :  » Search » galagosearch » org » galagosearch » tupleflow » Java Open Source

Java Open Source » Search » galagosearch 
galagosearch » org » galagosearch » tupleflow » OrderedReader.java
// BSD License (http://www.galagosearch.org/license)

package org.galagosearch.tupleflow;

import java.io.EOFException;
import java.io.IOException;

public abstract class OrderedReader<T> implements TypeReader<T>, ExNihiloSource<T> {
    protected Processor<T> processor;
    protected ArrayInput input;
    protected boolean needsInit;
    protected T last = null;
    protected int batchCount = 0;
    
    public OrderedReader(ArrayInput input, Processor<T> processor) {
        this.input = input;
        this.processor = processor;
        needsInit = true;
        last = clone(null);
    }
    
    public OrderedReader(ArrayInput input) {
        this(input, null);
    }
    
    public void setProcessor(Processor<T> processor) {
        this.processor = processor;
    }

    public void run() throws IOException {
        T object = null;
        while ((object = read()) != null) {
            processor.process(object);
        }
        processor.close();
    }
    
    public T read() throws IOException {
        try {
            readTuple();
        } catch(EOFException e) {
            return null;
        }
        
        return clone(last);
    }
    
    public void readTuple() throws IOException {}
    public abstract T clone(T object);
}
java2s.com  | Contact Us | Privacy Policy
Copyright 2009 - 12 Demo Source and Support. All rights reserved.
All other trademarks are property of their respective owners.