File tree Expand file tree Collapse file tree 3 files changed +50
-3
lines changed
main/java/org/utplsql/sqldev
test/java/org/utplsql/sqldev/test Expand file tree Collapse file tree 3 files changed +50
-3
lines changed Original file line number Diff line number Diff line change 1515 */
1616package org.utplsql.sqldev.model
1717
18+ import java.util.List
19+
1820// converted to Xtend based on Java code on https://www.geeksforgeeks.org/longest-common-prefix-using-binary-search/
1921class PrefixTools {
2022 def static int findMinLength (String [] arr , int n ) {
@@ -61,4 +63,22 @@ class PrefixTools {
6163 }
6264 return prefix
6365 }
66+
67+ def static String commonPrefix (List<String > list ) {
68+ if (list. size == = 0 ) {
69+ return " "
70+ } else if (list. size == = 1 ) {
71+ val pos = list. get(0 ). lastIndexOf(" ." );
72+ if (pos > 0 ) {
73+ return list. get(0 ). substring(0 , pos + 1 )
74+ } else {
75+ return " "
76+ }
77+ } else {
78+ var String [] testArray = newArrayOfSize(list. size)
79+ var prefix = commonPrefix(list. toArray(testArray), list. size)
80+ return prefix
81+ }
82+ }
83+
6484}
Original file line number Diff line number Diff line change 1818import java.util.LinkedHashMap
1919import javax.swing.Icon
2020import javax.swing.table.DefaultTableModel
21+ import org.utplsql.sqldev.model.PrefixTools
2122import org.utplsql.sqldev.model.runner.Test
2223import org.utplsql.sqldev.resources.UtplsqlResources
23- import org.utplsql.sqldev.model.PrefixTools
2424
2525class TestOverviewTableModel extends DefaultTableModel {
2626 LinkedHashMap<String , Test > tests
@@ -61,8 +61,7 @@ class TestOverviewTableModel extends DefaultTableModel {
6161 return null
6262 }
6363 if (commonPrefix == = null ) {
64- var String [] testArray = newArrayOfSize(tests. keySet. size)
65- commonPrefix = PrefixTools . commonPrefix(tests. keySet. toArray(testArray), tests. keySet. size)
64+ commonPrefix = PrefixTools . commonPrefix(tests. keySet. toList)
6665 }
6766 switch (col) {
6867 case 0 : {
Original file line number Diff line number Diff line change 1+ package org.utplsql.sqldev.test
2+
3+ import org.junit.Assert
4+ import org.junit.Test
5+ import org.utplsql.sqldev.model.PrefixTools
6+
7+ class PrefixToolsTest {
8+ @Test
9+ def void two () {
10+ val actual = PrefixTools . commonPrefix(#[" junit.test.a" , " junit.test.b" ])
11+ val expected = " junit.test."
12+ Assert . assertEquals(expected, actual)
13+ }
14+
15+ @Test
16+ def void oneWithDot () {
17+ val actual = PrefixTools . commonPrefix(#[" junit.test.a" ])
18+ val expected = " junit.test."
19+ Assert . assertEquals(expected, actual)
20+ }
21+
22+ @Test
23+ def void oneWithoutDot () {
24+ val actual = PrefixTools . commonPrefix(#[" junit-test-a" ])
25+ val expected = " "
26+ Assert . assertEquals(expected, actual)
27+ }
28+ }
You can’t perform that action at this time.
0 commit comments