package com.breakersoft.plow.dao; import java.util.Map; import java.util.UUID; import com.breakersoft.plow.FilterableJob; import com.breakersoft.plow.Folder; import com.breakersoft.plow.Job; import com.breakersoft.plow.JobId; import com.breakersoft.plow.Project; import com.breakersoft.plow.thrift.JobSpecT; import com.breakersoft.plow.thrift.JobState; public interface JobDao { FilterableJob create(Project project, JobSpecT blueprint, boolean isPostJob); Job get(String name, JobState state); Job get(UUID id); void updateFrameStatesForLaunch(Job job); void updateFrameCountsForLaunch(Job job); boolean setJobState(Job job, JobState state); boolean hasWaitingFrames(Job job); boolean isFinished(JobId job); void updateFolder(Job job, Folder folder); boolean shutdown(Job job); Job getActive(String name); Job getByActiveNameOrId(String identifer); Job getActive(UUID id); void setPaused(Job job, boolean value); boolean isPaused(JobId job); void setMaxCores(Job job, int value); void setMinCores(Job job, int value); void setAttrs(Job job, Map<String, String> attrs); Map<String, String> getAttrs(Job job); void tiePostJob(JobId parentJob, JobId postJob); boolean flipPostJob(Job job); boolean isDispatchable(JobId job); }