package com.inin.analytics.elasticsearch.transport; public class SnapshotTransportStrategy { public enum STORAGE_SYSTEMS { s3, hdfs } /** * Given a source & destination, return an appropriate transport implementation * * @param snapshotWorkingLocation * @param snapshotFinalDestination * @return BaseTransport */ public static BaseTransport get(String snapshotWorkingLocation, String snapshotFinalDestination) { BaseTransport trasport = null; if(snapshotFinalDestination.startsWith(STORAGE_SYSTEMS.s3.name())) { trasport = new S3SnapshotTransport(snapshotWorkingLocation, snapshotFinalDestination); } else if(snapshotFinalDestination.startsWith(STORAGE_SYSTEMS.hdfs.name())) { trasport = new HDFSSnapshotTransport(snapshotWorkingLocation, snapshotFinalDestination); } else { trasport = new LocalFSSnapshotTransport(snapshotWorkingLocation, snapshotFinalDestination); } return trasport; } }