package io.fathom.cloud.lbaas.services;
import io.fathom.cloud.server.model.Project;
import java.util.List;
import com.google.common.collect.Lists;
import com.google.protobuf.GeneratedMessage;
public abstract class Mapper<Data extends GeneratedMessage, Model> {
/**
* Constructs a model with the DB only fields cleared. We can then compare
* this against values not from the database.
*/
public abstract Data toComparable(Data d);
public abstract Data toData(Project project, String systemKey, Model model);
public abstract Model toModel(Data data);
public List<Data> toData(Project project, String systemKey, List<Model> models) {
List<Data> ret = Lists.newArrayList();
for (Model model : models) {
Data data = toData(project, systemKey, model);
ret.add(data);
}
return ret;
}
}