Yaniv Bronhaim has posted comments on this change. Change subject: core: Adding RpmVersion utils ......................................................................
Patch Set 8: (7 comments) .................................................... File backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/utils/RpmVersionUtils.java Line 16: * 0 - if two parts are equals Line 17: * 1 - if the 1st argument is bigger than the 2nd Line 18: * -1 - if the 1st argument is smaller than the 2nd Line 19: */ Line 20: public static int compareRpmPart(String part1, String part2) { parts Line 21: // The method takes the two strings, and for each one of them - Line 22: // Calculates segments of numeric or letters (for each segment - will try Line 23: // to get its maximum possible length) Line 24: // Then it will take two segments from both strings that are located in the same Line 33: while (comps1[counter] != null && comps2[counter] != null Line 34: && comps1[counter].toString().equals(comps2[counter].toString())) { Line 35: counter++; Line 36: } Line 37: // part1 has more parts you should first check if both comps' length are equal to counter, and return 0 if so, no? Line 38: if (counter == comps2.length) { Line 39: return 1; Line 40: } Line 41: // part2 has more parts Line 89: int arrayIndex = 0; Line 90: int index = 0; Line 91: int state = 0; //0 - start , 1 - alphabetic, 2 - numeric - 3 other Line 92: StringBuilder current = new StringBuilder(); Line 93: // The maximum number of segments is the number of charactgers in the string s/charactgers/characters Line 94: while (index < part.length()) { Line 95: // The current character is letter Line 96: if (isLetter(chars[index])) { Line 97: if (state == 2) { Line 90: int index = 0; Line 91: int state = 0; //0 - start , 1 - alphabetic, 2 - numeric - 3 other Line 92: StringBuilder current = new StringBuilder(); Line 93: // The maximum number of segments is the number of charactgers in the string Line 94: while (index < part.length()) { make it for loop for (index=0; index < part.length(); index++) Line 95: // The current character is letter Line 96: if (isLetter(chars[index])) { Line 97: if (state == 2) { Line 98: // in case the current state is "numeric" Line 104: } Line 105: // change state to "alphabetic" Line 106: state = 1; Line 107: current.append(chars[index]); Line 108: } else elif Line 109: // The current character is numeric Line 110: if (Character.isDigit(chars[index])) { Line 111: if (state == 1) { Line 112: // in case the current state is "alphabetic" Line 123: // The character is not a number nor a letter Line 124: // This means a segment has ended Line 125: // The segment should be added to the array Line 126: // and a new buffer should be created Line 127: if (state == 2 || state == 1 || state == 3) { you can just check if (state != 0) Line 128: comps[arrayIndex++] = current; Line 129: current = new StringBuilder(); Line 130: } Line 131: state = 3; .................................................... File backend/manager/modules/common/src/test/java/org/ovirt/engine/core/common/utils/RpmVersionUtilsTest.java Line 35: assertEquals("20130820.fc18.x86_64", parts[2]); Line 36: } Line 37: Line 38: @Test Line 39: public void testFillCompsArray() { you can add bunch of tests here. I recommend to test also edge cases as - 1.1.1g1 , #$?# , 1, #, null and inc.. Line 40: StringBuilder[] result = RpmVersionUtils.fillCompsArray("20130820.1.3.fc18.x86_64"); Line 41: String[] expected = {"20130820","1","3","fc","18","x","86","64"}; Line 42: int counter = 0; Line 43: while (true) { -- To view, visit http://gerrit.ovirt.org/18370 To unsubscribe, visit http://gerrit.ovirt.org/settings Gerrit-MessageType: comment Gerrit-Change-Id: Ia82d09e755b767f254224c84abd16516592715ac Gerrit-PatchSet: 8 Gerrit-Project: ovirt-engine Gerrit-Branch: master Gerrit-Owner: Yair Zaslavsky <yzasl...@redhat.com> Gerrit-Reviewer: Daniel Erez <de...@redhat.com> Gerrit-Reviewer: Douglas Schilling Landgraf <dougsl...@redhat.com> Gerrit-Reviewer: Vojtech Szocs <vsz...@redhat.com> Gerrit-Reviewer: Yair Zaslavsky <yzasl...@redhat.com> Gerrit-Reviewer: Yaniv Bronhaim <ybron...@redhat.com> Gerrit-Reviewer: oVirt Jenkins CI Server Gerrit-HasComments: Yes _______________________________________________ Engine-patches mailing list Engine-patches@ovirt.org http://lists.ovirt.org/mailman/listinfo/engine-patches