package com.breakersoft.plow.dao;
import java.util.List;
import java.util.UUID;
import com.breakersoft.plow.Depend;
import com.breakersoft.plow.Job;
import com.breakersoft.plow.Layer;
import com.breakersoft.plow.Task;
import com.breakersoft.plow.TaskOnTaskBatch;
public interface DependDao {
public Depend createJobOnJob(Job dependent, Job dependOn);
public Depend createLayerOnLayer(Job dependentJob, Layer dependent, Job dependOnJob, Layer dependOn);
public Depend createLayerOnTask(Job dependentJob, Layer dependent, Job dependOnJob, Layer dependOnLayer, Task dependOn);
public Depend createTaskOnLayer(
Job dependentJob,
Layer dependentLayer,
Task dependentTask,
Job dependOnJob,
Layer dependOnLayer);
public Depend createTaskOnTask(
Job dependentJob,
Layer dependentLayer,
Task dependentTask,
Job dependOnJob,
Layer dependOnLayer,
Task dependOnTask);
void incrementDependCounts(Depend depend);
void decrementDependCounts(Depend depend);
Depend get(UUID id);
boolean satisfyDepend(Depend depend);
boolean unsatisfyDepend(Depend depend);
List<Depend> getOnTaskDepends(Task task);
List<Depend> getOnLayerDepends(Layer layer);
List<Depend> getOnJobDepends(Job job);
void batchCreateTaskOnTask(TaskOnTaskBatch batch);
void batchIncrementDependCounts(TaskOnTaskBatch batch);
}