From 134584956ae048445be9d36fd1b95e6961c5bc2c Mon Sep 17 00:00:00 2001 From: Roman Shevchenko Date: Wed, 17 Jan 2018 18:32:25 +0100 Subject: [PATCH] [platform] tunes Java version formatting --- .../com/intellij/util/lang/JavaVersion.java | 12 ++++++------ .../com/intellij/util/lang/JavaVersionTest.kt | 19 ++++++++++++++++--- 2 files changed, 22 insertions(+), 9 deletions(-) diff --git a/platform/util/src/com/intellij/util/lang/JavaVersion.java b/platform/util/src/com/intellij/util/lang/JavaVersion.java index 8efeeaa0d5e4..68cbc6681ca4 100644 --- a/platform/util/src/com/intellij/util/lang/JavaVersion.java +++ b/platform/util/src/com/intellij/util/lang/JavaVersion.java @@ -1,6 +1,4 @@ -/* - * Copyright 2000-2018 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file. - */ +// Copyright 2000-2018 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file. package com.intellij.util.lang; import com.intellij.openapi.util.text.StringUtil; @@ -102,13 +100,15 @@ public final class JavaVersion implements Comparable { StringBuilder sb = new StringBuilder(); if (feature > 8) { sb.append(feature); - if (minor > 0 || update > 0) sb.append('.').append(minor).append('.').append(update); + if (minor > 0 || update > 0) sb.append('.').append(minor); + if (update > 0) sb.append('.').append(update); if (ea) sb.append("-ea"); if (build > 0) sb.append('+').append(build); } else { - sb.append("1.").append(feature).append('.').append(minor); - if (update > 0 || ea) sb.append('_').append(update); + sb.append("1.").append(feature); + if (minor > 0 || update > 0 || ea || build > 0) sb.append('.').append(minor); + if (update > 0) sb.append('_').append(update); if (ea) sb.append("-ea"); if (build > 0) sb.append("-b").append(build); } diff --git a/platform/util/testSrc/com/intellij/util/lang/JavaVersionTest.kt b/platform/util/testSrc/com/intellij/util/lang/JavaVersionTest.kt index a8a55cdf7ed0..41310fa195ed 100644 --- a/platform/util/testSrc/com/intellij/util/lang/JavaVersionTest.kt +++ b/platform/util/testSrc/com/intellij/util/lang/JavaVersionTest.kt @@ -1,6 +1,4 @@ -/* - * Copyright 2000-2018 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file. - */ +// Copyright 2000-2018 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file. package com.intellij.util.lang import org.assertj.core.api.Assertions.assertThat @@ -69,6 +67,21 @@ class JavaVersionTest { assertThat(JavaVersion.compose(8, 0, 0, 0, false)).isGreaterThan(JavaVersion.compose(8, 0, 0, 0, true)) } + @Test fun formatting() { + assertThat(JavaVersion.compose(8, 0, 0, 0, false).toString()).isEqualTo("1.8") + assertThat(JavaVersion.compose(8, 1, 0, 0, false).toString()).isEqualTo("1.8.1") + assertThat(JavaVersion.compose(8, 0, 1, 0, false).toString()).isEqualTo("1.8.0_1") + assertThat(JavaVersion.compose(8, 0, 0, 1, false).toString()).isEqualTo("1.8.0-b1") + assertThat(JavaVersion.compose(8, 0, 0, 0, true).toString()).isEqualTo("1.8.0-ea") + assertThat(JavaVersion.compose(8, 1, 2, 3, true).toString()).isEqualTo("1.8.1_2-ea-b3") + assertThat(JavaVersion.compose(9, 0, 0, 0, false).toString()).isEqualTo("9") + assertThat(JavaVersion.compose(9, 1, 0, 0, false).toString()).isEqualTo("9.1") + assertThat(JavaVersion.compose(9, 0, 1, 0, false).toString()).isEqualTo("9.0.1") + assertThat(JavaVersion.compose(9, 0, 0, 1, false).toString()).isEqualTo("9+1") + assertThat(JavaVersion.compose(9, 0, 0, 0, true).toString()).isEqualTo("9-ea") + assertThat(JavaVersion.compose(9, 1, 2, 3, true).toString()).isEqualTo("9.1.2-ea+3") + } + private fun doTest(versionString: String, feature: Int, minor: Int = 0,