| 
									
										
										
										
											2023-03-09 14:49:35 +02:00
										 |  |  | import {JavaBase} from './base-installer'; | 
					
						
							|  |  |  | import {JavaInstallerOptions} from './base-models'; | 
					
						
							|  |  |  | import {LocalDistribution} from './local/installer'; | 
					
						
							|  |  |  | import {ZuluDistribution} from './zulu/installer'; | 
					
						
							|  |  |  | import {AdoptDistribution, AdoptImplementation} from './adopt/installer'; | 
					
						
							|  |  |  | import {TemurinDistribution, TemurinImplementation} from './temurin/installer'; | 
					
						
							|  |  |  | import {LibericaDistributions} from './liberica/installer'; | 
					
						
							|  |  |  | import {MicrosoftDistributions} from './microsoft/installer'; | 
					
						
							| 
									
										
										
										
											2023-03-21 11:32:38 +02:00
										 |  |  | import {SemeruDistribution} from './semeru/installer'; | 
					
						
							| 
									
										
										
										
											2023-03-09 14:49:35 +02:00
										 |  |  | import {CorrettoDistribution} from './corretto/installer'; | 
					
						
							|  |  |  | import {OracleDistribution} from './oracle/installer'; | 
					
						
							| 
									
										
										
										
											2023-09-20 19:22:11 +08:00
										 |  |  | import {DragonwellDistribution} from './dragonwell/installer'; | 
					
						
							| 
									
										
										
										
											2021-04-05 13:02:27 +03:00
										 |  |  | 
 | 
					
						
							|  |  |  | enum JavaDistribution { | 
					
						
							|  |  |  |   Adopt = 'adopt', | 
					
						
							| 
									
										
										
										
											2021-05-17 15:33:21 +02:00
										 |  |  |   AdoptHotspot = 'adopt-hotspot', | 
					
						
							|  |  |  |   AdoptOpenJ9 = 'adopt-openj9', | 
					
						
							| 
									
										
										
										
											2021-08-06 12:12:36 +02:00
										 |  |  |   Temurin = 'temurin', | 
					
						
							| 
									
										
										
										
											2021-04-05 13:02:27 +03:00
										 |  |  |   Zulu = 'zulu', | 
					
						
							| 
									
										
										
										
											2021-11-29 12:15:06 +03:00
										 |  |  |   Liberica = 'liberica', | 
					
						
							| 
									
										
										
										
											2021-12-08 10:50:14 -08:00
										 |  |  |   JdkFile = 'jdkfile', | 
					
						
							| 
									
										
										
										
											2022-04-29 12:38:36 +02:00
										 |  |  |   Microsoft = 'microsoft', | 
					
						
							| 
									
										
										
										
											2023-03-21 11:32:38 +02:00
										 |  |  |   Semeru = 'semeru', | 
					
						
							| 
									
										
										
										
											2023-02-07 16:29:21 +01:00
										 |  |  |   Corretto = 'corretto', | 
					
						
							| 
									
										
										
										
											2023-09-20 19:22:11 +08:00
										 |  |  |   Oracle = 'oracle', | 
					
						
							|  |  |  |   Dragonwell = 'dragonwell' | 
					
						
							| 
									
										
										
										
											2021-04-05 13:02:27 +03:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | export function getJavaDistribution( | 
					
						
							|  |  |  |   distributionName: string, | 
					
						
							|  |  |  |   installerOptions: JavaInstallerOptions, | 
					
						
							|  |  |  |   jdkFile?: string | 
					
						
							|  |  |  | ): JavaBase | null { | 
					
						
							|  |  |  |   switch (distributionName) { | 
					
						
							|  |  |  |     case JavaDistribution.JdkFile: | 
					
						
							|  |  |  |       return new LocalDistribution(installerOptions, jdkFile); | 
					
						
							|  |  |  |     case JavaDistribution.Adopt: | 
					
						
							| 
									
										
										
										
											2021-05-17 15:33:21 +02:00
										 |  |  |     case JavaDistribution.AdoptHotspot: | 
					
						
							| 
									
										
										
										
											2023-03-09 14:49:35 +02:00
										 |  |  |       return new AdoptDistribution( | 
					
						
							|  |  |  |         installerOptions, | 
					
						
							|  |  |  |         AdoptImplementation.Hotspot | 
					
						
							|  |  |  |       ); | 
					
						
							| 
									
										
										
										
											2021-05-17 15:33:21 +02:00
										 |  |  |     case JavaDistribution.AdoptOpenJ9: | 
					
						
							| 
									
										
										
										
											2023-03-09 14:49:35 +02:00
										 |  |  |       return new AdoptDistribution( | 
					
						
							|  |  |  |         installerOptions, | 
					
						
							|  |  |  |         AdoptImplementation.OpenJ9 | 
					
						
							|  |  |  |       ); | 
					
						
							| 
									
										
										
										
											2021-08-06 12:12:36 +02:00
										 |  |  |     case JavaDistribution.Temurin: | 
					
						
							| 
									
										
										
										
											2023-03-09 14:49:35 +02:00
										 |  |  |       return new TemurinDistribution( | 
					
						
							|  |  |  |         installerOptions, | 
					
						
							|  |  |  |         TemurinImplementation.Hotspot | 
					
						
							|  |  |  |       ); | 
					
						
							| 
									
										
										
										
											2021-04-05 13:02:27 +03:00
										 |  |  |     case JavaDistribution.Zulu: | 
					
						
							|  |  |  |       return new ZuluDistribution(installerOptions); | 
					
						
							| 
									
										
										
										
											2021-11-29 12:15:06 +03:00
										 |  |  |     case JavaDistribution.Liberica: | 
					
						
							|  |  |  |       return new LibericaDistributions(installerOptions); | 
					
						
							| 
									
										
										
										
											2021-12-08 10:50:14 -08:00
										 |  |  |     case JavaDistribution.Microsoft: | 
					
						
							|  |  |  |       return new MicrosoftDistributions(installerOptions); | 
					
						
							| 
									
										
										
										
											2023-03-21 11:32:38 +02:00
										 |  |  |     case JavaDistribution.Semeru: | 
					
						
							|  |  |  |       return new SemeruDistribution(installerOptions); | 
					
						
							| 
									
										
										
										
											2022-04-29 12:38:36 +02:00
										 |  |  |     case JavaDistribution.Corretto: | 
					
						
							|  |  |  |       return new CorrettoDistribution(installerOptions); | 
					
						
							| 
									
										
										
										
											2023-02-07 16:29:21 +01:00
										 |  |  |     case JavaDistribution.Oracle: | 
					
						
							|  |  |  |       return new OracleDistribution(installerOptions); | 
					
						
							| 
									
										
										
										
											2023-09-20 19:22:11 +08:00
										 |  |  |     case JavaDistribution.Dragonwell: | 
					
						
							|  |  |  |       return new DragonwellDistribution(installerOptions); | 
					
						
							| 
									
										
										
										
											2021-04-05 13:02:27 +03:00
										 |  |  |     default: | 
					
						
							|  |  |  |       return null; | 
					
						
							|  |  |  |   } | 
					
						
							|  |  |  | } |