Skip to content

Commit

Permalink
adding encoding for DataOutput
Browse files Browse the repository at this point in the history
  • Loading branch information
jortiz16 committed Aug 5, 2016
1 parent 74337f6 commit e1d96b5
Show file tree
Hide file tree
Showing 4 changed files with 33 additions and 1 deletion.
14 changes: 14 additions & 0 deletions src/edu/washington/escience/myria/TupleWriter.java
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,10 @@
import java.io.Serializable;
import java.util.List;

import com.fasterxml.jackson.annotation.JsonSubTypes;
import com.fasterxml.jackson.annotation.JsonSubTypes.Type;
import com.fasterxml.jackson.annotation.JsonTypeInfo;

import edu.washington.escience.myria.storage.ReadableTable;

/**
Expand All @@ -22,6 +26,16 @@
*
*
*/
@JsonTypeInfo(
use = JsonTypeInfo.Id.NAME,
include = JsonTypeInfo.As.PROPERTY,
property = "writerType"
)
@JsonSubTypes({
@Type(name = "CSV", value = CsvTupleWriter.class),
@Type(name = "Json", value = JsonTupleWriter.class),
@Type(name = "PostgresBinary", value = PostgresBinaryTupleWriter.class)
})
public interface TupleWriter extends Serializable {
/**
* This will initialize the {@link TupleWriter} {@link java.io.OutputStream}.
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
package edu.washington.escience.myria.api.encoding;

import edu.washington.escience.myria.TupleWriter;
import edu.washington.escience.myria.api.encoding.QueryConstruct.ConstructArgs;
import edu.washington.escience.myria.io.DataSink;
import edu.washington.escience.myria.operator.DataOutput;

public class DataOutputEncoding extends UnaryOperatorEncoding<DataOutput> {
@Required public TupleWriter tupleWriter;
@Required public DataSink dataSink;

@Override
public DataOutput construct(ConstructArgs args) {
return new DataOutput(null, tupleWriter, dataSink);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,7 @@
@Type(name = "CollectProducer", value = CollectProducerEncoding.class),
@Type(name = "Consumer", value = ConsumerEncoding.class),
@Type(name = "Counter", value = CounterEncoding.class),
@Type(name = "DataOutput", value = DataOutputEncoding.class),
@Type(name = "DbInsert", value = DbInsertEncoding.class),
@Type(name = "DbQueryScan", value = QueryScanEncoding.class),
@Type(name = "DbCreateIndex", value = CreateIndexEncoding.class),
Expand Down
3 changes: 2 additions & 1 deletion src/edu/washington/escience/myria/io/DataSink.java
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,8 @@
@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "dataType")
@JsonSubTypes({
@Type(name = "Pipe", value = PipeSink.class),
@Type(name = "Bytes", value = ByteSink.class)
@Type(name = "Bytes", value = ByteSink.class),
@Type(name = "Uri", value = UriSink.class)
})
public interface DataSink extends Serializable {
/**
Expand Down

0 comments on commit e1d96b5

Please sign in to comment.