Last active
May 24, 2018 21:01
-
-
Save fmbenhassine/640f3c0bd008b9f1b9aa7cec9cf8dd97 to your computer and use it in GitHub Desktop.
Example of how to use FieldExtractor with DelimitedRecordMarshaller #EasyBatch
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
package org.easybatch.tutorials.fieldext; | |
import org.easybatch.core.job.Job; | |
import org.easybatch.core.job.JobBuilder; | |
import org.easybatch.core.job.JobExecutor; | |
import org.easybatch.core.reader.IterableRecordReader; | |
import org.easybatch.core.writer.StandardOutputRecordWriter; | |
import org.easybatch.flatfile.DelimitedRecordMarshaller; | |
import org.easybatch.tutorials.common.Tweet; | |
import java.util.Arrays; | |
import java.util.List; | |
public class Launcher { | |
public static void main(String[] args) throws Exception { | |
Tweet t1 = new Tweet(1, "foo", "hello"); | |
Tweet t2 = new Tweet(2, "bar", "hi"); | |
List<Tweet> tweets = Arrays.asList(t1, t2); | |
Job job = new JobBuilder() | |
.reader(new IterableRecordReader(tweets)) | |
.marshaller(new DelimitedRecordMarshaller<>(new TweetFieldExtractor(), "|", "'")) | |
.writer(new StandardOutputRecordWriter()) | |
.build(); | |
JobExecutor jobExecutor = new JobExecutor(); | |
jobExecutor.execute(job); | |
jobExecutor.shutdown(); | |
// This prints: | |
// 'hello'|'foo' | |
// 'hi'|'bar' | |
} | |
} |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
public class Tweet { | |
private int id; | |
private String user; | |
private String message; | |
public Tweet() { | |
} | |
public Tweet(int id, String user, String message) { | |
this.id = id; | |
this.user = user; | |
this.message = message; | |
} | |
public int getId() { | |
return id; | |
} | |
public void setId(int id) { | |
this.id = id; | |
} | |
public String getUser() { | |
return user; | |
} | |
public void setUser(String user) { | |
this.user = user; | |
} | |
public String getMessage() { | |
return message; | |
} | |
public void setMessage(String message) { | |
this.message = message; | |
} | |
} |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import org.easybatch.core.field.FieldExtractor; | |
import org.easybatch.tutorials.common.Tweet; | |
import java.util.ArrayList; | |
import java.util.List; | |
public class TweetFieldExtractor implements FieldExtractor<Tweet> { | |
// in this example we select only "user" and "message" fields (filter id field) and marshal them in this order: message,id | |
@Override | |
public Iterable<Object> extractFields(Tweet tweet) throws Exception { | |
List<Object> fields = new ArrayList<>(); | |
fields.add(tweet.getMessage()); | |
fields.add(tweet.getUser()); | |
return fields; | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment