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

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

import java.io.DataOutputStream;
import java.io.File;
import java.io.IOException;

/**
 *
 * @author trevor
 */
public class FileOrderedWriter<T> implements Processor<T> {
    String filename;
    Order<T> order;
    DataOutputStream dataStream;
    ArrayOutput stream;
    Processor<T> orderedWriter;

    public FileOrderedWriter(String filename, Order<T> order, boolean compressed) throws IOException {
        this.filename = filename;
        this.order = order;

        dataStream = StreamCreator.realOutputStream(filename);
        if (compressed) {
            stream = new ArrayOutput(new VByteOutput(dataStream));
        } else {
            stream = new ArrayOutput(dataStream);
        }
        stream.writeString(order.getOrderedClass().getName());
        stream.writeStrings(order.getOrderSpec());
        this.orderedWriter = order.orderedWriter(stream);
    }

    public FileOrderedWriter(String filename, Order<T> order) throws IOException {
        this(filename, order, true);
    }

    public FileOrderedWriter(File file, Order<T> order) throws IOException {
        this(file.getPath(), order, true);
    }

    public Class<T> getInputClass() {
        return order.getOrderedClass();
    }

    public void process(T object) throws IOException {
        orderedWriter.process(object);
    }

    public void close() throws IOException {
        orderedWriter.close();
        dataStream.close();
    }
}
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.