package net.sf.eclipsefp.haskell.core.cabal; import java.util.ArrayList; import java.util.LinkedHashSet; import java.util.List; import java.util.Set; /** * a reference to a Cabal Package (different than CabalPackage) * @author JP Moresmau * */ public class CabalPackageRef { private String name; /** * all versions */ private final ArrayList<String> versions=new ArrayList<>(); /** * versions installed */ private final Set<String> installed=new LinkedHashSet<>(); public String getName() { return name; } public void setName( final String name ) { this.name = name; } public ArrayList<String> getVersions() { return versions; } public List<CabalPackageVersion> getCabalPackageVersions(){ List<CabalPackageVersion> ret=new ArrayList<>(); for (int a=0;a<versions.size();a++){ ret.add(new CabalPackageVersion( this, a,installed.contains( versions.get(a) ))); } return ret; } @Override public String toString() { return name; } public Set<String> getInstalled() { return installed; } public boolean isInstalled(){ return installed.size()>0; // we're installed if at least one version is installed } }