All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.testerum.file_service.mapper.util.ArgNameCodec.kt Maven / Gradle / Ivy

package com.testerum.file_service.mapper.util

object ArgNameCodec {

    private val INVALID_VARIABLE_CHARACTER = Regex("[^_0-9a-zA-Z]")

    fun argToVariableName(argName: String): String {
        if (argName.isEmpty()) {
            return "_"
        }

        var varName: String = argName

        varName = varName.replace(INVALID_VARIABLE_CHARACTER, "_")

        return if (argName[0] in '0'..'9') {
            // variables can't start with a digit
            "_$varName"
        } else {
            varName
        }
    }

    fun variableToArgName(varName: String): String {
        if (varName == "_") {
            return ""
        }

        val argName = StringBuilder()

        for (c in varName) {
            val translated: Char = if (c == '_') {
                ' '
            } else {
                c
            }

            argName.append(translated)
        }

        return if (varName.length >= 2
                && varName[0] == '_'
                && varName[1] in '0'..'9') {
            // remove the extra underscore added to make it a valid variable name
            argName.substring(1)
        } else {
            argName.toString()
        }
    }

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy