static List getDefaultMethods()

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
    }