package com.socrata.datasync.job; import com.socrata.datasync.Utils; import org.apache.commons.cli.CommandLine; import org.apache.commons.lang3.StringUtils; import org.codehaus.jackson.map.ObjectMapper; import java.io.File; import java.io.IOException; public abstract class Job { String pathToSavedJobFile = ""; public abstract String getDefaultJobName(); public abstract boolean validateArgs(CommandLine cmd); public abstract void configure(CommandLine cmd); public abstract JobStatus run() throws IOException; public void writeToFile(String filepath) throws IOException { ObjectMapper mapper = new ObjectMapper(); mapper.writeValue(new File(filepath), this); } public void setPathToSavedFile(String newPath) { pathToSavedJobFile = newPath; } public String getPathToSavedFile() { return pathToSavedJobFile; } public String getJobFilename() { return StringUtils.isBlank(pathToSavedJobFile) ? getDefaultJobName() : Utils.getFilename(pathToSavedJobFile); } }