@Override public Dependency addDependency(Dependency dependency) { Dependency existingDep = getEdge(dependency.getFrom(), dependency.getTo()); if (existingDep != null) { return existingDep; } Dependency parentDependency = dependency.getParent(); if (parentDependency != null) { addDependency(parentDependency); } if (registerDependency(dependency)) { persistence.saveDependency(currentProject, dependency, parentDependency); } return dependency; }