@Override public DependencyMetaData withTarget(ComponentSelector target) { if (target instanceof ModuleComponentSelector) { ModuleComponentSelector moduleTarget = (ModuleComponentSelector) target; ModuleVersionSelector requestedVersion = DefaultModuleVersionSelector.newSelector( moduleTarget.getGroup(), moduleTarget.getModule(), moduleTarget.getVersion()); return copyWithTarget(moduleTarget, requestedVersion); } else if (target instanceof ProjectComponentSelector) { return copyWithTarget(target, requested); } else { throw new AssertionError("Invalid component selector type for substitution: " + target); } }