in subprojects/groovy-groovysh/src/main/groovy/org/apache/groovy/groovysh/completion/antlr4/ReflectionCompleter.groovy [490:646]
static List<String> getDefaultMethods(final Object instance, final String prefix) {
List<String> candidates = []
if (instance instanceof Iterable) {
[
'any()', 'any(',
'collect()', 'collect(',
'combinations()',
'count(',
'countBy(',
'drop(', 'dropRight(', 'dropWhile(',
'each()', 'each(',
'eachPermutation(',
'every()', 'every(',
'find(', 'findResult(', 'findResults(',
'flatten()',
'init()',
'inject(',
'intersect(',
'join(',
'max()', 'min()',
'reverse()',
'size()',
'sort()',
'split(',
'take(', 'takeRight(', 'takeWhile(',
'toSet()',
'retainAll(', 'removeAll(',
'unique()', 'unique('
].findAll({ it.startsWith(prefix) }).each({ candidates.add(it) })
if (instance instanceof Collection) {
[
'grep('
].findAll({ it.startsWith(prefix) }).each({ candidates.add(it) })
}
if (instance instanceof List) {
[
'collate(',
'execute()', 'execute(',
'pop()',
'transpose()'
].findAll({ it.startsWith(prefix) }).each({ candidates.add(it) })
}
}
if (instance instanceof Map) {
[
'any(',
'collect(',
'collectEntries(',
'collectMany(',
'count(',
'drop(',
'each(',
'every(',
'find(', 'findAll(', 'findResult(', 'findResults(',
'groupEntriesBy(', 'groupBy(',
'inject(', 'intersect(',
'max(', 'min(',
'sort(',
'spread()',
'subMap(',
'take(', 'takeWhile('
].findAll({ it.startsWith(prefix) }).each({ candidates.add(it) })
}
if (instance instanceof File) {
[
'append(',
'createTempDir()', 'createTempDir(',
'deleteDir()', 'directorySize()',
'eachByte(', 'eachDir(', 'eachDirMatch(', 'eachDirRecurse(', 'eachFile(', 'eachFileMatch(', 'eachFileRecurse(', 'eachLine(',
'filterLine(',
'getBytes()', 'getText()', 'getText(',
'newInputStream()', 'newOutputStream()', 'newPrintWriter()', 'newPrintWriter(', 'newReader()', 'newReader(', 'newWriter()', 'newWriter(',
'readBytes()', 'readLines(',
'setBytes(', 'setText(', 'size()', 'splitEachLine(',
'traverse(',
'withInputStream(', 'withOutputStream(', 'withPrintWriter(', 'withReader(', 'withWriter(', 'withWriterAppend(', 'write('
].findAll({ it.startsWith(prefix) }).each({ candidates.add(it) })
}
if (instance instanceof String) {
[
'capitalize()', 'center(', 'collectReplacements(', 'count(',
'decodeBase64()', 'decodeHex()', 'denormalize()',
'eachLine(', 'eachMatch(', 'execute()', 'execute(',
'find(', 'findAll(',
'isAllWhitespace()', 'isBigDecimal()', 'isBigInteger()', 'isDouble()', 'isFloat()', 'isInteger()', 'isLong()', 'isNumber()',
'normalize()',
'padLeft(', 'padRight(',
'readLines()', 'reverse()',
'size()', 'splitEachLine(', 'stripIndent(', 'stripMargin(',
'toBigDecimal()', 'toBigInteger()', 'toBoolean()', 'toCharacter()', 'toDouble()', 'toFloat()', 'toInteger()',
'toList()', 'toLong()', 'toSet()', 'toShort()', 'toURI()', 'toURL()',
'tokenize(', 'tr('
].findAll({ it.startsWith(prefix) }).each({ candidates.add(it) })
}
if (instance instanceof URL) {
[
'eachLine(',
'filterLine(',
'getBytes()', 'getBytes(', 'getText()', 'getText(',
'newInputStream()', 'newInputStream(', 'newReader()', 'newReader(',
'readLines()', 'readLines(',
'splitEachLine(',
'withInputStream(', 'withReader('
].findAll({ it.startsWith(prefix) }).each({ candidates.add(it) })
}
if (instance instanceof InputStream) {
[
'eachLine(',
'filterLine(',
'getBytes()', 'getText()', 'getText(',
'newReader()', 'newReader(',
'readLines()', 'readLines(',
'splitEachLine(',
'withReader(', 'withStream('
].findAll({ it.startsWith(prefix) }).each({ candidates.add(it) })
}
if (instance instanceof OutputStream) {
[
'newPrintWriter()', 'newWriter()', 'newWriter(',
'setBytes(',
'withPrintWriter(', 'withStream(', 'withWriter('
].findAll({ it.startsWith(prefix) }).each({ candidates.add(it) })
}
if (instance instanceof Number) {
[
'abs()',
'downto(',
'times(',
'power(',
'upto('
].findAll({ it.startsWith(prefix) }).each({ candidates.add(it) })
}
Class clazz = instance.getClass()
if (clazz != null && clazz != Class && clazz.isArray()) {
[
'any()', 'any(',
'collect()', 'collect(',
'count(',
'countBy(',
'drop(', 'dropRight(', 'dropWhile(',
'each()', 'each(',
'every()', 'every(',
'find(', 'findResult(',
'flatten()',
'init()',
'inject(',
'join(',
'max()', 'min()',
'reverse()',
'size()',
'sort()',
'split(',
'take(', 'takeRight(', 'takeWhile('
].findAll({ it.startsWith(prefix) }).each({ candidates.add(it) })
}
return candidates
}