Created
February 10, 2017 21:06
-
-
Save brianoflan/5eed7067c4d84a67f9eb3017cb17c506 to your computer and use it in GitHub Desktop.
Jenkinsfile / Pipeline DSL Groovy check if string is null or empty
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
def isStringBlankOrNull(s) { | |
if ( s == null ) { | |
return true | |
} else if ( 0 == s.compareTo("") ) { | |
return true | |
} | |
return false | |
} | |
stage('some stage') { | |
node() { | |
_null = null | |
blank = "" | |
names_list = [ "null", "''", "\"\"", "\"\${blank}\"", "\"\${''}\"", "'string single quote'", "\"string double quote\"", "/regular expression/", "\"\${_null}\"", ] | |
values_list = [ null, '', "", "${blank}", "${''}", 'string single quote', "string double quote", /regular expression/, "${_null}", ] | |
for (int i = 0; i < names_list.size(); i++ ) { | |
name = names_list[i] | |
value = values_list[i] | |
_isStringBlankOrNull = isStringBlankOrNull(value) | |
n = ( value == null ) ? true : false | |
try { | |
c = value.class | |
} catch( e ) { | |
c = "" | |
} | |
try { | |
blank_cmp = value.compareTo("") | |
} catch( e ) { | |
blank_cmp = "" | |
} | |
echo "${i}: name {${name}} => value {${value}} (Is null: ${n}; class '${c}'; compare to blank: '${blank_cmp}'; isStringBlankOrNull '${_isStringBlankOrNull}')." | |
} | |
} | |
} | |
// OUTPUT: | |
// [Pipeline] echo | |
// 0: name {null} => value {null} (Is null: true; class ''; compare to blank: ''; isStringBlankOrNull 'true'). | |
// [Pipeline] echo | |
// 1: name {''} => value {} (Is null: false; class 'class java.lang.String'; compare to blank: '0'; isStringBlankOrNull 'true'). | |
// [Pipeline] echo | |
// 2: name {""} => value {} (Is null: false; class 'class java.lang.String'; compare to blank: '0'; isStringBlankOrNull 'true'). | |
// [Pipeline] echo | |
// 3: name {"${blank}"} => value {} (Is null: false; class 'class org.codehaus.groovy.runtime.GStringImpl'; compare to blank: '0'; isStringBlankOrNull 'true'). | |
// [Pipeline] echo | |
// 4: name {"${''}"} => value {} (Is null: false; class 'class org.codehaus.groovy.runtime.GStringImpl'; compare to blank: '0'; isStringBlankOrNull 'true'). | |
// [Pipeline] echo | |
// 5: name {'string single quote'} => value {string single quote} (Is null: false; class 'class java.lang.String'; compare to blank: '19'; isStringBlankOrNull 'false'). | |
// [Pipeline] echo | |
// 6: name {"string double quote"} => value {string double quote} (Is null: false; class 'class java.lang.String'; compare to blank: '19'; isStringBlankOrNull 'false'). | |
// [Pipeline] echo | |
// 7: name {/regular expression/} => value {regular expression} (Is null: false; class 'class java.lang.String'; compare to blank: '18'; isStringBlankOrNull 'false'). | |
// [Pipeline] echo | |
// 8: name {"${_null}"} => value {null} (Is null: false; class 'class org.codehaus.groovy.runtime.GStringImpl'; compare to blank: '4'; isStringBlankOrNull 'false'). | |
// |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment