package org.molgenis.pathways.service; import com.google.auto.value.AutoValue; import com.google.common.cache.LoadingCache; import org.molgenis.pathways.model.Impact; import java.util.Map; /** * Parameter object used as key for the {@link LoadingCache} with the colored pathways. */ @AutoValue abstract class ColoredPathwayParameters { public abstract String getPathwayId(); public abstract Map<String, Impact> getImpactPerGraphId(); public String[] getGraphIdArray() { return getImpactPerGraphId().keySet().toArray(new String[0]); } public String[] getColorArray() { return getImpactPerGraphId().values().stream().map(Impact::getColor).toArray(String[]::new); } public static ColoredPathwayParameters create(String pathwayId, Map<String, Impact> impactPerGraphId) { return new AutoValue_ColoredPathwayParameters(pathwayId, impactPerGraphId); } }