private void ResolveVersionsUsingHierarchicalRules(JavaPlatformDetectorResult detectorResult) { var javaVersion = ResolveJavaVersion(detectorResult.PlatformVersion); javaVersion = GetMaxSatisfyingJavaVersionAndVerify(javaVersion); var mavenVersion = ResolveMavenVersion(detectorResult.MavenVersion); mavenVersion = GetMaxSatisfyingMavenVersionAndVerify(mavenVersion); detectorResult.PlatformVersion = javaVersion; detectorResult.MavenVersion = mavenVersion; string ResolveJavaVersion(string detectedVersion) { // Explicitly specified version by user wins over detected version if (!string.IsNullOrEmpty(_javaScriptGeneratorOptions.JavaVersion)) { return(_javaScriptGeneratorOptions.JavaVersion); } // If a version was detected, then use it. if (detectedVersion != null) { return(detectedVersion); } // Fallback to default version var versionInfo = _javaVersionProvider.GetVersionInfo(); return(versionInfo.DefaultVersion); } string ResolveMavenVersion(string detectedVersion) { // Explicitly specified version by user wins over detected version if (!string.IsNullOrEmpty(_javaScriptGeneratorOptions.MavenVersion)) { return(_javaScriptGeneratorOptions.MavenVersion); } // If a version was detected, then use it. if (detectedVersion != null) { return(detectedVersion); } // Fallback to default version return(JavaConstants.MavenVersion); } }
private static PlatformDetectorResult GetPlatformDetectorResult(string name, string version) { var result = new PlatformDetectorResult(); switch (name) { case DotNetCoreConstants.PlatformName: result = new DotNetCorePlatformDetectorResult(); break; case NodeConstants.PlatformName: result = new NodePlatformDetectorResult(); break; case PythonConstants.PlatformName: result = new PythonPlatformDetectorResult(); break; case HugoConstants.PlatformName: result = new PlatformDetectorResult(); break; case PhpConstants.PlatformName: result = new PhpPlatformDetectorResult(); break; case JavaConstants.PlatformName: result = new JavaPlatformDetectorResult(); break; case RubyConstants.PlatformName: result = new RubyPlatformDetectorResult(); break; } result.Platform = name; result.PlatformVersion = version; return(result); }