package se.chalmers.gdcn.files;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;
/**
* Serialized data-class to Json
*
* Represents contents in one MetaTask file
*/
public class TaskMeta implements Serializable {
private final String taskName;
private final FileDep module;
private final List<FileDep> dependencies;
TaskMeta(String taskName, FileDep module, List<FileDep> dependencies) {
this.taskName = taskName;
this.module = module;
this.dependencies = new ArrayList<>(dependencies);
}
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (!(o instanceof TaskMeta)) return false;
TaskMeta taskMeta = (TaskMeta) o;
if (!module.equals(taskMeta.module)) return false;
if (!taskName.equals(taskMeta.taskName)) return false;
return true;
}
@Override
public int hashCode() {
int result = taskName.hashCode();
result = 31 * result + module.hashCode();
return result;
}
@Override
public String toString() {
return "Meta{"+taskName+"}";
}
public String getTaskName() {
return taskName;
}
public FileDep getModule() {
return module;
}
//TODO Visibility changed for convenience for QualityControl, may exist better solution
public List<FileDep> getDependencies() {
return new ArrayList<>(dependencies);
}
}