diff options
Diffstat (limited to 'sdkmanager/libs')
2 files changed, 37 insertions, 0 deletions
diff --git a/sdkmanager/libs/sdklib/src/com/android/sdklib/internal/repository/packages/FullRevision.java b/sdkmanager/libs/sdklib/src/com/android/sdklib/internal/repository/packages/FullRevision.java index 4c4387b..715028e 100755 --- a/sdkmanager/libs/sdklib/src/com/android/sdklib/internal/repository/packages/FullRevision.java +++ b/sdkmanager/libs/sdklib/src/com/android/sdklib/internal/repository/packages/FullRevision.java @@ -169,6 +169,31 @@ public class FullRevision implements Comparable<FullRevision> { return sb.toString(); } + /** + * Returns the version number as an integer array, in the form + * [major, minor, micro] or [major, minor, micro, preview]. + * + * This is useful to initialize an instance of + * {@code org.apache.tools.ant.util.DeweyDecimal} using a + * {@link FullRevision}. + * + * @param includePreview If true the output will contain 4 fields + * to include the preview number (even if 0.) If false the output + * will contain only 3 fields (major, minor and micro.) + * @return A new int array, never null, with either 3 or 4 fields. + */ + public int[] toIntArray(boolean includePreview) { + int size = includePreview ? 4 : 3; + int[] result = new int[size]; + result[0] = mMajor; + result[1] = mMinor; + result[2] = mMicro; + if (result.length > 3) { + result[3] = mPreview; + } + return result; + } + @Override public int hashCode() { final int prime = 31; diff --git a/sdkmanager/libs/sdklib/tests/src/com/android/sdklib/internal/repository/packages/FullRevisionTest.java b/sdkmanager/libs/sdklib/tests/src/com/android/sdklib/internal/repository/packages/FullRevisionTest.java index d072d05..07e8186 100755 --- a/sdkmanager/libs/sdklib/tests/src/com/android/sdklib/internal/repository/packages/FullRevisionTest.java +++ b/sdkmanager/libs/sdklib/tests/src/com/android/sdklib/internal/repository/packages/FullRevisionTest.java @@ -16,6 +16,8 @@ package com.android.sdklib.internal.repository.packages; +import java.util.Arrays; + import junit.framework.TestCase; public class FullRevisionTest extends TestCase { @@ -31,6 +33,8 @@ public class FullRevisionTest extends TestCase { assertEquals(p, FullRevision.parseRevision("5")); assertEquals("5.0.0", p.toString()); assertEquals(p, FullRevision.parseRevision("5.0.0")); + assertEquals("[5, 0, 0]", Arrays.toString(p.toIntArray(false /*includePreview*/))); + assertEquals("[5, 0, 0, 0]", Arrays.toString(p.toIntArray(true /*includePreview*/))); p = new FullRevision(5, 0, 0, 6); assertEquals(5, p.getMajor()); @@ -42,6 +46,8 @@ public class FullRevisionTest extends TestCase { assertEquals(p, FullRevision.parseRevision("5 rc6")); assertEquals("5.0.0 rc6", p.toString()); assertEquals(p, FullRevision.parseRevision("5.0.0 rc6")); + assertEquals("[5, 0, 0]", Arrays.toString(p.toIntArray(false /*includePreview*/))); + assertEquals("[5, 0, 0, 6]", Arrays.toString(p.toIntArray(true /*includePreview*/))); p = new FullRevision(6, 7, 0); assertEquals(6, p.getMajor()); @@ -53,6 +59,8 @@ public class FullRevisionTest extends TestCase { assertEquals(p, FullRevision.parseRevision("6.7")); assertEquals("6.7.0", p.toString()); assertEquals(p, FullRevision.parseRevision("6.7.0")); + assertEquals("[6, 7, 0]", Arrays.toString(p.toIntArray(false /*includePreview*/))); + assertEquals("[6, 7, 0, 0]", Arrays.toString(p.toIntArray(true /*includePreview*/))); p = new FullRevision(10, 11, 12, FullRevision.NOT_A_PREVIEW); assertEquals(10, p.getMajor()); @@ -63,6 +71,8 @@ public class FullRevisionTest extends TestCase { assertEquals("10.11.12", p.toShortString()); assertEquals("10.11.12", p.toString()); assertEquals(p, FullRevision.parseRevision("10.11.12")); + assertEquals("[10, 11, 12]", Arrays.toString(p.toIntArray(false /*includePreview*/))); + assertEquals("[10, 11, 12, 0]", Arrays.toString(p.toIntArray(true /*includePreview*/))); p = new FullRevision(10, 11, 12, 13); assertEquals(10, p.getMajor()); @@ -76,6 +86,8 @@ public class FullRevisionTest extends TestCase { assertEquals(p, FullRevision.parseRevision(" 10.11.12 rc13")); assertEquals(p, FullRevision.parseRevision("10.11.12 rc13 ")); assertEquals(p, FullRevision.parseRevision(" 10.11.12 rc13 ")); + assertEquals("[10, 11, 12]", Arrays.toString(p.toIntArray(false /*includePreview*/))); + assertEquals("[10, 11, 12, 13]", Arrays.toString(p.toIntArray(true /*includePreview*/))); } public final void testParseError() { |