Logic Variables

The default variable resolver also provides the following logic variables for performing simple logical operations:

- {@link oaj.svl.vars.IfVar} - $IF{arg,then[,else]}
- {@link oaj.svl.vars.SwitchVar} - $SW{arg,pattern1:then1[,pattern2:then2...]}
- {@link oaj.svl.vars.CoalesceVar} - $CO{arg1[,arg2...]}
- {@link oaj.svl.vars.PatternMatchVar} - $PM{arg,pattern}
- {@link oaj.svl.vars.NotEmptyVar} - $NE{arg}
- {@link oaj.svl.vars.UpperCaseVar} - $UC{arg}
- {@link oaj.svl.vars.LowerCaseVar} - $LC{arg}

The $IF variable can be used for simple if/else logic:

# Value set to 'foo' if myBooleanProperty is true key1 = $IF{ $S{myBooleanProperty}, foo } # Value set to 'foo' if myBooleanProperty is true, 'bar' if false. key2 = $IF{ $S{myBooleanProperty}, foo, bar } # Value set to key1 value if myBooleanProperty is true, key2 value if false. key3 = $IF{ $S{myBooleanProperty}, $C{key1}, $C{key2} }

The $SW variable can be used for switch blocks based on pattern matching:

# Shell command depends on the OS shellCommand = $SW{ $LC{$S{os.name}}, *win*: bat, linux: bash, *: sh }

The $CO variable can be used for coalescing of values (finding the first non-null/empty match):

# Debug flag can be enabled by system property or environment variable. debug = $CO{ $S{debug}, $E{DEBUG}, false }

The $PM variable can be used for calculating boolean values:

# Debug flag can be enabled by system property or environment variable. isWindows = $PM{ $LC{$S{os.name}}, *win* }