package com.redhat.ceylon.eclipse.code.navigator; import static com.redhat.ceylon.eclipse.java2ceylon.Java2CeylonProxies.modelJ2C; import java.util.ArrayList; import java.util.List; import org.eclipse.core.resources.IProject; import com.redhat.ceylon.ide.common.model.BaseCeylonProject; import com.redhat.ceylon.ide.common.model.BaseIdeModule; import com.redhat.ceylon.model.cmr.Repository; public class RepositoryNode { private String displayString; private List<ExternalModuleNode> modules = new ArrayList<>(); final IProject project; public RepositoryNode(IProject project, String displayString) { this.displayString = displayString; this.project = project; } public List<ExternalModuleNode> getModules() { return modules; } public Repository getRepository() { BaseCeylonProject ceylonProject = modelJ2C().ceylonModel().getProject(project); if (ceylonProject != null) { for (Repository r : ceylonProject.getRepositoryManager().getRepositories()) { if (displayString.equals(r.getDisplayString())) { return r; } } } return null; } public void addModule(BaseIdeModule module) { modules.add(new ExternalModuleNode(this, module.getSignature())); } public String getDisplayString() { return displayString; } @Override public int hashCode() { final int prime = 31; int result = 1; result = prime * result + ((displayString == null) ? 0 : displayString.hashCode()); result = prime * result + ((project == null) ? 0 : project.hashCode()); return result; } @Override public boolean equals(Object obj) { if (this == obj) return true; if (obj == null) return false; if (getClass() != obj.getClass()) return false; RepositoryNode other = (RepositoryNode) obj; if (displayString == null) { if (other.displayString != null) return false; } else if (!displayString.equals(other.displayString)) return false; if (project == null) { if (other.project != null) return false; } else if (!project.equals(other.project)) return false; return true; } }