Posts Tagged ‘Code’
Multi-level ternary operator
March 24, 2010
Leave a comment
Love one. Can’t be easily debugged, probably .. But reads very nicely:
String getScmClass() { ( this.@scmClass == 'svn' ) ? 'hudson.scm.SubversionSCM' : ( this.@scmClass == 'git' ) ? 'hudson.plugins.git.GitSCM' : null }
Still, standard mapping is usually better – it allows to dump all known options:
Map scmClasses = [ svn : 'hudson.scm.SubversionSCM', git : 'hudson.plugins.git.GitSCM' ] String getScmClass() { def scmClass = scmClasses[ this.@scmClass ] assert scmClass, "Unknown [${this.@scmClass}]. Known classes are ${scmClasses.keySet()}" scmClass }