package com.airbnb.airpal.api.output.persistors; import com.airbnb.airpal.api.Job; import com.airbnb.airpal.api.output.PersistentJobOutput; import com.airbnb.airpal.core.store.files.ExpiringFileStore; import com.amazonaws.services.s3.AmazonS3; import lombok.AllArgsConstructor; @AllArgsConstructor public class CSVPersistorFactory { private boolean useS3Persistor = false; private AmazonS3 s3Client; private String s3Bucket; private ExpiringFileStore expiringFileStore; private boolean compressedOutput; public Persistor getPersistor(Job job, PersistentJobOutput jobOutput) { // TODO: Support variable CSV persistor. if (useS3Persistor) { return new S3FilePersistor(s3Client, s3Bucket, 0L, compressedOutput); } else { return new FlatFilePersistor(expiringFileStore); } } }