<!--
                        Licensed to the Apache Software Foundation (ASF) under one or more
                        contributor license agreements.  See the NOTICE file distributed with
                        this work for additional information regarding copyright ownership.
                        The ASF licenses this file to You under the Apache License, Version 2.0
                        (the "License"); you may not use this file except in compliance with
                        the License.  You may obtain a copy of the License at

                        http://www.apache.org/licenses/LICENSE-2.0

                        Unless required by applicable law or agreed to in writing, software
                        distributed under the License is distributed on an "AS IS" BASIS,
                        WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
                        See the License for the specific language governing permissions and
                        limitations under the License.
                        -->
                        <!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<!--[if IE]><meta http-equiv="X-UA-Compatible" content="IE=edge"><![endif]-->
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="generator" content="Asciidoctor 1.5.8">
<meta name="author" content="Apache NiFi Team">
<title>Apache NiFi Expression Language Guide</title>
<style>
/* Asciidoctor default stylesheet | MIT License | http://asciidoctor.org */
/* Copyright (C) 2012-2015 Dan Allen, Ryan Waldron and the Asciidoctor Project

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE. */
/* Remove the comments around the @import statement below when using this as a custom stylesheet */
@import "https://fonts.googleapis.com/css?family=Open+Sans:300,300italic,400,400italic,600,600italic%7CNoto+Serif:400,400italic,700,700italic%7CDroid+Sans+Mono:400";
article,aside,details,figcaption,figure,footer,header,hgroup,main,nav,section,summary{display:block}
audio,canvas,video{display:inline-block}
audio:not([controls]){display:none;height:0}
[hidden],template{display:none}
script{display:none!important}
html{font-family:sans-serif;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}
body{margin:0}
a{background:transparent}
a:focus{outline:thin dotted}
a:active,a:hover{outline:0}
h1{font-size:2em;margin:.67em 0}
abbr[title]{border-bottom:1px dotted}
b,strong{font-weight:bold}
dfn{font-style:italic}
hr{-moz-box-sizing:content-box;box-sizing:content-box;height:0}
mark{background:#ff0;color:#000}
code,kbd,pre,samp{font-family:monospace;font-size:1em}
pre{white-space:pre-wrap}
q{quotes:"\201C" "\201D" "\2018" "\2019"}
small{font-size:80%}
sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}
sup{top:-.5em}
sub{bottom:-.25em}
img{border:0}
svg:not(:root){overflow:hidden}
figure{margin:0}
fieldset{border:1px solid silver;margin:0 2px;padding:.35em .625em .75em}
legend{border:0;padding:0}
button,input,select,textarea{font-family:inherit;font-size:100%;margin:0}
button,input{line-height:normal}
button,select{text-transform:none}
button,html input[type="button"],input[type="reset"],input[type="submit"]{-webkit-appearance:button;cursor:pointer}
button[disabled],html input[disabled]{cursor:default}
input[type="checkbox"],input[type="radio"]{box-sizing:border-box;padding:0}
input[type="search"]{-webkit-appearance:textfield;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;box-sizing:content-box}
input[type="search"]::-webkit-search-cancel-button,input[type="search"]::-webkit-search-decoration{-webkit-appearance:none}
button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0}
textarea{overflow:auto;vertical-align:top}
table{border-collapse:collapse;border-spacing:0}
*,*:before,*:after{-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}
html,body{font-size:100%}
body{background:#fff;color:rgba(0,0,0,.8);padding:0;margin:0;font-family:"Noto Serif","DejaVu Serif",serif;font-weight:400;font-style:normal;line-height:1;position:relative;cursor:auto}
a:hover{cursor:pointer}
img,object,embed{max-width:100%;height:auto}
object,embed{height:100%}
img{-ms-interpolation-mode:bicubic}
#map_canvas img,#map_canvas embed,#map_canvas object,.map_canvas img,.map_canvas embed,.map_canvas object{max-width:none!important}
.left{float:left!important}
.right{float:right!important}
.text-left{text-align:left!important}
.text-right{text-align:right!important}
.text-center{text-align:center!important}
.text-justify{text-align:justify!important}
.hide{display:none}
.antialiased,body{-webkit-font-smoothing:antialiased}
img{display:inline-block;vertical-align:middle}
textarea{height:auto;min-height:50px}
select{width:100%}
p.lead,.paragraph.lead>p,#preamble>.sectionbody>.paragraph:first-of-type p{font-size:1.21875em;line-height:1.6}
.subheader,.admonitionblock td.content>.title,.audioblock>.title,.exampleblock>.title,.imageblock>.title,.listingblock>.title,.literalblock>.title,.stemblock>.title,.openblock>.title,.paragraph>.title,.quoteblock>.title,table.tableblock>.title,.verseblock>.title,.videoblock>.title,.dlist>.title,.olist>.title,.ulist>.title,.qlist>.title,.hdlist>.title{line-height:1.45;color:#7a2518;font-weight:400;margin-top:0;margin-bottom:.25em}
div,dl,dt,dd,ul,ol,li,h1,h2,h3,#toctitle,.sidebarblock>.content>.title,h4,h5,h6,pre,form,p,blockquote,th,td{margin:0;padding:0;direction:ltr}
a{color:#2156a5;text-decoration:underline;line-height:inherit}
a:hover,a:focus{color:#1d4b8f}
a img{border:none}
p{font-family:inherit;font-weight:400;font-size:1em;line-height:1.6;margin-bottom:1.25em;text-rendering:optimizeLegibility}
p aside{font-size:.875em;line-height:1.35;font-style:italic}
h1,h2,h3,#toctitle,.sidebarblock>.content>.title,h4,h5,h6{font-family:"Open Sans","DejaVu Sans",sans-serif;font-weight:300;font-style:normal;color:#ba3925;text-rendering:optimizeLegibility;margin-top:1em;margin-bottom:.5em;line-height:1.0125em}
h1 small,h2 small,h3 small,#toctitle small,.sidebarblock>.content>.title small,h4 small,h5 small,h6 small{font-size:60%;color:#e99b8f;line-height:0}
h1{font-size:2.125em}
h2{font-size:1.6875em}
h3,#toctitle,.sidebarblock>.content>.title{font-size:1.375em}
h4,h5{font-size:1.125em}
h6{font-size:1em}
hr{border:solid #ddddd8;border-width:1px 0 0;clear:both;margin:1.25em 0 1.1875em;height:0}
em,i{font-style:italic;line-height:inherit}
strong,b{font-weight:bold;line-height:inherit}
small{font-size:60%;line-height:inherit}
code{font-family:"Droid Sans Mono","DejaVu Sans Mono",monospace;font-weight:400;color:rgba(0,0,0,.9);padding-right: 1px;}
ul,ol,dl{font-size:1em;line-height:1.6;margin-bottom:1.25em;list-style-position:outside;font-family:inherit}
ul,ol,ul.no-bullet,ol.no-bullet{margin-left:1.5em}
ul li ul,ul li ol{margin-left:1.25em;margin-bottom:0;font-size:1em}
ul.square li ul,ul.circle li ul,ul.disc li ul{list-style:inherit}
ul.square{list-style-type:square}
ul.circle{list-style-type:circle}
ul.disc{list-style-type:disc}
ul.no-bullet{list-style:none}
ol li ul,ol li ol{margin-left:1.25em;margin-bottom:0}
dl dt{margin-bottom:.3125em;font-weight:bold}
dl dd{margin-bottom:1.25em}
abbr,acronym{text-transform:uppercase;font-size:90%;color:rgba(0,0,0,.8);border-bottom:1px dotted #ddd;cursor:help}
abbr{text-transform:none}
blockquote{margin:0 0 1.25em;padding:.5625em 1.25em 0 1.1875em;border-left:1px solid #ddd}
blockquote cite{display:block;font-size:.9375em;color:rgba(0,0,0,.6)}
blockquote cite:before{content:"\2014 \0020"}
blockquote cite a,blockquote cite a:visited{color:rgba(0,0,0,.6)}
blockquote,blockquote p{line-height:1.6;color:rgba(0,0,0,.85)}
@media only screen and (min-width:768px){h1,h2,h3,#toctitle,.sidebarblock>.content>.title,h4,h5,h6{line-height:1.2}
h1{font-size:2.75em}
h2{font-size:2.3125em}
h3,#toctitle,.sidebarblock>.content>.title{font-size:1.6875em}
h4{font-size:1.4375em}}table{background:#fff;margin-bottom:1.25em;border:solid 1px #dedede}
table thead,table tfoot{background:#f7f8f7;font-weight:bold}
table thead tr th,table thead tr td,table tfoot tr th,table tfoot tr td{padding:.5em .625em .625em;font-size:inherit;color:rgba(0,0,0,.8);text-align:left}
table tr th,table tr td{padding:.5625em .625em;font-size:inherit;color:rgba(0,0,0,.8)}
table tr.even,table tr.alt,table tr:nth-of-type(even){background:#f8f8f7}
table thead tr th,table tfoot tr th,table tbody tr td,table tr td,table tfoot tr td{display:table-cell;line-height:1.6}
h1,h2,h3,#toctitle,.sidebarblock>.content>.title,h4,h5,h6{line-height:1.2;word-spacing:-.05em}
h1 strong,h2 strong,h3 strong,#toctitle strong,.sidebarblock>.content>.title strong,h4 strong,h5 strong,h6 strong{font-weight:400}
.clearfix:before,.clearfix:after,.float-group:before,.float-group:after{content:" ";display:table}
.clearfix:after,.float-group:after{clear:both}
*:not(pre)>code{font-size:.9375em;font-style:normal!important;letter-spacing:0;word-spacing:-.15em;background-color:#f7f7f8;-webkit-border-radius:4px;border-radius:4px;line-height:1.45;text-rendering:optimizeSpeed}
pre,pre>code{line-height:1.45;color:rgba(0,0,0,.9);font-family:"Droid Sans Mono","DejaVu Sans Mono",monospace;font-weight:400;text-rendering:optimizeSpeed}
.keyseq{color:rgba(51,51,51,.8)}
kbd{display:inline-block;color:rgba(0,0,0,.8);font-size:.75em;line-height:1.4;background-color:#f7f7f7;border:1px solid #ccc;-webkit-border-radius:3px;border-radius:3px;-webkit-box-shadow:0 1px 0 rgba(0,0,0,.2),0 0 0 .1em white inset;box-shadow:0 1px 0 rgba(0,0,0,.2),0 0 0 .1em #fff inset;margin:-.15em .15em 0 .15em;padding:.2em .6em .2em .5em;vertical-align:middle;white-space:nowrap}
.keyseq kbd:first-child{margin-left:0}
.keyseq kbd:last-child{margin-right:0}
.menuseq,.menu{color:rgba(0,0,0,.8)}
b.button:before,b.button:after{position:relative;top:-1px;font-weight:400}
b.button:before{content:"[";padding:0 3px 0 2px}
b.button:after{content:"]";padding:0 2px 0 3px}
p a>code:hover{color:rgba(0,0,0,.9)}
#header,#content,#footnotes,#footer{width:100%;margin-left:auto;margin-right:auto;margin-top:0;margin-bottom:0;max-width:62.5em;*zoom:1;position:relative;padding-left:.9375em;padding-right:.9375em}
#header:before,#header:after,#content:before,#content:after,#footnotes:before,#footnotes:after,#footer:before,#footer:after{content:" ";display:table}
#header:after,#content:after,#footnotes:after,#footer:after{clear:both}
#content{margin-top:1.25em}
#content:before{content:none}
#header>h1:first-child{color:rgba(0,0,0,.85);margin-top:2.25rem;margin-bottom:0}
#header>h1:first-child+#toc{margin-top:8px;border-top:1px solid #ddddd8}
#header>h1:only-child,body.toc2 #header>h1:nth-last-child(2){border-bottom:1px solid #ddddd8;padding-bottom:8px}
#header .details{border-bottom:1px solid #ddddd8;line-height:1.45;padding-top:.25em;padding-bottom:.25em;padding-left:.25em;color:rgba(0,0,0,.6);display:-ms-flexbox;display:-webkit-flex;display:flex;-ms-flex-flow:row wrap;-webkit-flex-flow:row wrap;flex-flow:row wrap}
#header .details span:first-child{margin-left:-.125em}
#header .details span.email a{color:rgba(0,0,0,.85)}
#header .details br{display:none}
#header .details br+span:before{content:"\00a0\2013\00a0"}
#header .details br+span.author:before{content:"\00a0\22c5\00a0";color:rgba(0,0,0,.85)}
#header .details br+span#revremark:before{content:"\00a0|\00a0"}
#header #revnumber{text-transform:capitalize}
#header #revnumber:after{content:"\00a0"}
#content>h1:first-child:not([class]){color:rgba(0,0,0,.85);border-bottom:1px solid #ddddd8;padding-bottom:8px;margin-top:0;padding-top:1rem;margin-bottom:1.25rem}
#toc{border-bottom:1px solid #efefed;padding-bottom:.5em}
#toc>ul{margin-left:.125em}
#toc ul.sectlevel0>li>a{font-style:italic}
#toc ul.sectlevel0 ul.sectlevel1{margin:.5em 0}
#toc ul{font-family:"Open Sans","DejaVu Sans",sans-serif;list-style-type:none}
#toc a{text-decoration:none}
#toc a:active{text-decoration:underline}
#toctitle{color:#7a2518;font-size:1.2em}
@media only screen and (min-width:768px){#toctitle{font-size:1.375em}
body.toc2{padding-left:15em;padding-right:0}
#toc.toc2{margin-top:0!important;background-color:#f8f8f7;position:fixed;width:15em;left:0;top:0;border-right:1px solid #efefed;border-top-width:0!important;border-bottom-width:0!important;z-index:1000;padding:1.25em 1em;height:100%;overflow:auto}
#toc.toc2 #toctitle{margin-top:0;font-size:1.2em}
#toc.toc2>ul{font-size:.9em;margin-bottom:0}
#toc.toc2 ul ul{margin-left:0;padding-left:1em}
#toc.toc2 ul.sectlevel0 ul.sectlevel1{padding-left:0;margin-top:.5em;margin-bottom:.5em}
body.toc2.toc-right{padding-left:0;padding-right:15em}
body.toc2.toc-right #toc.toc2{border-right-width:0;border-left:1px solid #efefed;left:auto;right:0}}@media only screen and (min-width:1280px){body.toc2{padding-left:20em;padding-right:0}
#toc.toc2{width:20em}
#toc.toc2 #toctitle{font-size:1.375em}
#toc.toc2>ul{font-size:.95em}
#toc.toc2 ul ul{padding-left:1.25em}
body.toc2.toc-right{padding-left:0;padding-right:20em}}#content #toc{border-style:solid;border-width:1px;border-color:#e0e0dc;margin-bottom:1.25em;padding:1.25em;background:#f8f8f7;-webkit-border-radius:4px;border-radius:4px}
#content #toc>:first-child{margin-top:0}
#content #toc>:last-child{margin-bottom:0}
#footer{max-width:100%;background-color:rgba(0,0,0,.8);padding:1.25em}
#footer-text{color:rgba(255,255,255,.8);line-height:1.44}
.sect1{padding-bottom:.625em}
@media only screen and (min-width:768px){.sect1{padding-bottom:1.25em}}.sect1+.sect1{border-top:1px solid #efefed}
#content h1>a.anchor,h2>a.anchor,h3>a.anchor,#toctitle>a.anchor,.sidebarblock>.content>.title>a.anchor,h4>a.anchor,h5>a.anchor,h6>a.anchor{position:absolute;z-index:1001;width:1.5ex;margin-left:-1.5ex;display:block;text-decoration:none!important;visibility:hidden;text-align:center;font-weight:400}
#content h1>a.anchor:before,h2>a.anchor:before,h3>a.anchor:before,#toctitle>a.anchor:before,.sidebarblock>.content>.title>a.anchor:before,h4>a.anchor:before,h5>a.anchor:before,h6>a.anchor:before{content:"\00A7";font-size:.85em;display:block;padding-top:.1em}
#content h1:hover>a.anchor,#content h1>a.anchor:hover,h2:hover>a.anchor,h2>a.anchor:hover,h3:hover>a.anchor,#toctitle:hover>a.anchor,.sidebarblock>.content>.title:hover>a.anchor,h3>a.anchor:hover,#toctitle>a.anchor:hover,.sidebarblock>.content>.title>a.anchor:hover,h4:hover>a.anchor,h4>a.anchor:hover,h5:hover>a.anchor,h5>a.anchor:hover,h6:hover>a.anchor,h6>a.anchor:hover{visibility:visible}
#content h1>a.link,h2>a.link,h3>a.link,#toctitle>a.link,.sidebarblock>.content>.title>a.link,h4>a.link,h5>a.link,h6>a.link{color:#ba3925;text-decoration:none}
#content h1>a.link:hover,h2>a.link:hover,h3>a.link:hover,#toctitle>a.link:hover,.sidebarblock>.content>.title>a.link:hover,h4>a.link:hover,h5>a.link:hover,h6>a.link:hover{color:#a53221}
.audioblock,.imageblock,.literalblock,.listingblock,.stemblock,.videoblock{margin-bottom:1.25em}
.admonitionblock td.content>.title,.audioblock>.title,.exampleblock>.title,.imageblock>.title,.listingblock>.title,.literalblock>.title,.stemblock>.title,.openblock>.title,.paragraph>.title,.quoteblock>.title,table.tableblock>.title,.verseblock>.title,.videoblock>.title,.dlist>.title,.olist>.title,.ulist>.title,.qlist>.title,.hdlist>.title{text-rendering:optimizeLegibility;text-align:left;font-family:"Noto Serif","DejaVu Serif",serif;font-size:1rem;font-style:italic}
table.tableblock>caption.title{white-space:nowrap;overflow:visible;max-width:0}
.paragraph.lead>p,#preamble>.sectionbody>.paragraph:first-of-type p{color:rgba(0,0,0,.85)}
table.tableblock #preamble>.sectionbody>.paragraph:first-of-type p{font-size:inherit}
.admonitionblock>table{border-collapse:separate;border:0;background:none;width:100%}
.admonitionblock>table td.icon{text-align:center;width:80px}
.admonitionblock>table td.icon img{max-width:none}
.admonitionblock>table td.icon .title{font-weight:bold;font-family:"Open Sans","DejaVu Sans",sans-serif;text-transform:uppercase}
.admonitionblock>table td.content{padding-left:1.125em;padding-right:1.25em;border-left:1px solid #ddddd8;color:rgba(0,0,0,.6)}
.admonitionblock>table td.content>:last-child>:last-child{margin-bottom:0}
.exampleblock>.content{border-style:solid;border-width:1px;border-color:#e6e6e6;margin-bottom:1.25em;padding:1.25em;background:#fff;-webkit-border-radius:4px;border-radius:4px}
.exampleblock>.content>:first-child{margin-top:0}
.exampleblock>.content>:last-child{margin-bottom:0}
.sidebarblock{border-style:solid;border-width:1px;border-color:#e0e0dc;margin-bottom:1.25em;padding:1.25em;background:#f8f8f7;-webkit-border-radius:4px;border-radius:4px}
.sidebarblock>:first-child{margin-top:0}
.sidebarblock>:last-child{margin-bottom:0}
.sidebarblock>.content>.title{color:#7a2518;margin-top:0;text-align:center}
.exampleblock>.content>:last-child>:last-child,.exampleblock>.content .olist>ol>li:last-child>:last-child,.exampleblock>.content .ulist>ul>li:last-child>:last-child,.exampleblock>.content .qlist>ol>li:last-child>:last-child,.sidebarblock>.content>:last-child>:last-child,.sidebarblock>.content .olist>ol>li:last-child>:last-child,.sidebarblock>.content .ulist>ul>li:last-child>:last-child,.sidebarblock>.content .qlist>ol>li:last-child>:last-child{margin-bottom:0}
.literalblock pre,.listingblock pre:not(.highlight),.listingblock pre[class="highlight"],.listingblock pre[class^="highlight "],.listingblock pre.CodeRay,.listingblock pre.prettyprint{background:#f7f7f8}
.sidebarblock .literalblock pre,.sidebarblock .listingblock pre:not(.highlight),.sidebarblock .listingblock pre[class="highlight"],.sidebarblock .listingblock pre[class^="highlight "],.sidebarblock .listingblock pre.CodeRay,.sidebarblock .listingblock pre.prettyprint{background:#f2f1f1}
.literalblock pre,.literalblock pre[class],.listingblock pre,.listingblock pre[class]{-webkit-border-radius:4px;border-radius:4px;word-wrap:break-word;padding:1em;font-size:.8125em}
.literalblock pre.nowrap,.literalblock pre[class].nowrap,.listingblock pre.nowrap,.listingblock pre[class].nowrap{overflow-x:auto;white-space:pre;word-wrap:normal}
@media only screen and (min-width:768px){.literalblock pre,.literalblock pre[class],.listingblock pre,.listingblock pre[class]{font-size:.90625em}}@media only screen and (min-width:1280px){.literalblock pre,.literalblock pre[class],.listingblock pre,.listingblock pre[class]{font-size:1em}}.literalblock.output pre{color:#f7f7f8;background-color:rgba(0,0,0,.9)}
.listingblock pre.highlightjs{padding:0}
.listingblock pre.highlightjs>code{padding:1em;-webkit-border-radius:4px;border-radius:4px}
.listingblock pre.prettyprint{border-width:0}
.listingblock>.content{position:relative}
.listingblock code[data-lang]:before{display:none;content:attr(data-lang);position:absolute;font-size:.75em;top:.425rem;right:.5rem;line-height:1;text-transform:uppercase;color:#999}
.listingblock:hover code[data-lang]:before{display:block}
.listingblock.terminal pre .command:before{content:attr(data-prompt);padding-right:.5em;color:#999}
.listingblock.terminal pre .command:not([data-prompt]):before{content:"$"}
table.pyhltable{border-collapse:separate;border:0;margin-bottom:0;background:none}
table.pyhltable td{vertical-align:top;padding-top:0;padding-bottom:0}
table.pyhltable td.code{padding-left:.75em;padding-right:0}
pre.pygments .lineno,table.pyhltable td:not(.code){color:#999;padding-left:0;padding-right:.5em;border-right:1px solid #ddddd8}
pre.pygments .lineno{display:inline-block;margin-right:.25em}
table.pyhltable .linenodiv{background:none!important;padding-right:0!important}
.quoteblock{margin:0 1em 1.25em 1.5em;display:table}
.quoteblock>.title{margin-left:-1.5em;margin-bottom:.75em}
.quoteblock blockquote,.quoteblock blockquote p{color:rgba(0,0,0,.85);font-size:1.15rem;line-height:1.75;word-spacing:.1em;letter-spacing:0;font-style:italic;text-align:justify}
.quoteblock blockquote{margin:0;padding:0;border:0}
.quoteblock blockquote:before{content:"\201c";float:left;font-size:2.75em;font-weight:bold;line-height:.6em;margin-left:-.6em;color:#7a2518;text-shadow:0 1px 2px rgba(0,0,0,.1)}
.quoteblock blockquote>.paragraph:last-child p{margin-bottom:0}
.quoteblock .attribution{margin-top:.5em;margin-right:.5ex;text-align:right}
.quoteblock .quoteblock{margin-left:0;margin-right:0;padding:.5em 0;border-left:3px solid rgba(0,0,0,.6)}
.quoteblock .quoteblock blockquote{padding:0 0 0 .75em}
.quoteblock .quoteblock blockquote:before{display:none}
.verseblock{margin:0 1em 1.25em 1em}
.verseblock pre{font-family:"Open Sans","DejaVu Sans",sans;font-size:1.15rem;color:rgba(0,0,0,.85);font-weight:300;text-rendering:optimizeLegibility}
.verseblock pre strong{font-weight:400}
.verseblock .attribution{margin-top:1.25rem;margin-left:.5ex}
.quoteblock .attribution,.verseblock .attribution{font-size:.9375em;line-height:1.45;font-style:italic}
.quoteblock .attribution br,.verseblock .attribution br{display:none}
.quoteblock .attribution cite,.verseblock .attribution cite{display:block;letter-spacing:-.05em;color:rgba(0,0,0,.6)}
.quoteblock.abstract{margin:0 0 1.25em 0;display:block}
.quoteblock.abstract blockquote,.quoteblock.abstract blockquote p{text-align:left;word-spacing:0}
.quoteblock.abstract blockquote:before,.quoteblock.abstract blockquote p:first-of-type:before{display:none}
table.tableblock{max-width:100%;border-collapse:separate}
table.tableblock td>.paragraph:last-child p>p:last-child,table.tableblock th>p:last-child,table.tableblock td>p:last-child{margin-bottom:0}
table.spread{width:100%}
table.tableblock,th.tableblock,td.tableblock{border:0 solid #dedede}
table.grid-all th.tableblock,table.grid-all td.tableblock{border-width:0 1px 1px 0}
table.grid-all tfoot>tr>th.tableblock,table.grid-all tfoot>tr>td.tableblock{border-width:1px 1px 0 0}
table.grid-cols th.tableblock,table.grid-cols td.tableblock{border-width:0 1px 0 0}
table.grid-all *>tr>.tableblock:last-child,table.grid-cols *>tr>.tableblock:last-child{border-right-width:0}
table.grid-rows th.tableblock,table.grid-rows td.tableblock{border-width:0 0 1px 0}
table.grid-all tbody>tr:last-child>th.tableblock,table.grid-all tbody>tr:last-child>td.tableblock,table.grid-all thead:last-child>tr>th.tableblock,table.grid-rows tbody>tr:last-child>th.tableblock,table.grid-rows tbody>tr:last-child>td.tableblock,table.grid-rows thead:last-child>tr>th.tableblock{border-bottom-width:0}
table.grid-rows tfoot>tr>th.tableblock,table.grid-rows tfoot>tr>td.tableblock{border-width:1px 0 0 0}
table.frame-all{border-width:1px}
table.frame-sides{border-width:0 1px}
table.frame-topbot{border-width:1px 0}
th.halign-left,td.halign-left{text-align:left}
th.halign-right,td.halign-right{text-align:right}
th.halign-center,td.halign-center{text-align:center}
th.valign-top,td.valign-top{vertical-align:top}
th.valign-bottom,td.valign-bottom{vertical-align:bottom}
th.valign-middle,td.valign-middle{vertical-align:middle}
table thead th,table tfoot th{font-weight:bold}
tbody tr th{display:table-cell;line-height:1.6;background:#f7f8f7}
tbody tr th,tbody tr th p,tfoot tr th,tfoot tr th p{color:rgba(0,0,0,.8);font-weight:bold}
p.tableblock>code:only-child{background:none;padding:0}
p.tableblock{font-size:1em}
td>div.verse{white-space:pre}
ol{margin-left:1.75em}
ul li ol{margin-left:1.5em}
dl dd{margin-left:1.125em}
dl dd:last-child,dl dd:last-child>:last-child{margin-bottom:0}
ol>li p,ul>li p,ul dd,ol dd,.olist .olist,.ulist .ulist,.ulist .olist,.olist .ulist{margin-bottom:.625em}
ul.unstyled,ol.unnumbered,ul.checklist,ul.none{list-style-type:none}
ul.unstyled,ol.unnumbered,ul.checklist{margin-left:.625em}
ul.checklist li>p:first-child>.fa-square-o:first-child,ul.checklist li>p:first-child>.fa-check-square-o:first-child{width:1em;font-size:.85em}
ul.checklist li>p:first-child>input[type="checkbox"]:first-child{width:1em;position:relative;top:1px}
ul.inline{margin:0 auto .625em auto;margin-left:-1.375em;margin-right:0;padding:0;list-style:none;overflow:hidden}
ul.inline>li{list-style:none;float:left;margin-left:1.375em;display:block}
ul.inline>li>*{display:block}
.unstyled dl dt{font-weight:400;font-style:normal}
ol.arabic{list-style-type:decimal}
ol.decimal{list-style-type:decimal-leading-zero}
ol.loweralpha{list-style-type:lower-alpha}
ol.upperalpha{list-style-type:upper-alpha}
ol.lowerroman{list-style-type:lower-roman}
ol.upperroman{list-style-type:upper-roman}
ol.lowergreek{list-style-type:lower-greek}
.hdlist>table,.colist>table{border:0;background:none}
.hdlist>table>tbody>tr,.colist>table>tbody>tr{background:none}
td.hdlist1{padding-right:.75em;font-weight:bold}
td.hdlist1,td.hdlist2{vertical-align:top}
.literalblock+.colist,.listingblock+.colist{margin-top:-.5em}
.colist>table tr>td:first-of-type{padding:0 .75em;line-height:1}
.colist>table tr>td:last-of-type{padding:.25em 0}
.thumb,.th{line-height:0;display:inline-block;border:solid 4px #fff;-webkit-box-shadow:0 0 0 1px #ddd;box-shadow:0 0 0 1px #ddd}
.imageblock.left,.imageblock[style*="float: left"]{margin:.25em .625em 1.25em 0}
.imageblock.right,.imageblock[style*="float: right"]{margin:.25em 0 1.25em .625em}
.imageblock>.title{margin-bottom:0}
.imageblock.thumb,.imageblock.th{border-width:6px}
.imageblock.thumb>.title,.imageblock.th>.title{padding:0 .125em}
.image.left,.image.right{margin-top:.25em;margin-bottom:.25em;display:inline-block;line-height:0}
.image.left{margin-right:.625em}
.image.right{margin-left:.625em}
a.image{text-decoration:none}
span.footnote,span.footnoteref{vertical-align:super;font-size:.875em}
span.footnote a,span.footnoteref a{text-decoration:none}
span.footnote a:active,span.footnoteref a:active{text-decoration:underline}
#footnotes{padding-top:.75em;padding-bottom:.75em;margin-bottom:.625em}
#footnotes hr{width:20%;min-width:6.25em;margin:-.25em 0 .75em 0;border-width:1px 0 0 0}
#footnotes .footnote{padding:0 .375em;line-height:1.3;font-size:.875em;margin-left:1.2em;text-indent:-1.2em;margin-bottom:.2em}
#footnotes .footnote a:first-of-type{font-weight:bold;text-decoration:none}
#footnotes .footnote:last-of-type{margin-bottom:0}
#content #footnotes{margin-top:-.625em;margin-bottom:0;padding:.75em 0}
.gist .file-data>table{border:0;background:#fff;width:100%;margin-bottom:0}
.gist .file-data>table td.line-data{width:99%}
div.unbreakable{page-break-inside:avoid}
.big{font-size:larger}
.small{font-size:smaller}
.underline{text-decoration:underline}
.overline{text-decoration:overline}
.line-through{text-decoration:line-through}
.aqua{color:#00bfbf}
.aqua-background{background-color:#00fafa}
.black{color:#000}
.black-background{background-color:#000}
.blue{color:#0000bf}
.blue-background{background-color:#0000fa}
.fuchsia{color:#bf00bf}
.fuchsia-background{background-color:#fa00fa}
.gray{color:#606060}
.gray-background{background-color:#7d7d7d}
.green{color:#006000}
.green-background{background-color:#007d00}
.lime{color:#00bf00}
.lime-background{background-color:#00fa00}
.maroon{color:#600000}
.maroon-background{background-color:#7d0000}
.navy{color:#000060}
.navy-background{background-color:#00007d}
.olive{color:#606000}
.olive-background{background-color:#7d7d00}
.purple{color:#600060}
.purple-background{background-color:#7d007d}
.red{color:#bf0000}
.red-background{background-color:#fa0000}
.silver{color:#909090}
.silver-background{background-color:#bcbcbc}
.teal{color:#006060}
.teal-background{background-color:#007d7d}
.white{color:#bfbfbf}
.white-background{background-color:#fafafa}
.yellow{color:#bfbf00}
.yellow-background{background-color:#fafa00}
span.icon>.fa{cursor:default}
.admonitionblock td.icon [class^="fa icon-"]{font-size:2.5em;text-shadow:1px 1px 2px rgba(0,0,0,.5);cursor:default}
.admonitionblock td.icon .icon-note:before{content:"\f05a";color:#19407c}
.admonitionblock td.icon .icon-tip:before{content:"\f0eb";text-shadow:1px 1px 2px rgba(155,155,0,.8);color:#111}
.admonitionblock td.icon .icon-warning:before{content:"\f071";color:#bf6900}
.admonitionblock td.icon .icon-caution:before{content:"\f06d";color:#bf3400}
.admonitionblock td.icon .icon-important:before{content:"\f06a";color:#bf0000}
.conum[data-value]{display:inline-block;color:#fff!important;background-color:rgba(0,0,0,.8);-webkit-border-radius:100px;border-radius:100px;text-align:center;font-size:.75em;width:1.67em;height:1.67em;line-height:1.67em;font-family:"Open Sans","DejaVu Sans",sans-serif;font-style:normal;font-weight:bold}
.conum[data-value] *{color:#fff!important}
.conum[data-value]+b{display:none}
.conum[data-value]:after{content:attr(data-value)}
pre .conum[data-value]{position:relative;top:-.125em}
b.conum *{color:inherit!important}
.conum:not([data-value]):empty{display:none}
h1,h2{letter-spacing:-.01em}
dt,th.tableblock,td.content{text-rendering:optimizeLegibility}
p,td.content{letter-spacing:-.01em}
p strong,td.content strong{letter-spacing:-.005em}
p,blockquote,dt,td.content{font-size:1.0625rem}
p{margin-bottom:1.25rem}
.sidebarblock p,.sidebarblock dt,.sidebarblock td.content,p.tableblock{font-size:1em}
.exampleblock>.content{background-color:#fffef7;border-color:#e0e0dc;-webkit-box-shadow:0 1px 4px #e0e0dc;box-shadow:0 1px 4px #e0e0dc}
.print-only{display:none!important}
@media print{@page{margin:1.25cm .75cm}
*{-webkit-box-shadow:none!important;box-shadow:none!important;text-shadow:none!important}
a{color:inherit!important;text-decoration:underline!important}
a.bare,a[href^="#"],a[href^="mailto:"]{text-decoration:none!important}
a[href^="http:"]:not(.bare):after,a[href^="https:"]:not(.bare):after{content:"(" attr(href) ")";display:inline-block;font-size:.875em;padding-left:.25em}
abbr[title]:after{content:" (" attr(title) ")"}
pre,blockquote,tr,img{page-break-inside:avoid}
thead{display:table-header-group}
img{max-width:100%!important}
p,blockquote,dt,td.content{font-size:1em;orphans:3;widows:3}
h2,h3,#toctitle,.sidebarblock>.content>.title{page-break-after:avoid}
#toc,.sidebarblock,.exampleblock>.content{background:none!important}
#toc{border-bottom:1px solid #ddddd8!important;padding-bottom:0!important}
.sect1{padding-bottom:0!important}
.sect1+.sect1{border:0!important}
#header>h1:first-child{margin-top:1.25rem}
body.book #header{text-align:center}
body.book #header>h1:first-child{border:0!important;margin:2.5em 0 1em 0}
body.book #header .details{border:0!important;display:block;padding:0!important}
body.book #header .details span:first-child{margin-left:0!important}
body.book #header .details br{display:block}
body.book #header .details br+span:before{content:none!important}
body.book #toc{border:0!important;text-align:left!important;padding:0!important;margin:0!important}
body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-break-before:always}
.listingblock code[data-lang]:before{display:block}
#footer{background:none!important;padding:0 .9375em}
#footer-text{color:rgba(0,0,0,.6)!important;font-size:.9em}
.hide-on-print{display:none!important}
.print-only{display:block!important}
.hide-for-print{display:none!important}
.show-for-print{display:inherit!important}}
</style>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
</head>
<body class="article">
<div id="header">
<h1>Apache NiFi Expression Language Guide</h1>
<div class="details">
<span id="author" class="author">Apache NiFi Team</span><br>
<span id="email" class="email"><a href="mailto:dev@nifi.apache.org">dev@nifi.apache.org</a></span><br>
</div>
<div id="toc" class="toc">
<div id="toctitle">Table of Contents</div>
<ul class="sectlevel1">
<li><a href="expression-language-guide.html#overview">Overview</a></li>
<li><a href="expression-language-guide.html#structure">Structure of a NiFi Expression</a>
<ul class="sectlevel2">
<li><a href="expression-language-guide.html#expression-language-hierarchy">Expression Language Hierarchy</a></li>
</ul>
</li>
<li><a href="expression-language-guide.html#usage">Expression Language in the Application</a>
<ul class="sectlevel2">
<li><a href="expression-language-guide.html#escaping">Escaping Expression Language</a></li>
<li><a href="expression-language-guide.html#editor">Expression Language Editor</a></li>
</ul>
</li>
<li><a href="expression-language-guide.html#functions">Functions</a>
<ul class="sectlevel2">
<li><a href="expression-language-guide.html#types">Data Types</a></li>
</ul>
</li>
<li><a href="expression-language-guide.html#boolean">Boolean Logic</a>
<ul class="sectlevel2">
<li><a href="expression-language-guide.html#isnull">isNull</a></li>
<li><a href="expression-language-guide.html#notnull">notNull</a></li>
<li><a href="expression-language-guide.html#isempty">isEmpty</a></li>
<li><a href="expression-language-guide.html#equals">equals</a></li>
<li><a href="expression-language-guide.html#equalsignorecase">equalsIgnoreCase</a></li>
<li><a href="expression-language-guide.html#gt">gt</a></li>
<li><a href="expression-language-guide.html#ge">ge</a></li>
<li><a href="expression-language-guide.html#lt">lt</a></li>
<li><a href="expression-language-guide.html#le">le</a></li>
<li><a href="expression-language-guide.html#and">and</a></li>
<li><a href="expression-language-guide.html#or">or</a></li>
<li><a href="expression-language-guide.html#not">not</a></li>
<li><a href="expression-language-guide.html#ifelse">ifElse</a></li>
<li><a href="expression-language-guide.html#isjson">isJson</a></li>
</ul>
</li>
<li><a href="expression-language-guide.html#strings">String Manipulation</a>
<ul class="sectlevel2">
<li><a href="expression-language-guide.html#toupper">toUpper</a></li>
<li><a href="expression-language-guide.html#tolower">toLower</a></li>
<li><a href="expression-language-guide.html#trim">trim</a></li>
<li><a href="expression-language-guide.html#substring">substring</a></li>
<li><a href="expression-language-guide.html#substringbefore">substringBefore</a></li>
<li><a href="expression-language-guide.html#substringbeforelast">substringBeforeLast</a></li>
<li><a href="expression-language-guide.html#substringafter">substringAfter</a></li>
<li><a href="expression-language-guide.html#substringafterlast">substringAfterLast</a></li>
<li><a href="expression-language-guide.html#getdelimitedfield">getDelimitedField</a></li>
<li><a href="expression-language-guide.html#append">append</a></li>
<li><a href="expression-language-guide.html#prepend">prepend</a></li>
<li><a href="expression-language-guide.html#replace">replace</a></li>
<li><a href="expression-language-guide.html#replacefirst">replaceFirst</a></li>
<li><a href="expression-language-guide.html#replaceall">replaceAll</a></li>
<li><a href="expression-language-guide.html#padleft">padLeft</a></li>
<li><a href="expression-language-guide.html#padright">padRight</a></li>
<li><a href="expression-language-guide.html#replacenull">replaceNull</a></li>
<li><a href="expression-language-guide.html#replaceempty">replaceEmpty</a></li>
<li><a href="expression-language-guide.html#length">length</a></li>
<li><a href="expression-language-guide.html#evaluateelstring">evaluateELString</a></li>
<li><a href="expression-language-guide.html#repeat">repeat</a></li>
</ul>
</li>
<li><a href="expression-language-guide.html#encode">Encode/Decode Functions</a>
<ul class="sectlevel2">
<li><a href="expression-language-guide.html#escapejson">escapeJson</a></li>
<li><a href="expression-language-guide.html#escapexml">escapeXml</a></li>
<li><a href="expression-language-guide.html#escapecsv">escapeCsv</a></li>
<li><a href="expression-language-guide.html#escapehtml3">escapeHtml3</a></li>
<li><a href="expression-language-guide.html#escapehtml4">escapeHtml4</a></li>
<li><a href="expression-language-guide.html#unescapejson">unescapeJson</a></li>
<li><a href="expression-language-guide.html#unescapexml">unescapeXml</a></li>
<li><a href="expression-language-guide.html#unescapecsv">unescapeCsv</a></li>
<li><a href="expression-language-guide.html#unescapehtml3">unescapeHtml3</a></li>
<li><a href="expression-language-guide.html#unescapehtml4">unescapeHtml4</a></li>
<li><a href="expression-language-guide.html#urlencode">urlEncode</a></li>
<li><a href="expression-language-guide.html#urldecode">urlDecode</a></li>
<li><a href="expression-language-guide.html#base64encode">base64Encode</a></li>
<li><a href="expression-language-guide.html#base64decode">base64Decode</a></li>
<li><a href="expression-language-guide.html#uuid3">UUID3</a></li>
<li><a href="expression-language-guide.html#uuid5">UUID5</a></li>
<li><a href="expression-language-guide.html#hash">hash</a></li>
</ul>
</li>
<li><a href="expression-language-guide.html#searching">Searching</a>
<ul class="sectlevel2">
<li><a href="expression-language-guide.html#startswith">startsWith</a></li>
<li><a href="expression-language-guide.html#endswith">endsWith</a></li>
<li><a href="expression-language-guide.html#contains">contains</a></li>
<li><a href="expression-language-guide.html#in">in</a></li>
<li><a href="expression-language-guide.html#find">find</a></li>
<li><a href="expression-language-guide.html#matches">matches</a></li>
<li><a href="expression-language-guide.html#indexof">indexOf</a></li>
<li><a href="expression-language-guide.html#lastindexof">lastIndexOf</a></li>
<li><a href="expression-language-guide.html#jsonpath">jsonPath</a></li>
<li><a href="expression-language-guide.html#jsonpathdelete">jsonPathDelete</a></li>
<li><a href="expression-language-guide.html#jsonpathadd">jsonPathAdd</a></li>
<li><a href="expression-language-guide.html#jsonpathset">jsonPathSet</a></li>
<li><a href="expression-language-guide.html#jsonpathput">jsonPathPut</a></li>
</ul>
</li>
<li><a href="expression-language-guide.html#numbers">Mathematical Operations and Numeric Manipulation</a>
<ul class="sectlevel2">
<li><a href="expression-language-guide.html#plus">plus</a></li>
<li><a href="expression-language-guide.html#minus">minus</a></li>
<li><a href="expression-language-guide.html#multiply">multiply</a></li>
<li><a href="expression-language-guide.html#divide">divide</a></li>
<li><a href="expression-language-guide.html#mod">mod</a></li>
<li><a href="expression-language-guide.html#toradix">toRadix</a></li>
<li><a href="expression-language-guide.html#fromradix">fromRadix</a></li>
<li><a href="expression-language-guide.html#random">random</a></li>
<li><a href="expression-language-guide.html#math">math</a></li>
</ul>
</li>
<li><a href="expression-language-guide.html#dates">Date Manipulation</a>
<ul class="sectlevel2">
<li><a href="expression-language-guide.html#format">format</a></li>
<li><a href="expression-language-guide.html#formatInstant">formatInstant</a></li>
<li><a href="expression-language-guide.html#todate">toDate</a></li>
<li><a href="expression-language-guide.html#toinstant">toInstant</a></li>
<li><a href="expression-language-guide.html#tomicros">toMicros</a></li>
<li><a href="expression-language-guide.html#tonanos">toNanos</a></li>
<li><a href="expression-language-guide.html#now">now</a></li>
</ul>
</li>
<li><a href="expression-language-guide.html#type_cast">Type Coercion</a>
<ul class="sectlevel2">
<li><a href="expression-language-guide.html#tostring">toString</a></li>
<li><a href="expression-language-guide.html#tonumber">toNumber</a></li>
<li><a href="expression-language-guide.html#todecimal">toDecimal</a></li>
</ul>
</li>
<li><a href="expression-language-guide.html#subjectless">Subjectless Functions</a>
<ul class="sectlevel2">
<li><a href="expression-language-guide.html#ip">ip</a></li>
<li><a href="expression-language-guide.html#hostname">hostname</a></li>
<li><a href="expression-language-guide.html#uuid">UUID</a></li>
<li><a href="expression-language-guide.html#nextint">nextInt</a></li>
<li><a href="expression-language-guide.html#literal">literal</a></li>
<li><a href="expression-language-guide.html#getstatevalue">getStateValue</a></li>
<li><a href="expression-language-guide.html#thread">thread</a></li>
</ul>
</li>
<li><a href="expression-language-guide.html#multi">Evaluating Multiple Attributes</a>
<ul class="sectlevel2">
<li><a href="expression-language-guide.html#anyattribute">anyAttribute</a></li>
<li><a href="expression-language-guide.html#allattributes">allAttributes</a></li>
<li><a href="expression-language-guide.html#anymatchingattribute">anyMatchingAttribute</a></li>
<li><a href="expression-language-guide.html#allmatchingattributes">allMatchingAttributes</a></li>
<li><a href="expression-language-guide.html#anydelineatedvalue">anyDelineatedValue</a></li>
<li><a href="expression-language-guide.html#alldelineatedvalues">allDelineatedValues</a></li>
<li><a href="expression-language-guide.html#join">join</a></li>
<li><a href="expression-language-guide.html#count">count</a></li>
</ul>
</li>
</ul>
</div>
</div>
<div id="content">
<div class="sect1">
<h2 id="overview"><a class="anchor" href="expression-language-guide.html#overview"></a>Overview</h2>
<div class="sectionbody">
<div class="paragraph">
<p>All data in Apache NiFi is represented by an abstraction called a FlowFile.
A FlowFile is comprised of two major pieces: content and attributes.
The content portion of the FlowFile represents the data on which to operate.
For instance, if a file is picked up from a local file system using the
GetFile Processor, the contents of the file will become the contents of the
FlowFile.</p>
</div>
<div class="paragraph">
<p>The attributes portion of the FlowFile represents information about the data
itself, or metadata. Attributes are key-value pairs that represent what is
known about the data as well as information that is useful for routing and
processing the data appropriately.
Keeping with the example of a file that is picked up from
a local file system, the FlowFile would have an attribute called <code>filename</code> that
reflected the name of the file on the file system. Additionally, the FlowFile will
have a <code>path</code> attribute that reflects the directory on the file system that this
file lived in. The FlowFile will also have an attribute named <code>uuid</code>, which is a
unique identifier for this FlowFile. For complete listing of the core attributes
check out the FlowFile section of the <a href="developer-guide.html#flowfile">Developer&#8217;s Guide</a>.</p>
</div>
<div class="paragraph">
<p>However, placing these attributes on a FlowFile do not provide much benefit
if the user is unable to make use of them. The NiFi Expression Language provides
the ability to reference these attributes, compare them to other values,
and manipulate their values.</p>
</div>
</div>
</div>
<div class="sect1">
<h2 id="structure"><a class="anchor" href="expression-language-guide.html#structure"></a>Structure of a NiFi Expression</h2>
<div class="sectionbody">
<div class="paragraph">
<p>The NiFi Expression Language always begins with the start delimiter <code>${</code> and ends
with the end delimiter <code>}</code>. Between the start and end delimiters is the text of the
Expression itself. In its most basic form, the Expression can consist of just an
attribute name. For example, <code>${filename}</code> will return the value of the <code>filename</code>
attribute.</p>
</div>
<div class="paragraph">
<p>In a slightly more complex example, we can instead return a manipulation of this value.
We can, for example, return an all upper-case version of the filename by calling the
<code>toUpper</code> function: <code>${filename:toUpper()}</code>. In this case, we reference the <code>filename</code>
attribute and then manipulate this value by using the <code>toUpper</code> function. A function call
consists of 5 elements. First, there is a function call delimiter <code>:</code>. Second is the name
of the function - in this case, <code>toUpper</code>. Next is an open parenthesis (<code>(</code>), followed
by the function arguments. The arguments necessary are dependent upon which function
is being called. In this example, we are using the <code>toUpper</code> function, which does not
have any arguments, so this element is omitted. Finally, the closing parenthesis (<code>)</code>)
indicates the end of the function call. There are many different functions that are supported
by the Expression Language to achieve many different goals. Some functions provide String (text)
manipulation, such as the <code>toUpper</code> function. Others, such as the <code>equals</code> and <code>matches</code> functions,
provide comparison functionality. Functions also exist for manipulating dates and times and
for performing mathematical operations. Each of these functions is described below, in the
<a href="expression-language-guide.html#functions">Functions</a> section, with an explanation of what the function does, the arguments that it
requires, and the type of information that it returns.</p>
</div>
<div class="paragraph">
<p>When we perform a function call on an attribute, as above, we refer to the attribute as the
<em>subject</em> of the function, as the attribute is the entity on which the function is operating.
We can then chain together multiple function calls, where the return value of the first function
becomes the subject of the second function and its return value becomes the subject of the third
function and so on. Continuing with our example, we can chain together multiple functions by using
the expression <code>${filename:toUpper():equals('HELLO.TXT')}</code>. There is no limit to the number of
functions that can be chained together.</p>
</div>
<div class="paragraph">
<p>Any FlowFile attribute can be referenced using the Expression Language. However, if the attribute
name contains a "special character", the attribute name must be escaped by quoting it. The following
characters are each considered "special characters":</p>
</div>
<div class="ulist">
<ul>
<li>
<p>$ (dollar sign)</p>
</li>
<li>
<p>| (pipe)</p>
</li>
<li>
<p>{ (open brace)</p>
</li>
<li>
<p>} (close brace)</p>
</li>
<li>
<p>( (open parenthesis)</p>
</li>
<li>
<p>) (close parenthesis)</p>
</li>
<li>
<p>[ (open bracket)</p>
</li>
<li>
<p>] (close bracket)</p>
</li>
<li>
<p>, (comma)</p>
</li>
<li>
<p>: (colon)</p>
</li>
<li>
<p>; (semicolon)</p>
</li>
<li>
<p>/ (forward slash)</p>
</li>
<li>
<p>* (asterisk)</p>
</li>
<li>
<p>' (single quote)</p>
</li>
<li>
<p>(space)</p>
</li>
<li>
<p>\t (tab)</p>
</li>
<li>
<p>\r (carriage return)</p>
</li>
<li>
<p>\n (new-line)</p>
</li>
</ul>
</div>
<div class="paragraph">
<p>Additionally, a number is considered a "special character" if it is the first character of the attribute name.
If any of these special characters is present in an attribute is quoted by using either single or double quotes.
The Expression Language allows single quotes and double quotes to be used interchangeably. For example, the following
can be used to escape an attribute named <code>my attribute</code>: <code>${"my attribute"}</code> or <code>${'my attribute'}</code>.</p>
</div>
<div class="paragraph">
<p>In this example, the value to be returned is the value of the "my attribute" attribute, if it exists. The Expression
Language will search through a hierarchy for a matching property. See <a href="expression-language-guide.html#expression-language-hierarchy">Expression Language Hierarchy</a>
for a description of the hierarchy.</p>
</div>
<div class="paragraph">
<p>There also exist some functions that expect to have no subject. These functions are invoked simply
by calling the function at the beginning of the Expression, such as <code>${hostname()}</code>. These functions
can then be changed together, as well. For example, <code>${hostname():toUpper()}</code>. Attempting to
evaluate the function with subject will result in an error. In the <a href="expression-language-guide.html#functions">Functions</a>
section below, these functions will clearly indicate in their descriptions that they do not
require a subject.</p>
</div>
<div class="paragraph">
<p>Often times, we will need to compare the values of two different attributes to each other.
We are able to accomplish this by using embedded Expressions. We can, for example, check if
the <code>filename</code> attribute is the same as the <code>uuid</code> attribute: <code>${filename:equals( ${uuid} )}</code>.
Notice here, also, that we have a space between the opening parenthesis for the <code>equals</code> method and
the embedded Expression. This is not necessary and does not affect how the Expression is evaluated
in any way. Rather, it is intended to make the Expression easier to read. White space is ignored by
the Expression Language between delimiters. Therefore, we can use the Expression
<code>${     filename   : equals(${    uuid})  }</code> or <code>${filename:equals(${uuid})}</code> and both Expressions
mean the same thing. We cannot, however, use <code>${file name:equals(${uuid})}</code>, because this results
in <code>file</code> and <code>name</code> being interpreted as different tokens, rather than a single token, <code>filename</code>.</p>
</div>
<div class="sect2">
<h3 id="expression-language-hierarchy"><a class="anchor" href="expression-language-guide.html#expression-language-hierarchy"></a>Expression Language Hierarchy</h3>
<div class="paragraph">
<p>When using Expression Language to reference a property by name there is a defined hierarchy within which NiFi
will search for the value.</p>
</div>
<div class="paragraph">
<p>The current hierarchy in NiFi is as follows:</p>
</div>
<div class="olist arabic">
<ol class="arabic">
<li>
<p>Search FlowFile for attribute/key</p>
</li>
<li>
<p>Search Process Group Variables for attribute/key</p>
</li>
<li>
<p>Search File Registry file for attribute/key</p>
</li>
<li>
<p>Search NiFi JVM Properties for attribute/key</p>
</li>
<li>
<p>Search System Environment Variables for attribute/key</p>
</li>
</ol>
</div>
<div class="paragraph">
<p>NiFi will search for, and return, the first occurrence of a matching property. If no matching property is found, <code>null</code> is returned.</p>
</div>
</div>
</div>
</div>
<div class="sect1">
<h2 id="usage"><a class="anchor" href="expression-language-guide.html#usage"></a>Expression Language in the Application</h2>
<div class="sectionbody">
<div class="paragraph">
<p>The Expression Language is used heavily throughout the NiFi application for configuring Processor
properties. Not all Processor properties support the Expression Language, however. Whether or not
a Property supports the Expression Language is determined by the developer of the Processor when
the Processor is written. However, the application strives to clearly illustrate for each Property
whether or not the Expression Language is supported.</p>
</div>
<div class="paragraph">
<p>In the application, when configuring a component property, the User Interface provides an Information
icon (
<span class="image"><img src="images/iconInfo.png" alt="Info"></span>
) next to the name of the Property. Hovering over this icon with the mouse will provide a tooltip that
provides helpful information about the Property. This information includes a description of the Property,
the default value (if any), historically configured values (if any), and the evaluation scope of this
property for expression language. There are three values and the evaluation scope of the expression
language is hierarchical: NONE &#8594; VARIABLE_REGISTRY &#8594; FLOWFILE_ATTRIBUTES.</p>
</div>
<div class="ulist">
<ul>
<li>
<p>NONE - expression language is not supported for this property</p>
</li>
<li>
<p>VARIABLE_REGISTRY is hierarchically constructed as below:</p>
<div class="ulist">
<ul>
<li>
<p>Variables defined at process group level and then, recursively, up to the higher process group until
the root process group.</p>
</li>
<li>
<p>Variables defined in custom properties files through the nifi.variable.registry.properties property
in nifi.properties file.</p>
</li>
<li>
<p>Environment variables defined at JVM level and system properties.</p>
</li>
</ul>
</div>
</li>
<li>
<p>FLOWFILE_ATTRIBUTES - will use attributes of each individual flow file, as well as those variables defined
by the Variable Registry, as described above.</p>
</li>
</ul>
</div>
<div class="sect2">
<h3 id="escaping"><a class="anchor" href="expression-language-guide.html#escaping"></a>Escaping Expression Language</h3>
<div class="paragraph">
<p>There may be times when a property supports Expression Language, but the user wishes to use a literal value
that follows the same syntax as the Expression Language. For example, a user may want to configure a property
value to be the literal text <code>Hello ${UserName}</code>. In such a case, this can be accomplished by using an extra
<code>$</code> (dollar sign symbol) just before the expression to escape it (i.e., <code>Hello $${UserName}</code>). Unless the <code>$</code>
character is being used to escape an Expression, it should not be escaped. For example, the value <code>Hello $$User$$Name</code>
should not escape the <code>$</code> characters, so the literal value that will be used is <code>Hello $$User$$Name</code>.</p>
</div>
<div class="paragraph">
<p>If more than two <code>$</code> characters are encountered sequentially before a <code>{</code>, then each pair of <code>$</code> characters will
be considered an escaping of the <code>$</code> character. The escaping will be performed from left-to-right.
To help illustrate this, consider that the variable <code>abc</code> contains the value <code>xyz</code>. Then, consider the following
table of Expressions and their corresponding evaluated values:</p>
</div>
<table class="tableblock frame-all grid-all stretch">
<caption class="title">Table 1. Escaping EL Examples</caption>
<colgroup>
<col style="width: 33.3333%;">
<col style="width: 33.3333%;">
<col style="width: 33.3334%;">
</colgroup>
<tbody>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">Expression</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Value</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Notes</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>${abc}</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>xyz</code></p></td>
<td class="tableblock halign-left valign-top"></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>$${abc}</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>${abc}</code></p></td>
<td class="tableblock halign-left valign-top"></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>$$${abc}</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>$xyz</code></p></td>
<td class="tableblock halign-left valign-top"></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>$$$${abc}</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>$${abc}</code></p></td>
<td class="tableblock halign-left valign-top"></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>$$$$${abc}</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>$$xyz</code></p></td>
<td class="tableblock halign-left valign-top"></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>I owe you $5</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>I owe you $5</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">No actual Expression is present here.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>You owe me $$5 too</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>You owe me $$5 too</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">The $ character is not escaped because it does not immediately precede an Expression.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>Unescaped $$${5 because no closing brace</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>Unescaped $$${5 because no closing brace</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Because there is no closing brace here, there is no actual Expression and hence the $ characters are not
escaped.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>Unescaped $$${5} because no closing brace</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">&lt;Error&gt;</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">This expression is not valid because it equates to an escaped $, followed by <code>${5}</code> and the <code>${5}</code> is not a valid Expression. The number
must be escaped.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>Unescaped $$${'5'} because no closing brace</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>Unescaped $ because no closing brace</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">There is no attribute named <code>5</code> so the Expression evaluates to an empty string. The <code>$$</code> evaluates to a
single (escaped) <code>$</code> because it immediately precedes an Expression.</p></td>
</tr>
</tbody>
</table>
</div>
<div class="sect2">
<h3 id="editor"><a class="anchor" href="expression-language-guide.html#editor"></a>Expression Language Editor</h3>
<div class="paragraph">
<p>When configuring the value of a Processor property, the NiFi User Interface provides help with the
Expression Language using the Expression Language editor. Once an Expression is begin by typing <code>${</code>,
the editor begins to highlight parentheses and braces so that the user is easily able to tell which
opening parenthesis or brace matches which closing parenthesis or brace.</p>
</div>
<div class="paragraph">
<p>The editor also supplies context-sensitive help by providing a list of all functions that can be used
at the current cursor position. To activate this feature, press Ctrl+Space on the keyboard. The user
is also able to type part of a function name and then press Ctrl+Space to see all functions that can
be used that start with the same prefix. For example, if we type into the editor <code>${filename:to</code>
and then press Ctrl+Space, we are provided a pop-up that lists six different functions: <code>toDate</code>,
<code>toLower</code>, <code>toNumber</code>, <code>toRadix</code>, <code>toString</code>, and <code>toUpper</code>. We can then continue typing to narrow
which functions are shown, or we can select one of the functions from the list by double-clicking
it with the mouse or using the arrow keys to highlight the desired function and pressing Enter.</p>
</div>
</div>
</div>
</div>
<div class="sect1">
<h2 id="functions"><a class="anchor" href="expression-language-guide.html#functions"></a>Functions</h2>
<div class="sectionbody">
<div class="paragraph">
<p>Functions provide a convenient way to manipulate and compare values of attributes. The Expression Language
provides many different functions to meet the needs of a automated dataflow. Each function takes
zero or more arguments and returns a single value. These functions can then be chained together to create
powerful Expressions to evaluate conditions and manipulate values. See <a href="expression-language-guide.html#structure">Structure of a NiFi Expression</a> for more information
on how to call and chain functions together.</p>
</div>
<div class="sect2">
<h3 id="types"><a class="anchor" href="expression-language-guide.html#types"></a>Data Types</h3>
<div class="paragraph">
<p>Each argument to a function and each value returned from a function has a specific data type. The Expression
Language supports four different data types:</p>
</div>
<div class="ulist">
<ul>
<li>
<p><strong>String</strong>: A String is a sequence of characters that can consist of numbers, letters, white space, and
special characters.</p>
</li>
<li>
<p><strong>Number</strong>: A Number is an whole number comprised of one or more digits (<code>0</code> through <code>9</code>). When converting to numbers from Date data types, they are represented as
the number of milliseconds since midnight GMT on January 1, 1970.</p>
</li>
<li>
<p><strong>Decimal</strong>: A Decimal is a numeric value that can support decimals and larger values with minimal loss of precision. More precisely it
is a double-precision 64-bit IEEE 754 floating point. Due to this minimal loss of precision this data type should not be used for
very precise values, such as currency. For more documentation on the range of values stored in this data type
refer to this <a href="https://docs.oracle.com/javase/specs/jls/se7/html/jls-4.html#jls-4.2.3" target="_blank" rel="noopener">link</a>. The following are some examples of the forms of
literal decimals that are supported in expression language (the "E" can also be lower-case):</p>
<div class="ulist">
<ul>
<li>
<p>1.1</p>
</li>
<li>
<p>.1E1</p>
</li>
<li>
<p>1.11E-12</p>
</li>
</ul>
</div>
</li>
<li>
<p><strong>Date</strong>: A Date is an object that holds a Date and Time. Utilizing the <a href="expression-language-guide.html#dates">Date Manipulation</a> and <a href="expression-language-guide.html#type_cast">Type Coercion</a> functions this data
type can be converted to/from Strings and numbers. If the whole Expression Language expression is evaluated to be a
date then it will be converted to a String with the format: "&lt;Day of Week&gt; &lt;Month&gt; &lt;Day of Month&gt; &lt;Hour&gt;:&lt;Minute&gt;:&lt;Second&gt; &lt;Time Zone&gt; &lt;Year&gt;".
Also expressed as "E MMM dd HH:mm:ss z yyyy" in Java SimpleDateFormat format. For example: "Wed Dec 31 12:00:04 UTC 2016".</p>
</li>
<li>
<p><strong>Boolean</strong>: A Boolean is one of either <code>true</code> or <code>false</code>.</p>
</li>
</ul>
</div>
<div class="paragraph">
<p>After evaluating expression language functions, all attributes are stored as type String.</p>
</div>
<div class="paragraph">
<p>The Expression Language is generally able to automatically coerce a value of one data type to the appropriate
data type for a function. However, functions do exist to manually coerce a value into a specific data type.
See the <a href="expression-language-guide.html#type_cast">Type Coercion</a> section for more information.</p>
</div>
<div class="paragraph">
<p>Hex values are supported for Number and Decimal types but they must be quoted and prepended with "0x" when being
interpreted as literals. For example these two expressions are valid (without the quotes or "0x" the expression would fail to run properly):</p>
</div>
<div class="ulist">
<ul>
<li>
<p>${literal("0xF"):toNumber()}</p>
</li>
<li>
<p>${literal("0xF.Fp10"):toDecimal()}</p>
</li>
</ul>
</div>
</div>
</div>
</div>
<div class="sect1">
<h2 id="boolean"><a class="anchor" href="expression-language-guide.html#boolean"></a>Boolean Logic</h2>
<div class="sectionbody">
<div class="paragraph">
<p>One of the most powerful features of the Expression Language is the ability to compare an attribute value against
some other value. This is used often, for example, to configure how a Processor should route data. The following
functions are used for performing boolean logic, such as comparing two values.
Each of these functions are designed to work on values of type Boolean.</p>
</div>
<div class="sect2 function">
<h3 id="isnull"><a class="anchor" href="expression-language-guide.html#isnull"></a>isNull</h3>
<div class="paragraph">
<p><strong>Description</strong>: <span class="description">The <code>isNull</code> function returns <code>true</code> if the subject is null, <code>false</code> otherwise. This is typically used to determine
if an attribute exists.</span></p>
</div>
<div class="paragraph">
<p><strong>Subject Type</strong>: <span class="subject">Any</span></p>
</div>
<div class="paragraph">
<p><strong>Arguments</strong>: No arguments</p>
</div>
<div class="paragraph">
<p><strong>Return Type</strong>: <span class="returnType">Boolean</span></p>
</div>
<div class="paragraph">
<p><strong>Examples</strong>:	<code>${filename:isNull()}</code> returns <code>true</code> if the "filename" attribute does not exist.
	It returns <code>false</code> if the attribute exists.</p>
</div>
</div>
<div class="sect2 function">
<h3 id="notnull"><a class="anchor" href="expression-language-guide.html#notnull"></a>notNull</h3>
<div class="paragraph">
<p><strong>Description</strong>: <span class="description">The <code>notNull</code> function returns the opposite value of the <code>isNull</code> function. That is, it will return <code>true</code> if the
subject exists and <code>false</code> otherwise.</span></p>
</div>
<div class="paragraph">
<p><strong>Subject Type</strong>: <span class="subject">Any</span></p>
</div>
<div class="paragraph">
<p><strong>Arguments</strong>: No arguments</p>
</div>
<div class="paragraph">
<p><strong>Return Type</strong>: <span class="returnType">Boolean</span></p>
</div>
<div class="paragraph">
<p><strong>Examples</strong>: <code>${filename:notNull()}</code> returns <code>true</code> if the "filename" attribute exists. It returns <code>false</code> if the attribute
	does not exist.</p>
</div>
</div>
<div class="sect2 function">
<h3 id="isempty"><a class="anchor" href="expression-language-guide.html#isempty"></a>isEmpty</h3>
<div class="paragraph">
<p><strong>Description</strong>: <span class="description">The <code>isEmpty</code> function returns <code>true</code> if the Subject is null, does not contain any characters
	or contains only white-space (new line, carriage return, space, tab), <code>false</code> otherwise.</span></p>
</div>
<div class="paragraph">
<p><strong>Subject Type</strong>: <span class="subject">String</span></p>
</div>
<div class="paragraph">
<p><strong>Arguments</strong>: No arguments</p>
</div>
<div class="paragraph">
<p><strong>Return Type</strong>: <span class="returnType">Boolean</span></p>
</div>
<div class="paragraph">
<p><strong>Examples</strong>: <code>${filename:isEmpty()}</code> returns <code>true</code> if the "filename" attribute does not exist or contains only
	white space. <code>${literal(" "):isEmpty()}</code> returns true as well as <code>${literal(""):isEmpty()}</code>.</p>
</div>
</div>
<div class="sect2 function">
<h3 id="equals"><a class="anchor" href="expression-language-guide.html#equals"></a>equals</h3>
<div class="paragraph description">
<p><strong>Description</strong>: <span class="description">The <code>equals</code> function is very widely used and determines if its subject is equal to another String value.
	Note that the <code>equals</code> function performs a direct comparison of two String values. Take care not to confuse this
	function with the <a href="expression-language-guide.html#matches">matches</a> function, which evaluates its subject against a Regular Expression.</span></p>
</div>
<div class="paragraph subject">
<p><strong>Subject Type</strong>: <span class="subject">Any</span></p>
</div>
<div class="paragraph arguments">
<p><strong>Arguments</strong>:</p>
</div>
<div class="ulist">
<ul>
<li>
<p><span class="argName"><em>value</em></span> : <span class="argDesc">The value to compare the Subject to. Must be same type as the Subject.</span></p>
</li>
</ul>
</div>
<div class="paragraph returnType">
<p><strong>Return Type</strong>: <span class="returnType">Boolean</span></p>
</div>
<div class="paragraph examples">
<p><strong>Examples</strong>:
We can check if the filename of a FlowFile is "hello.txt" by using the expression <code>${filename:equals('hello.txt')}</code>,
or we could check if the value of the attribute <code>hello</code> is equal to the value of the <code>filename</code> attribute:
<code>${hello:equals( ${filename} )}</code>.</p>
</div>
</div>
<div class="sect2 function">
<h3 id="equalsignorecase"><a class="anchor" href="expression-language-guide.html#equalsignorecase"></a>equalsIgnoreCase</h3>
<div class="paragraph">
<p><strong>Description</strong>: <span class="description">Similar to the <code>equals</code> function, the <code>equalsIgnoreCase</code> function compares its subject against a String value but returns
<code>true</code> if the two values differ only by case (upper case vs. lower case).</span></p>
</div>
<div class="paragraph">
<p><strong>Subject Type</strong>: <span class="subject">String</span></p>
</div>
<div class="paragraph">
<p><strong>Arguments</strong>:</p>
</div>
<div class="ulist">
<ul>
<li>
<p><span class="argName"><em>value</em></span> : <span class="argDesc">The value to compare the Subject to.</span></p>
</li>
</ul>
</div>
<div class="paragraph">
<p><strong>Return Type</strong>: <span class="returnType">Boolean</span></p>
</div>
<div class="paragraph">
<p><strong>Examples</strong>: <code>${filename:equalsIgnoreCase('hello.txt')}</code> will evaluate to <code>true</code> if filename is equal to "hello.txt"
	or "HELLO.TXT" or "HeLLo.TxT".</p>
</div>
</div>
<div class="sect2 function">
<h3 id="gt"><a class="anchor" href="expression-language-guide.html#gt"></a>gt</h3>
<div class="paragraph">
<p><strong>Description</strong>: <span class="description">The <code>gt</code> function is used for numeric comparison and returns <code>true</code> if the subject is Greater Than
	its argument. If either the subject or the argument cannot be coerced into a Number,
	this function returns <code>false</code>.</span></p>
</div>
<div class="paragraph">
<p><strong>Subject Type</strong>: <span class="subject">Number</span></p>
</div>
<div class="paragraph">
<p><strong>Arguments</strong>:</p>
</div>
<div class="ulist">
<ul>
<li>
<p><span class="argName"><em>value</em></span> : <span class="argDesc">The number to compare the Subject to.</span></p>
</li>
</ul>
</div>
<div class="paragraph">
<p><strong>Return Type</strong>: <span class="returnType">Boolean</span></p>
</div>
<div class="paragraph">
<p><strong>Examples</strong>: <code>${fileSize:gt( 1024 )}</code> will return <code>true</code> if the size of the FlowFile&#8217;s content is more than 1 kilobyte
	(1024 bytes). Otherwise, it will return <code>false</code>.</p>
</div>
</div>
<div class="sect2 function">
<h3 id="ge"><a class="anchor" href="expression-language-guide.html#ge"></a>ge</h3>
<div class="paragraph">
<p><strong>Description</strong>: <span class="description">The <code>ge</code> function is used for numeric comparison and returns <code>true</code> if the subject is Greater Than
	Or Equal To its argument. If either the subject or the argument cannot be coerced into a Number,
	this function returns <code>false</code>.</span></p>
</div>
<div class="paragraph">
<p><strong>Subject Type</strong>: <span class="subject">Number</span></p>
</div>
<div class="paragraph">
<p><strong>Arguments</strong>:</p>
</div>
<div class="ulist">
<ul>
<li>
<p><span class="argName"><em>value</em></span> : <span class="argDesc">The number to compare the Subject to.</span></p>
</li>
</ul>
</div>
<div class="paragraph">
<p><strong>Return Type</strong>: <span class="returnType">Boolean</span></p>
</div>
<div class="paragraph">
<p><strong>Examples</strong>: <code>${fileSize:ge( 1024 )}</code> will return <code>true</code> if the size of the FlowFile&#8217;s content is at least (
	is greater than or equal to) 1 kilobyte (1024 bytes). Otherwise, it will return <code>false</code>.</p>
</div>
</div>
<div class="sect2 function">
<h3 id="lt"><a class="anchor" href="expression-language-guide.html#lt"></a>lt</h3>
<div class="paragraph">
<p><strong>Description</strong>: <span class="description">The <code>lt</code> function is used for numeric comparison and returns <code>true</code> if the subject is Less Than
	its argument. If either the subject or the argument cannot be coerced into a Number,
	this function returns <code>false</code>.</span></p>
</div>
<div class="paragraph">
<p><strong>Subject Type</strong>: <span class="subject">Number</span></p>
</div>
<div class="paragraph">
<p><strong>Arguments</strong>:</p>
</div>
<div class="ulist">
<ul>
<li>
<p><span class="argName"><em>value</em></span> : <span class="argDesc">The number to compare the Subject to.</span></p>
</li>
</ul>
</div>
<div class="paragraph">
<p><strong>Return Type</strong>: <span class="returnType">Boolean</span></p>
</div>
<div class="paragraph">
<p><strong>Examples</strong>: <code>${fileSize:lt( 1048576 )}</code> will return <code>true</code> if the size of the FlowFile&#8217;s content is less than
	1 megabyte (1048576 bytes). Otherwise, it will return <code>false</code>.</p>
</div>
</div>
<div class="sect2 function">
<h3 id="le"><a class="anchor" href="expression-language-guide.html#le"></a>le</h3>
<div class="paragraph">
<p><strong>Description</strong>: <span class="description">The <code>le</code> function is used for numeric comparison and returns <code>true</code> if the subject is Less Than
	Or Equal To its argument. If either the subject or the argument cannot be coerced into a Number,
	this function returns <code>false</code>.</span></p>
</div>
<div class="paragraph">
<p><strong>Subject Type</strong>: <span class="subject">Number</span></p>
</div>
<div class="paragraph">
<p><strong>Arguments</strong>:</p>
</div>
<div class="ulist">
<ul>
<li>
<p><span class="argName"><em>value</em></span> : <span class="argDesc">The number to compare the Subject to.</span></p>
</li>
</ul>
</div>
<div class="paragraph">
<p><strong>Return Type</strong>: <span class="returnType">Boolean</span></p>
</div>
<div class="paragraph">
<p><strong>Examples</strong>: <code>${fileSize:le( 1048576 )}</code> will return <code>true</code> if the size of the FlowFile&#8217;s content is at most
	(less than or equal to) 1 megabyte (1048576 bytes). Otherwise, it will return <code>false</code>.</p>
</div>
</div>
<div class="sect2 function">
<h3 id="and"><a class="anchor" href="expression-language-guide.html#and"></a>and</h3>
<div class="paragraph">
<p><strong>Description</strong>: <span class="description">The <code>and</code> function takes as a single argument a Boolean value and returns <code>true</code> if both the Subject
	and the argument are <code>true</code>. If either the subject or the argument is <code>false</code> or cannot be coerced into a Boolean,
	the function returns <code>false</code>. Typically, this is used with an embedded Expression as the argument.</span></p>
</div>
<div class="paragraph">
<p><strong>Subject Type</strong>: <span class="subject">Boolean</span></p>
</div>
<div class="paragraph">
<p><strong>Arguments</strong>:</p>
</div>
<div class="ulist">
<ul>
<li>
<p><span class="argName"><em>condition</em></span> : <span class="argDesc">The right-hand-side of the 'and' Expression</span></p>
</li>
</ul>
</div>
<div class="paragraph">
<p><strong>Return Type</strong>: <span class="returnType">Boolean</span></p>
</div>
<div class="paragraph">
<p><strong>Examples</strong>: We can check if the filename is both all lower-case and has at least 5 characters by using the Expression</p>
</div>
<div class="listingblock">
<div class="content">
<pre>${filename:toLower():equals( ${filename} ):and(
	${filename:length():ge(5)}
)}</pre>
</div>
</div>
</div>
<div class="sect2 function">
<h3 id="or"><a class="anchor" href="expression-language-guide.html#or"></a>or</h3>
<div class="paragraph">
<p><strong>Description</strong>: <span class="description">The <code>or</code> function takes as a single argument a Boolean value and returns <code>true</code> if either the Subject
	or the argument is <code>true</code>. If both the subject and the argument are <code>false</code>, the function returns <code>false</code>. If
	either the Subject or the argument cannot be coerced into a Boolean value, this function will return <code>false</code>.</span></p>
</div>
<div class="paragraph">
<p><strong>Subject Type</strong>: <span class="subject">Boolean</span></p>
</div>
<div class="paragraph">
<p><strong>Arguments</strong>:</p>
</div>
<div class="ulist">
<ul>
<li>
<p><span class="argName"><em>condition</em></span> : <span class="argDesc">The right-hand-side of the 'and' Expression</span></p>
</li>
</ul>
</div>
<div class="paragraph">
<p><strong>Return Type</strong>: <span class="returnType">Boolean</span></p>
</div>
<div class="paragraph">
<p><strong>Examples</strong>: The following example will return <code>true</code> if either the filename has exactly 5 characters or if
	the filename is all lower-case.</p>
</div>
<div class="listingblock">
<div class="content">
<pre>${filename:toLower():equals( ${filename} ):or(
	${filename:length():equals(5)}
)}</pre>
</div>
</div>
</div>
<div class="sect2 function">
<h3 id="not"><a class="anchor" href="expression-language-guide.html#not"></a>not</h3>
<div class="paragraph description">
<p><strong>Description</strong>: <span class="description">The <code>not</code> function returns the negation of the Boolean value of the subject.</span></p>
</div>
<div class="paragraph subject">
<p><strong>Subject Type</strong>: <span class="subject">Boolean</span></p>
</div>
<div class="paragraph arguments">
<p><strong>Arguments</strong>: No arguments</p>
</div>
<div class="paragraph returnType">
<p><strong>Return Type</strong>: <span class="returnType">Boolean</span></p>
</div>
<div class="paragraph examples">
<p><strong>Examples</strong>: We can invert the value of another function by using the <code>not</code> function, as
	<code>${filename:equals('hello.txt'):not()}</code>. This will return <code>true</code> if the filename is NOT equal to
	"hello.txt" and will return <code>false</code> if the filename is "hello.txt."</p>
</div>
</div>
<div class="sect2 function">
<h3 id="ifelse"><a class="anchor" href="expression-language-guide.html#ifelse"></a>ifElse</h3>
<div class="paragraph">
<p><strong>Description</strong>: <span class="description">Evaluates the first argument if the Subject evaluates to <code>true</code>, or the second argument
if the Subject evaluates to <code>false</code>.</span></p>
</div>
<div class="paragraph">
<p><strong>Subject Type</strong>: <span class="subject">Boolean</span></p>
</div>
<div class="paragraph">
<p><strong>Arguments</strong>:</p>
</div>
<div class="ulist">
<ul>
<li>
<p><span class="argName"><em>EvaluateIfTrue</em></span> : <span class="argDesc">The value to return if the Subject is true</span></p>
</li>
<li>
<p><span class="argName"><em>EvaluateIfFalse</em></span> : <span class="argDesc">The value to return if the Subject is false</span></p>
</li>
</ul>
</div>
<div class="paragraph">
<p><strong>Return Type</strong>: <span class="returnType">String</span></p>
</div>
<div class="paragraph">
<p><strong>Examples</strong>: If the "filename" attribute has the value "a brand new filename.txt", the "nullFilename" attribute has
the value null, and the "bool" attribute has the value "true", then the following expressions will provide
the following results:</p>
</div>
<table class="tableblock frame-all grid-all stretch">
<caption class="title">Table 2. ifElse Examples</caption>
<colgroup>
<col style="width: 50%;">
<col style="width: 50%;">
</colgroup>
<tbody>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">Expression</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Value</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>${bool:ifElse('a','b')}</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>a</code></p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>${literal(true):ifElse('a','b')}</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>a</code></p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>${nullFilename:isNull():ifElse('file does not exist', 'located file')}</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>file does not exist</code></p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>${nullFilename:ifElse('found', 'not_found')}</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>not_found</code></p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>${filename:ifElse('found', 'not_found')}</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>not_found</code></p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>${filename:isNull():not():ifElse('found', 'not_found')}</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>found</code></p></td>
</tr>
</tbody>
</table>
</div>
<div class="sect2 function">
<h3 id="isjson"><a class="anchor" href="expression-language-guide.html#isjson"></a>isJson</h3>
<div class="paragraph">
<p><strong>Description</strong>: [.description]#The <code>isJson</code> function returns <code>true</code> if the subject is a JSON array or a JSON object, <code>false</code> otherwise. This is typically used to determine whether an attribute is JSON in order to allow for a follow-on JSONPath query. Although technically there are other valid JSON types such as string, number, boolean and null, this method is only concerned with the primary JSON objects queried with JSONPath , arrays and objects. #</p>
</div>
<div class="paragraph">
<p><strong>Subject Type</strong>: <span class="subject">Any</span></p>
</div>
<div class="paragraph">
<p><strong>Arguments</strong>: No arguments</p>
</div>
<div class="paragraph">
<p><strong>Return Type</strong>: <span class="returnType">Boolean</span></p>
</div>
<div class="paragraph">
<p><strong>Examples</strong>: If the attribute "jsonObj" has the value {"name":"John", "age":30, "car":null}, the attribute jsonObjMissingStartingBrace has the value "name":"John", "age":30, "car":null}, the attribute jsonObjMissingEndingBrace has the value {"name":"John", "age":30, "car":null, the attribute "jsonArray" has the value ["Ford", "BMW", "Fiat"], the attribute jsonArrayMissingStartingBracket has the value "Ford", "BMW", "Fiat"], the attribute jsonArrayMissingEndingBracket has the value ["Ford", "BMW", "Fiat", the "someAttribute" attribute does not exist, the "emptyQuotedString" attribute value is "", the attribute "quotedString" has the value "someString", the attribute "integer" has the value 1234, the attribute "decimal" has the value 18.36, the attribute "trueAttr" has the value true, the attribute "falseAttr" has the value false and the "nullAttr" attribute has the value null, then the following expressions will provide the following results:</p>
</div>
<table class="tableblock frame-all grid-all stretch">
<caption class="title">Table 3. isJson Examples</caption>
<colgroup>
<col style="width: 50%;">
<col style="width: 50%;">
</colgroup>
<tbody>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">Expression</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Value</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>${jsonObj:isJson()}</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>true</code></p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>${jsonObjMissingStartingBrace:isJson()}</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>false</code></p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>${jsonObjMissingEndingBrace:isJson()}</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>false</code></p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>${jsonArray:isJson()}</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>true</code></p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>${jsonArrayMissingStartingBracket:isJson()}</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>false</code></p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>${jsonArrayMissingEndingBracket:isJson()}</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>false</code></p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>${someAttribute:isJson()}</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>false</code></p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>${emptyQuotedString:isJson())</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>false</code></p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>${quotedString:isJson()}</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>false</code></p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>${integer:isJson()}</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>false</code></p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>${decimal:isJson()}</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>false</code></p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>${trueAttr:isJson()}</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>false</code></p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>${falseAttr:isJson()}</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>false</code></p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>${nullAttr:isJson()}</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>false</code></p></td>
</tr>
</tbody>
</table>
</div>
</div>
</div>
<div class="sect1">
<h2 id="strings"><a class="anchor" href="expression-language-guide.html#strings"></a>String Manipulation</h2>
<div class="sectionbody">
<div class="paragraph">
<p>Each of the following functions manipulates a String in some way.</p>
</div>
<div class="sect2 function">
<h3 id="toupper"><a class="anchor" href="expression-language-guide.html#toupper"></a>toUpper</h3>
<div class="paragraph">
<p><strong>Description</strong>: <span class="description">This function converts the Subject into an all upper-case String. Said another way, it
	replaces any lowercase letter with the uppercase equivalent.</span></p>
</div>
<div class="paragraph">
<p><strong>Subject Type</strong>: <span class="subject">String</span></p>
</div>
<div class="paragraph">
<p><strong>Arguments</strong>: No arguments</p>
</div>
<div class="paragraph">
<p><strong>Return Type</strong>: <span class="returnType">String</span></p>
</div>
<div class="paragraph">
<p><strong>Examples</strong>: If the "filename" attribute is "abc123.txt", then the Expression <code>${filename:toUpper()}</code>
	will return "ABC123.TXT"</p>
</div>
</div>
<div class="sect2 function">
<h3 id="tolower"><a class="anchor" href="expression-language-guide.html#tolower"></a>toLower</h3>
<div class="paragraph">
<p><strong>Description</strong>: <span class="description">This function converts the Subject into an all lower-case String. Said another way,
	it replaces any uppercase letter with the lowercase equivalent.</span></p>
</div>
<div class="paragraph">
<p><strong>Subject Type</strong>: <span class="subject">String</span></p>
</div>
<div class="paragraph">
<p><strong>Arguments</strong>: No arguments</p>
</div>
<div class="paragraph">
<p><strong>Return Type</strong>: <span class="returnType">String</span></p>
</div>
<div class="paragraph">
<p><strong>Examples</strong>: If the "filename" attribute is "ABC123.TXT", then the Expression <code>${filename:toLower()}</code>
	will return "abc123.txt"</p>
</div>
</div>
<div class="sect2 function">
<h3 id="trim"><a class="anchor" href="expression-language-guide.html#trim"></a>trim</h3>
<div class="paragraph">
<p><strong>Description</strong>: <span class="description">The <code>trim</code> function will remove any leading or trailing white space from its subject.</span></p>
</div>
<div class="paragraph">
<p><strong>Subject Type</strong>: <span class="subject">String</span></p>
</div>
<div class="paragraph">
<p><strong>Arguments</strong>: No arguments</p>
</div>
<div class="paragraph">
<p><strong>Return Type</strong>: <span class="returnType">String</span></p>
</div>
<div class="paragraph">
<p><strong>Examples</strong>: If the attribute <code>attr</code> has the value "     1 2 3     ", then the Expression <code>${attr:trim()}</code> will
	return the value "1 2 3".</p>
</div>
</div>
<div class="sect2 function">
<h3 id="substring"><a class="anchor" href="expression-language-guide.html#substring"></a>substring</h3>
<div class="paragraph">
<p><strong>Description</strong>:
<span class="description">Returns a portion of the Subject, given a <em>starting index</em> and an optional <em>ending index</em>.
	If the <em>ending index</em> is not supplied, it will return the portion of the Subject starting at the given
	'start index' and ending at the end of the Subject value.</span></p>
</div>
<div class="paragraph">
<p><span class="description">The <em>starting index</em> and <em>ending index</em> are zero-based. That is, the first character is referenced by using
	the value <code>0</code>, not <code>1</code>.</span></p>
</div>
<div class="paragraph">
<p><span class="description">If either the <em>starting index</em> is or the <em>ending index</em> is not a number, this function call will result
	in an error.</span></p>
</div>
<div class="paragraph">
<p><span class="description">If the <em>starting index</em> is larger than the <em>ending index</em>, this function call will result in an error.</span></p>
</div>
<div class="paragraph">
<p><span class="description">If the <em>starting index</em> or the <em>ending index</em> is greater than the length of the Subject or has a value
	less than 0, this function call will return an empty string.</span></p>
</div>
<div class="paragraph">
<p><strong>Subject Type</strong>: <span class="subject">String</span></p>
</div>
<div class="paragraph">
<p><strong>Arguments</strong>:</p>
</div>
<div class="ulist">
<ul>
<li>
<p><span class="argName"><em>starting index</em></span> : <span class="argDesc">The 0-based index of the first character to capture (inclusive)</span></p>
</li>
<li>
<p><span class="argName"><em>ending index</em></span> : <span class="argDesc">The 0-based index of the last character to capture (exclusive)</span></p>
</li>
</ul>
</div>
<div class="paragraph">
<p><strong>Return Type</strong>: <span class="returnType">String</span></p>
</div>
<div class="paragraph">
<p><strong>Examples</strong>:</p>
</div>
<div class="paragraph">
<p>If we have an attribute named "filename" with the value "a brand new filename.txt",
then the following Expressions will result in the following values:</p>
</div>
<table class="tableblock frame-all grid-all stretch">
<caption class="title">Table 4. Substring Examples</caption>
<colgroup>
<col style="width: 50%;">
<col style="width: 50%;">
</colgroup>
<tbody>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">Expression</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Value</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>${filename:substring(0,1)}</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>a</code></p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>${filename:substring(2)}</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>brand new filename.txt</code></p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>${filename:substring(12)}</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>filename.txt</code></p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>${filename:substring( ${filename:length():minus(2)} )}</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>xt</code></p></td>
</tr>
</tbody>
</table>
</div>
<div class="sect2 function">
<h3 id="substringbefore"><a class="anchor" href="expression-language-guide.html#substringbefore"></a>substringBefore</h3>
<div class="paragraph">
<p><strong>Description</strong>: <span class="description">Returns a portion of the Subject, starting with the first character of the Subject
	and ending with the character immediately before the first occurrence of the argument. If
	the argument is not present in the Subject, the entire Subject will be returned.</span></p>
</div>
<div class="paragraph">
<p><strong>Subject Type</strong>: <span class="subject">String</span></p>
</div>
<div class="paragraph">
<p><strong>Arguments</strong>:</p>
</div>
<div class="ulist">
<ul>
<li>
<p><span class="argName"><em>value</em></span> : <span class="argDesc">The String to search for in the Subject</span></p>
</li>
</ul>
</div>
<div class="paragraph">
<p><strong>Return Type</strong>: <span class="returnType">String</span></p>
</div>
<div class="paragraph">
<p><strong>Examples</strong>: If the "filename" attribute has the value "a brand new filename.txt",
	then the following Expressions will result in the following values:</p>
</div>
<table class="tableblock frame-all grid-all stretch">
<caption class="title">Table 5. SubstringBefore Examples</caption>
<colgroup>
<col style="width: 50%;">
<col style="width: 50%;">
</colgroup>
<tbody>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">Expression</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Value</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>${filename:substringBefore('.')}</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>a brand new filename</code></p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>${filename:substringBefore(' ')}</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>a</code></p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>${filename:substringBefore(' n')}</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>a brand</code></p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>${filename:substringBefore('missing')}</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>a brand new filename.txt</code></p></td>
</tr>
</tbody>
</table>
</div>
<div class="sect2 function">
<h3 id="substringbeforelast"><a class="anchor" href="expression-language-guide.html#substringbeforelast"></a>substringBeforeLast</h3>
<div class="paragraph">
<p><strong>Description</strong>: <span class="description">Returns a portion of the Subject, starting with the first character of the Subject
	and ending with the character immediately before the last occurrence of the argument. If
	the argument is not present in the Subject, the entire Subject will be returned.</span></p>
</div>
<div class="paragraph">
<p><strong>Subject Type</strong>: <span class="subject">String</span></p>
</div>
<div class="paragraph">
<p><strong>Arguments</strong>:</p>
</div>
<div class="ulist">
<ul>
<li>
<p><span class="argName"><em>value</em></span> : <span class="argDesc">The String to search for in the Subject</span></p>
</li>
</ul>
</div>
<div class="paragraph">
<p><strong>Return Type</strong>: <span class="returnType">String</span></p>
</div>
<div class="paragraph">
<p><strong>Examples</strong>: If the "filename" attribute has the value "a brand new filename.txt",
	then the following Expressions will result in the following values:</p>
</div>
<table class="tableblock frame-all grid-all stretch">
<caption class="title">Table 6. SubstringBeforeLast Examples</caption>
<colgroup>
<col style="width: 50%;">
<col style="width: 50%;">
</colgroup>
<tbody>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">Expression</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Value</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>${filename:substringBeforeLast('.')}</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>a brand new filename</code></p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>${filename:substringBeforeLast(' ')}</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>a brand new</code></p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>${filename:substringBeforeLast(' n')}</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>a brand</code></p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>${filename:substringBeforeLast('missing')}</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>a brand new filename.txt</code></p></td>
</tr>
</tbody>
</table>
</div>
<div class="sect2 function">
<h3 id="substringafter"><a class="anchor" href="expression-language-guide.html#substringafter"></a>substringAfter</h3>
<div class="paragraph">
<p><strong>Description</strong>: <span class="description">Returns a portion of the Subject, starting with the character immediately after
	the first occurrence of the argument and extending to the end of the Subject. If
	the argument is not present in the Subject, the entire Subject will be returned.</span></p>
</div>
<div class="paragraph">
<p><strong>Subject Type</strong>: <span class="subject">String</span></p>
</div>
<div class="paragraph">
<p><strong>Arguments</strong>:</p>
</div>
<div class="ulist">
<ul>
<li>
<p><span class="argName"><em>value</em></span> : <span class="argDesc">The String to search for in the Subject</span></p>
</li>
</ul>
</div>
<div class="paragraph">
<p><strong>Return Type</strong>: <span class="returnType">String</span></p>
</div>
<div class="paragraph">
<p><strong>Examples</strong>: If the "filename" attribute has the value "a brand new filename.txt",
	then the following Expressions will result in the following values:</p>
</div>
<table class="tableblock frame-all grid-all stretch">
<caption class="title">Table 7. SubstringAfter Examples</caption>
<colgroup>
<col style="width: 50%;">
<col style="width: 50%;">
</colgroup>
<tbody>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">Expression</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Value</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>${filename:substringAfter('.')}</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>txt</code></p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>${filename:substringAfter(' ')}</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>brand new filename.txt</code></p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>${filename:substringAfter(' n')}</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>ew filename.txt</code></p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>${filename:substringAfter('missing')}</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>a brand new filename.txt</code></p></td>
</tr>
</tbody>
</table>
</div>
<div class="sect2 function">
<h3 id="substringafterlast"><a class="anchor" href="expression-language-guide.html#substringafterlast"></a>substringAfterLast</h3>
<div class="paragraph">
<p><strong>Description</strong>: <span class="description">Returns a portion of the Subject, starting with the character immediately after
	the last occurrence of the argument and extending to the end of the Subject. If
	the argument is not present in the Subject, the entire Subject will be returned.</span></p>
</div>
<div class="paragraph">
<p><strong>Subject Type</strong>: <span class="subject">String</span></p>
</div>
<div class="paragraph">
<p><strong>Arguments</strong>:</p>
</div>
<div class="ulist">
<ul>
<li>
<p><span class="argName"><em>value</em></span> : <span class="argDesc">The String to search for in the Subject</span></p>
</li>
</ul>
</div>
<div class="paragraph">
<p><strong>Return Type</strong>: <span class="returnType">String</span></p>
</div>
<div class="paragraph">
<p><strong>Examples</strong>: If the "filename" attribute has the value "a brand new filename.txt",
	then the following Expressions will result in the following values:</p>
</div>
<table class="tableblock frame-all grid-all stretch">
<caption class="title">Table 8. SubstringAfterLast Examples</caption>
<colgroup>
<col style="width: 50%;">
<col style="width: 50%;">
</colgroup>
<tbody>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">Expression</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Value</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>${filename:substringAfterLast('.')}</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>txt</code></p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>${filename:substringAfterLast(' ')}</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>filename.txt</code></p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>${filename:substringAfterLast(' n')}</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>ew filename.txt</code></p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>${filename:substringAfterLast('missing')}</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>a brand new filename.txt</code></p></td>
</tr>
</tbody>
</table>
</div>
<div class="sect2 function">
<h3 id="getdelimitedfield"><a class="anchor" href="expression-language-guide.html#getdelimitedfield"></a>getDelimitedField</h3>
<div class="paragraph">
<p><strong>Description</strong>: <span class="description">Parses the Subject as a delimited line of text and returns just a single field
	from that delimited text.</span></p>
</div>
<div class="paragraph">
<p><strong>Subject Type</strong>: <span class="subject">String</span></p>
</div>
<div class="paragraph">
<p><strong>Arguments</strong>:</p>
</div>
<div class="ulist">
<ul>
<li>
<p><span class="argName"><em>index</em></span> : <span class="argDesc">The index of the field to return. A value of 1 will return the first field,
a value of 2 will return the second field, and so on.</span></p>
</li>
<li>
<p><span class="argName"><em>delimiter</em></span> : <span class="argDesc">Optional argument that provides the character to use as a field separator.
If not specified, a comma will be used. This value must be exactly 1 character.</span></p>
</li>
<li>
<p><span class="argName"><em>quoteChar</em></span> : <span class="argDesc">Optional argument that provides the character that can be used to quote values
so that the delimiter can be used within a single field. If not specified, a double-quote (") will be used. This value
must be exactly 1 character.</span></p>
</li>
<li>
<p><span class="argName"><em>escapeChar</em></span> :  <span class="argDesc">Optional argument that provides the character that can be used to escape the Quote Character
or the Delimiter within a field. If not specified, a backslash (\) is used. This value must be exactly 1 character.</span></p>
</li>
<li>
<p><span class="argName"><em>stripChars</em></span> : <span class="argDesc">Optional argument that specifies whether or not quote characters and escape characters should
be stripped. For example, if we have a field value "1, 2, 3" and this value is true, we will get the value <code>1, 2, 3</code>, but if this
value is false, we will get the value <code>"1, 2, 3"</code> with the quotes. The default value is false. This value must be either <code>true</code>
or <code>false</code>.</span></p>
</li>
</ul>
</div>
<div class="paragraph">
<p><strong>Return Type</strong>: <span class="returnType">String</span></p>
</div>
<div class="paragraph">
<p><strong>Examples</strong>: If the "line" attribute contains the value <em>"Jacobson, John", 32, Mr.</em>
	and the "altLine" attribute contains the value <em>Jacobson, John|32|Mr.</em>
    then the following Expressions will result in the following values:</p>
</div>
<table class="tableblock frame-all grid-all stretch">
<caption class="title">Table 9. GetDelimitedField Examples</caption>
<colgroup>
<col style="width: 50%;">
<col style="width: 50%;">
</colgroup>
<tbody>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">Expression</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Value</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>${line:getDelimitedField(2)}</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">_(space)_32</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>${line:getDelimitedField(2):trim()}</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">32</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>${line:getDelimitedField(1)}</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">"Jacobson, John"</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>${line:getDelimitedField(1, ',', '"', '\\', true)}</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Jacobson, John</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>${altLine:getDelimitedField(1, '|')}</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Jacobson, John</p></td>
</tr>
</tbody>
</table>
</div>
<div class="sect2 function">
<h3 id="append"><a class="anchor" href="expression-language-guide.html#append"></a>append</h3>
<div class="paragraph">
<p><strong>Description</strong>: <span class="description">The <code>append</code> function returns the result of appending the argument to the value of
	the Subject. If the Subject is null, returns the argument itself.</span></p>
</div>
<div class="paragraph">
<p><strong>Subject Type</strong>: <span class="subject">String</span></p>
</div>
<div class="paragraph">
<p><strong>Arguments</strong>:</p>
</div>
<div class="ulist">
<ul>
<li>
<p><span class="argName"><em>value</em></span> : <span class="argDesc">The String to append to the end of the Subject</span></p>
</li>
</ul>
</div>
<div class="paragraph">
<p><strong>Return Type</strong>: <span class="returnType">String</span></p>
</div>
<div class="paragraph">
<p><strong>Examples</strong>: If the "filename" attribute has the value "a brand new filename.txt", then the Expression
	<code>${filename:append('.gz')}</code> will return "a brand new filename.txt.gz".</p>
</div>
</div>
<div class="sect2 function">
<h3 id="prepend"><a class="anchor" href="expression-language-guide.html#prepend"></a>prepend</h3>
<div class="paragraph">
<p><strong>Description</strong>: <span class="description">The <code>prepend</code> function returns the result of prepending the argument to the value of
	the Subject. If the subject is null, returns the argument itself.</span></p>
</div>
<div class="paragraph">
<p><strong>Subject Type</strong>: <span class="subject">String</span></p>
</div>
<div class="paragraph">
<p><strong>Arguments</strong>:</p>
</div>
<div class="ulist">
<ul>
<li>
<p><span class="argName"><em>value</em></span> : <span class="argDesc">The String to prepend to the beginning of the Subject</span></p>
</li>
</ul>
</div>
<div class="paragraph">
<p><strong>Return Type</strong>: <span class="returnType">String</span></p>
</div>
<div class="paragraph">
<p><strong>Examples</strong>: If the "filename" attribute has the value "filename.txt", then the Expression
	<code>${filename:prepend('a brand new ')}</code> will return "a brand new filename.txt".</p>
</div>
</div>
<div class="sect2 function">
<h3 id="replace"><a class="anchor" href="expression-language-guide.html#replace"></a>replace</h3>
<div class="paragraph">
<p><strong>Description</strong>: <span class="description">Replaces <strong>all</strong> occurrences of one literal String within the Subject with another String.</span></p>
</div>
<div class="paragraph">
<p><strong>Subject Type</strong>: <span class="subject">String</span></p>
</div>
<div class="paragraph">
<p><strong>Arguments</strong>:</p>
</div>
<div class="ulist">
<ul>
<li>
<p><span class="argName"><em>Search String</em></span> : <span class="argDesc">The String to find within the Subject</span></p>
</li>
<li>
<p><span class="argName"><em>Replacement</em></span> : <span class="argDesc">The value to replace <em>Search String</em> with</span></p>
</li>
</ul>
</div>
<div class="paragraph">
<p><strong>Return Type</strong>: <span class="returnType">String</span></p>
</div>
<div class="paragraph">
<p><strong>Examples</strong>: If the "filename" attribute has the value "a brand new filename.txt", then the following
Expressions will provide the following results:</p>
</div>
<table class="tableblock frame-all grid-all stretch">
<caption class="title">Table 10. Replace Examples</caption>
<colgroup>
<col style="width: 50%;">
<col style="width: 50%;">
</colgroup>
<tbody>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">Expression</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Value</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>${filename:replace('.', '_')}</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>a brand new filename_txt</code></p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>${filename:replace(' ', '.')}</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>a.brand.new.filename.txt</code></p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>${filename:replace('XYZ', 'ZZZ')}</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>a brand new filename.txt</code></p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>${filename:replace('filename', 'book')}</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>a brand new book.txt</code></p></td>
</tr>
</tbody>
</table>
</div>
<div class="sect2 function">
<h3 id="replacefirst"><a class="anchor" href="expression-language-guide.html#replacefirst"></a>replaceFirst</h3>
<div class="paragraph">
<p><strong>Description</strong>: <span class="description">Replaces <strong>the first</strong> occurrence of one literal String or regular expression within the Subject with another String.</span></p>
</div>
<div class="paragraph">
<p><strong>Subject Type</strong>: <span class="subject">String</span></p>
</div>
<div class="paragraph">
<p><strong>Arguments</strong>:</p>
</div>
<div class="ulist">
<ul>
<li>
<p><span class="argName"><em>Search String</em></span> : <span class="argDesc">The String (literal or regular expression pattern) to find within the Subject</span></p>
</li>
<li>
<p><span class="argName"><em>Replacement</em></span> : <span class="argDesc">The value to replace <em>Search String</em> with</span></p>
</li>
</ul>
</div>
<div class="paragraph">
<p><strong>Return Type</strong>: <span class="returnType">String</span></p>
</div>
<div class="paragraph">
<p><strong>Examples</strong>: If the "filename" attribute has the value "a brand new filename.txt", then the following
Expressions will provide the following results:</p>
</div>
<table class="tableblock frame-all grid-all stretch">
<caption class="title">Table 11. ReplaceFirst Examples</caption>
<colgroup>
<col style="width: 50%;">
<col style="width: 50%;">
</colgroup>
<tbody>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">Expression</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Value</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>${filename:replaceFirst('a', 'the')}</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>the brand new filename.txt</code></p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>${filename:replaceFirst('[br]', 'g')}</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>a grand new filename.txt</code></p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>${filename:replaceFirst('XYZ', 'ZZZ')}</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>a brand new filename.txt</code></p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>${filename:replaceFirst('\w{8}', 'book')}</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>a brand new book.txt</code></p></td>
</tr>
</tbody>
</table>
</div>
<div class="sect2 function">
<h3 id="replaceall"><a class="anchor" href="expression-language-guide.html#replaceall"></a>replaceAll</h3>
<div class="paragraph">
<p><strong>Description</strong>: <span class="description">The <code>replaceAll</code> function takes two String arguments: a literal String or Regular Expression (NiFi uses the Java Pattern
	syntax), and a replacement string. The return value is the result of substituting the replacement string for
	all patterns within the Subject that match the Regular Expression.</span></p>
</div>
<div class="paragraph">
<p><strong>Subject Type</strong>: <span class="subject">String</span></p>
</div>
<div class="paragraph">
<p><strong>Arguments</strong>:</p>
</div>
<div class="ulist">
<ul>
<li>
<p><span class="argName"><em>Regex</em></span> : <span class="argDesc">The Regular Expression (in Java syntax) to match in the Subject</span></p>
</li>
<li>
<p><span class="argName"><em>Replacement</em></span> : <span class="argDesc">The value to use for replacing matches in the Subject. If the <em>regular expression</em>
argument uses Capturing Groups, back references are allowed in the <em>replacement</em>.</span></p>
</li>
</ul>
</div>
<div class="paragraph">
<p><strong>Return Type</strong>: <span class="returnType">String</span></p>
</div>
<div class="paragraph">
<p><strong>Examples</strong>: If the "filename" attribute has the value "a brand new filename.txt", then the following
Expressions will provide the following results:</p>
</div>
<table class="tableblock frame-all grid-all stretch">
<caption class="title">Table 12. ReplaceAll Examples</caption>
<colgroup>
<col style="width: 50%;">
<col style="width: 50%;">
</colgroup>
<tbody>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">Expression</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Value</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>${filename:replaceAll('\..*', '')}</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>a brand new filename</code></p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>${filename:replaceAll('a brand (new)', '$1')}</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>new filename.txt</code></p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>${filename:replaceAll('XYZ', 'ZZZ')}</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>a brand new filename.txt</code></p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>${filename:replaceAll('brand (new)', 'somewhat $1')}</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>a somewhat new filename.txt</code></p></td>
</tr>
</tbody>
</table>
</div>
<div class="sect2 function">
<h3 id="padleft"><a class="anchor" href="expression-language-guide.html#padleft"></a>padLeft</h3>
<div class="paragraph">
<p><strong>Description</strong>: <span class="description">The <code>padLeft</code> function prepends the given padding string (or <code>'_'</code>, if nothing is provided) to the argument <code>String</code> until the passed desired length is reached.</span></p>
</div>
<div class="paragraph">
<p>It returns the argument as is if its length is already equal or higher than the desired length, if the padding string is <code>null</code>, and if the desired length is either negative or greater than <code>Integer.MAX_VALUE</code>.
It returns <code>null</code> if the argument string is not a valid attribute.</p>
</div>
<div class="paragraph">
<p><strong>Subject Type</strong>: <span class="subject">String</span></p>
</div>
<div class="paragraph">
<p><strong>Arguments</strong>:</p>
</div>
<div class="ulist">
<ul>
<li>
<p><span class="argName"><em>DesiredLength</em></span> : <span class="argDesc">The integer value to pad to.</span></p>
</li>
<li>
<p><span class="argName"><em>PaddingString</em></span> : <span class="argDesc">The optional string to pad with. <code>"_"</code> will be used if a <code>PaddingString</code> is not provided. If the <code>PaddingString</code> is not an exact multiple of the actual pad size, it will be trimmed to fit in <code>DesiredLength</code>.</span></p>
</li>
</ul>
</div>
<div class="paragraph">
<p><strong>Return Type</strong>: <span class="returnType">String</span></p>
</div>
<div class="paragraph">
<p><strong>Examples</strong>: If the "greetings" attribute has the value "hello", then the following
Expressions will provide the following results:</p>
</div>
<table class="tableblock frame-all grid-all stretch">
<caption class="title">Table 13. PadLeft Examples</caption>
<colgroup>
<col style="width: 50%;">
<col style="width: 50%;">
</colgroup>
<tbody>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">Expression</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Value</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>${greetings:padLeft(10)}</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>_____hello</code></p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>${greetings:padLeft(10, '@')}</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>@@@@@hello</code></p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>${greetings:padLeft(10, 'xy')}</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>xyxyxhello</code></p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>${greetings:padLeft(10, 'aVeryLongPaddingString')}</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>aVeryhello</code></p></td>
</tr>
</tbody>
</table>
</div>
<div class="sect2 function">
<h3 id="padright"><a class="anchor" href="expression-language-guide.html#padright"></a>padRight</h3>
<div class="paragraph">
<p><strong>Description</strong>: <span class="description">The <code>padRight</code> function appends the given padding string (or <code>'_'</code>, if nothing is provided) to the argument <code>String</code> until the passed desired length is reached.</span></p>
</div>
<div class="paragraph">
<p>It returns the argument as is if its length is already equal or higher than the desired length, if the padding string is <code>null</code>, and if the desired length is either negative or greater than <code>Integer.MAX_VALUE</code>.
It returns <code>null</code> if the argument string is not a valid attribute.</p>
</div>
<div class="paragraph">
<p><strong>Subject Type</strong>: <span class="subject">String</span></p>
</div>
<div class="paragraph">
<p><strong>Arguments</strong>:</p>
</div>
<div class="ulist">
<ul>
<li>
<p><span class="argName"><em>DesiredLength</em></span> : <span class="argDesc">The integer value to pad to.</span></p>
</li>
<li>
<p><span class="argName"><em>PaddingString</em></span> : <span class="argDesc">The optional string to pad with. <code>"_"</code> will be used if a <code>PaddingString</code> is not provided. If the <code>PaddingString</code> is not an exact multiple of the actual pad size, it will be trimmed to fit in <code>DesiredLength</code>.</span></p>
</li>
</ul>
</div>
<div class="paragraph">
<p><strong>Return Type</strong>: <span class="returnType">String</span></p>
</div>
<div class="paragraph">
<p><strong>Examples</strong>: If the "greetings" attribute has the value "hello", then the following
Expressions will provide the following results:</p>
</div>
<table class="tableblock frame-all grid-all stretch">
<caption class="title">Table 14. PadLeft Examples</caption>
<colgroup>
<col style="width: 50%;">
<col style="width: 50%;">
</colgroup>
<tbody>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">Expression</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Value</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>${greetings:padRight(10)}</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>hello_____</code></p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>${greetings:padRight(10, '@')}</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>hello@@@@@</code></p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>${greetings:padRight(10, 'xy')}</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>helloxyxyx</code></p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>${greetings:padLeft(10, 'aVeryLongPaddingString')}</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>helloaVery</code></p></td>
</tr>
</tbody>
</table>
</div>
<div class="sect2 function">
<h3 id="replacenull"><a class="anchor" href="expression-language-guide.html#replacenull"></a>replaceNull</h3>
<div class="paragraph">
<p><strong>Description</strong>: <span class="description">The <code>replaceNull</code> function returns the argument if the Subject is null. Otherwise,
	returns the Subject.</span></p>
</div>
<div class="paragraph">
<p><strong>Subject Type</strong>: <span class="subject">Any</span></p>
</div>
<div class="paragraph">
<p><strong>Arguments</strong>:</p>
</div>
<div class="ulist">
<ul>
<li>
<p><span class="argName"><em>Replacement</em></span> : <span class="argDesc">The value to return if the Subject is null.</span></p>
</li>
</ul>
</div>
<div class="paragraph">
<p><strong>Return Type</strong>: <span class="returnType">Type of Subject if Subject is not null; else, type of Argument</span></p>
</div>
<div class="paragraph">
<p><strong>Examples</strong>: If the attribute "filename" has the value "a brand new filename.txt" and the attribute
	"hello" does not exist, then the Expression <code>${filename:replaceNull('abc')}</code> will return
	"a brand new filename.txt", while <code>${hello:replaceNull('abc')}</code> will return "abc".</p>
</div>
</div>
<div class="sect2 function">
<h3 id="replaceempty"><a class="anchor" href="expression-language-guide.html#replaceempty"></a>replaceEmpty</h3>
<div class="paragraph">
<p><strong>Description</strong>: <span class="description">The <code>replaceEmpty</code> function returns the argument if the Subject is null or
	if the Subject consists only of white space (new line, carriage return, tab, space). Otherwise,
	returns the Subject.</span></p>
</div>
<div class="paragraph">
<p><strong>Subject Type</strong>: <span class="subject">String</span></p>
</div>
<div class="paragraph">
<p><strong>Arguments</strong>:</p>
</div>
<div class="ulist">
<ul>
<li>
<p><span class="argName"><em>Replacement</em></span> : <span class="argDesc">The value to return if the Subject is null or empty.</span></p>
</li>
</ul>
</div>
<div class="paragraph">
<p><strong>Return Type</strong>: <span class="returnType">String</span></p>
</div>
<div class="paragraph">
<p><strong>Examples</strong>: If the attribute "filename" has the value "a brand new filename.txt" and the attribute
	"hello" has the value "  ", then the Expression <code>${filename:replaceEmpty('abc')}</code> will return
	"a brand new filename.txt", while <code>${hello:replaceEmpty('abc')}</code> will return "abc".</p>
</div>
</div>
<div class="sect2 function">
<h3 id="length"><a class="anchor" href="expression-language-guide.html#length"></a>length</h3>
<div class="paragraph">
<p><strong>Description</strong>: <span class="description">Returns the length of the Subject</span></p>
</div>
<div class="paragraph">
<p><strong>Subject Type</strong>: <span class="subject">String</span></p>
</div>
<div class="paragraph">
<p><strong>Arguments</strong>: No arguments</p>
</div>
<div class="paragraph">
<p><strong>Return Type</strong>: <span class="returnType">Number</span></p>
</div>
<div class="paragraph">
<p><strong>Examples</strong>: If the attribute "filename" has a value of "a brand new filename.txt" and the attribute
	"hello" does not exist, then the Expression <code>${filename:length()}</code> will return 24. <code>${hello:length()}</code>
	will return 0.</p>
</div>
</div>
<div class="sect2 function">
<h3 id="evaluateelstring"><a class="anchor" href="expression-language-guide.html#evaluateelstring"></a>evaluateELString</h3>
<div class="paragraph">
<p><strong>Description</strong>: <span class="description">This function evaluates the Expression Language inside the variable value.</span></p>
</div>
<div class="paragraph">
<p><strong>Subject Type</strong>: <span class="subject">String</span></p>
</div>
<div class="paragraph">
<p><strong>Arguments</strong>: No arguments</p>
</div>
<div class="paragraph">
<p><strong>Return Type</strong>: <span class="returnType">String</span></p>
</div>
<div class="paragraph">
<p><strong>Examples</strong>: If one of the registry variable named "query" has value "SELECT * FROM TABLE WHERE ID = ${id}"
	and the value of the "id" field, we are getting from the flowfile attributes (i.e. id=20)
	then the Expression <code>${query:evaluateELString()}</code> will return SELECT * FROM TABLE WHERE ID = 20</p>
</div>
</div>
<div class="sect2 function">
<h3 id="repeat"><a class="anchor" href="expression-language-guide.html#repeat"></a>repeat</h3>
<div class="paragraph">
<p><strong>Description</strong>:
<span class="description">Returns a string that is the Subject repeated a random number of times between <em>min repeats</em> and
<em>max repeats</em>. If <em>max repeats</em> is not supplied, it will return the Subject repeated exactly <em>min repeats</em> times.</span></p>
</div>
<div class="paragraph">
<p><span class="description">The <em>min repeats</em> and <em>max repeats</em> must be positive numbers, with <em>max repeats</em> greater than or equal
to <em>min repeats</em></span></p>
</div>
<div class="paragraph">
<p><span class="description">If either <em>min repeats</em> or <em>max repeats</em> is not a number, this function call will result
in an error.</span></p>
</div>
<div class="paragraph">
<p><strong>Subject Type</strong>: <span class="subject">String</span></p>
</div>
<div class="paragraph">
<p><strong>Arguments</strong>:</p>
</div>
<div class="ulist">
<ul>
<li>
<p><span class="argName"><em>min repeats</em></span> : <span class="argDesc">The minimum number (inclusive) of times to repeat the subject, or the exact number
of times to repeat the subject if <em>max repeats</em> is not supplied.</span></p>
</li>
<li>
<p><span class="argName"><em>max repeats</em></span> : <span class="argDesc">The maximum number (inclusive) of times to repeat the subject.</span></p>
</li>
</ul>
</div>
<div class="paragraph">
<p><strong>Return Type</strong>: <span class="returnType">String</span></p>
</div>
<div class="paragraph">
<p><strong>Examples</strong>:</p>
</div>
<div class="paragraph">
<p>If we have an attribute named "str" with the value "abc",
then the following Expressions will result in the following values:</p>
</div>
<table class="tableblock frame-all grid-all stretch">
<caption class="title">Table 15. Repeat Examples</caption>
<colgroup>
<col style="width: 50%;">
<col style="width: 50%;">
</colgroup>
<tbody>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">Expression</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Value</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>${str:repeat(1)}</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>abc</code></p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>${str:repeat(2)}</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>abcabc</code></p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>${str:repeat(1,2)}</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>abc</code> or <code>abcabc</code> (at random)</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>${str:repeat( ${str:length()} )}</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>abc</code> or <code>abcabc</code> or <code>abcabcabc</code> (at random)</p></td>
</tr>
</tbody>
</table>
</div>
</div>
</div>
<div class="sect1">
<h2 id="encode"><a class="anchor" href="expression-language-guide.html#encode"></a>Encode/Decode Functions</h2>
<div class="sectionbody">
<div class="paragraph">
<p>Each of the following functions will encode a string according the rules of the given data format.</p>
</div>
<div class="sect2 function">
<h3 id="escapejson"><a class="anchor" href="expression-language-guide.html#escapejson"></a>escapeJson</h3>
<div class="paragraph">
<p><strong>Description</strong>: <span class="description">This function prepares the Subject to be inserted into JSON document by escaping the characters
        in the String using Json String rules. The function correctly escapes quotes and control-chars (tab, backslash,
        cr, ff, etc.)</span></p>
</div>
<div class="paragraph">
<p><strong>Subject Type</strong>: <span class="subject">String</span></p>
</div>
<div class="paragraph">
<p><strong>Arguments</strong>: No arguments</p>
</div>
<div class="paragraph">
<p><strong>Return Type</strong>: <span class="returnType">String</span></p>
</div>
<div class="paragraph">
<p><strong>Examples</strong>: If the "message" attribute is 'He didn&#8217;t say, "Stop!"', then the Expression <code>${message:escapeJson()}</code>
        will return 'He didn&#8217;t say, \"Stop!\"'</p>
</div>
</div>
<div class="sect2 function">
<h3 id="escapexml"><a class="anchor" href="expression-language-guide.html#escapexml"></a>escapeXml</h3>
<div class="paragraph">
<p><strong>Description</strong>: <span class="description">This function prepares the Subject to be inserted into XML document by escaping the characters
        in a String using XML entities. The function correctly escapes quotes, apostrophe, ampersand, &lt;, &gt; and
        control-chars.</span></p>
</div>
<div class="paragraph">
<p><strong>Subject Type</strong>: <span class="subject">String</span></p>
</div>
<div class="paragraph">
<p><strong>Arguments</strong>: No arguments</p>
</div>
<div class="paragraph">
<p><strong>Return Type</strong>: <span class="returnType">String</span></p>
</div>
<div class="paragraph">
<p><strong>Examples</strong>: If the "message" attribute is '"bread" &amp; "butter"', then the Expression <code>${message:escapeXml()}</code>
        will return '&quot;bread&quot; &amp; &quot;butter&quot;'</p>
</div>
</div>
<div class="sect2 function">
<h3 id="escapecsv"><a class="anchor" href="expression-language-guide.html#escapecsv"></a>escapeCsv</h3>
<div class="paragraph">
<p><strong>Description</strong>: <span class="description">This function prepares the Subject to be inserted into CSV document by escaping the characters
        in a String using the rules in RFC 4180. The function correctly escapes quotes and surround the string in quotes if needed.</span></p>
</div>
<div class="paragraph">
<p><strong>Subject Type</strong>: <span class="subject">String</span></p>
</div>
<div class="paragraph">
<p><strong>Arguments</strong>: No arguments</p>
</div>
<div class="paragraph">
<p><strong>Return Type</strong>: <span class="returnType">String</span></p>
</div>
<div class="paragraph">
<p><strong>Examples</strong>: If the "message" attribute is 'But finally, she left', then the Expression <code>${message:escapeCsv()}</code>
        will return '"But finally, she left"'</p>
</div>
</div>
<div class="sect2 function">
<h3 id="escapehtml3"><a class="anchor" href="expression-language-guide.html#escapehtml3"></a>escapeHtml3</h3>
<div class="paragraph">
<p><strong>Description</strong>: <span class="description">This function prepares the Subject to be inserted into HTML document by escaping the characters
        in a String using the HTML entities. Supports only the HTML 3.0 entities.</span></p>
</div>
<div class="paragraph">
<p><strong>Subject Type</strong>: <span class="subject">String</span></p>
</div>
<div class="paragraph">
<p><strong>Arguments</strong>: No arguments</p>
</div>
<div class="paragraph">
<p><strong>Return Type</strong>: <span class="returnType">String</span></p>
</div>
<div class="paragraph">
<p><strong>Examples</strong>: If the "message" attribute is '"bread" &amp; "butter"', then the Expression <code>${message:escapeHtml3()}</code>
        will return '&quot;bread&quot; &amp; &quot;butter&quot;'</p>
</div>
</div>
<div class="sect2 function">
<h3 id="escapehtml4"><a class="anchor" href="expression-language-guide.html#escapehtml4"></a>escapeHtml4</h3>
<div class="paragraph">
<p><strong>Description</strong>: <span class="description">This function prepares the Subject to be inserted into HTML document by escaping the characters
        in a String using the HTML entities. Supports all known HTML 4.0 entities.</span></p>
</div>
<div class="paragraph">
<p><strong>Subject Type</strong>: <span class="subject">String</span></p>
</div>
<div class="paragraph">
<p><strong>Arguments</strong>: No arguments</p>
</div>
<div class="paragraph">
<p><strong>Return Type</strong>: <span class="returnType">String</span></p>
</div>
<div class="paragraph">
<p><strong>Examples</strong>: If the "message" attribute is '"bread" &amp; "butter"', then the Expression <code>${message:escapeHtml4()}</code>
        will return '&quot;bread&quot; &amp; &quot;butter&quot;'</p>
</div>
</div>
<div class="sect2 function">
<h3 id="unescapejson"><a class="anchor" href="expression-language-guide.html#unescapejson"></a>unescapeJson</h3>
<div class="paragraph">
<p><strong>Description</strong>: <span class="description">This function unescapes any Json literals found in the String.</span></p>
</div>
<div class="paragraph">
<p><strong>Subject Type</strong>: <span class="subject">String</span></p>
</div>
<div class="paragraph">
<p><strong>Arguments</strong>: No arguments</p>
</div>
<div class="paragraph">
<p><strong>Return Type</strong>: <span class="returnType">String</span></p>
</div>
<div class="paragraph">
<p><strong>Examples</strong>: If the "message" attribute is 'He didn&#8217;t say, \"Stop!\"', then the Expression <code>${message:unescapeJson()}</code>
        will return 'He didn&#8217;t say, "Stop!"'</p>
</div>
</div>
<div class="sect2 function">
<h3 id="unescapexml"><a class="anchor" href="expression-language-guide.html#unescapexml"></a>unescapeXml</h3>
<div class="paragraph">
<p><strong>Description</strong>: <span class="description">This function unescapes a string containing XML entity escapes to a string containing the
        actual Unicode characters corresponding to the escapes. Supports only the five basic XML entities (gt, lt,
        quot, amp, apos).</span></p>
</div>
<div class="paragraph">
<p><strong>Subject Type</strong>: <span class="subject">String</span></p>
</div>
<div class="paragraph">
<p><strong>Arguments</strong>: No arguments</p>
</div>
<div class="paragraph">
<p><strong>Return Type</strong>: <span class="returnType">String</span></p>
</div>
<div class="paragraph">
<p><strong>Examples</strong>: If the "message" attribute is '&quot;bread&quot; &amp; &quot;butter&quot;', then the Expression <code>${message:unescapeXml()}</code>
        will return '"bread" &amp; "butter"'</p>
</div>
</div>
<div class="sect2 function">
<h3 id="unescapecsv"><a class="anchor" href="expression-language-guide.html#unescapecsv"></a>unescapeCsv</h3>
<div class="paragraph">
<p><strong>Description</strong>: <span class="description">This function unescapes a String from a CSV document according to the rules of RFC 4180.</span></p>
</div>
<div class="paragraph">
<p><strong>Subject Type</strong>: <span class="subject">String</span></p>
</div>
<div class="paragraph">
<p><strong>Arguments</strong>: No arguments</p>
</div>
<div class="paragraph">
<p><strong>Return Type</strong>: <span class="returnType">String</span></p>
</div>
<div class="paragraph">
<p><strong>Examples</strong>: If the "message" attribute is '"But finally, she left"', then the Expression <code>${message:unescapeCsv()}</code>
        will return 'But finally, she left'</p>
</div>
</div>
<div class="sect2 function">
<h3 id="unescapehtml3"><a class="anchor" href="expression-language-guide.html#unescapehtml3"></a>unescapeHtml3</h3>
<div class="paragraph">
<p><strong>Description</strong>: <span class="description">This function unescapes a string containing HTML 3 entity to a string containing the
        actual Unicode characters corresponding to the escapes. Supports only HTML 3.0 entities.</span></p>
</div>
<div class="paragraph">
<p><strong>Subject Type</strong>: <span class="subject">String</span></p>
</div>
<div class="paragraph">
<p><strong>Arguments</strong>: No arguments</p>
</div>
<div class="paragraph">
<p><strong>Return Type</strong>: <span class="returnType">String</span></p>
</div>
<div class="paragraph">
<p><strong>Examples</strong>: If the "message" attribute is '&quot;bread&quot; &amp; &quot;butter&quot;', then the Expression <code>${message:unescapeHtml3()}</code>
        will return '"bread" &amp; "butter"'</p>
</div>
</div>
<div class="sect2 function">
<h3 id="unescapehtml4"><a class="anchor" href="expression-language-guide.html#unescapehtml4"></a>unescapeHtml4</h3>
<div class="paragraph">
<p><strong>Description</strong>: <span class="description">This function unescapes a string containing HTML 4 entity to a string containing the
        actual Unicode characters corresponding to the escapes. Supports all known HTML 4.0 entities.</span></p>
</div>
<div class="paragraph">
<p><strong>Subject Type</strong>: <span class="subject">String</span></p>
</div>
<div class="paragraph">
<p><strong>Arguments</strong>: No arguments</p>
</div>
<div class="paragraph">
<p><strong>Return Type</strong>: <span class="returnType">String</span></p>
</div>
<div class="paragraph">
<p><strong>Examples</strong>: If the "message" attribute is '&quot;bread&quot; &amp; &quot;butter&quot;', then the Expression <code>${message:unescapeHtml4()}</code>
        will return '"bread" &amp; "butter"'</p>
</div>
</div>
<div class="sect2 function">
<h3 id="urlencode"><a class="anchor" href="expression-language-guide.html#urlencode"></a>urlEncode</h3>
<div class="paragraph">
<p><strong>Description</strong>: <span class="description">Returns a URL-friendly version of the Subject. This is useful, for instance, when using an
	attribute value to indicate the URL of a website.</span></p>
</div>
<div class="paragraph">
<p><strong>Subject Type</strong>: <span class="subject">String</span></p>
</div>
<div class="paragraph">
<p><strong>Arguments</strong>: No arguments</p>
</div>
<div class="paragraph">
<p><strong>Return Type</strong>: <span class="returnType">String</span></p>
</div>
<div class="paragraph">
<p><strong>Examples</strong>: We can URL-Encode an attribute named "url" by using the Expression <code>${url:urlEncode()}</code>. If
	the value of the "url" attribute is "https://nifi.apache.org/some value with spaces", this
	Expression will then return "https%3A%2F%2Fnifi.apache.org%2Fsome+value+with+spaces".</p>
</div>
</div>
<div class="sect2 function">
<h3 id="urldecode"><a class="anchor" href="expression-language-guide.html#urldecode"></a>urlDecode</h3>
<div class="paragraph">
<p><strong>Description</strong>: <span class="description">Converts a URL-friendly version of the Subject into a human-readable form.</span></p>
</div>
<div class="paragraph">
<p><strong>Subject Type</strong>: <span class="subject">String</span></p>
</div>
<div class="paragraph">
<p><strong>Arguments</strong>: No arguments</p>
</div>
<div class="paragraph">
<p><strong>Return Type</strong>: <span class="returnType">String</span></p>
</div>
<div class="paragraph">
<p><strong>Examples</strong>: If we have a URL-Encoded attribute named "url" with the value
	"https://nifi.apache.org/some%20value%20with%20spaces" or "https%3A%2F%2Fnifi.apache.org%2Fsome+value+with+spaces", then the Expression
	<code>${url:urlDecode()}</code> will return "https://nifi.apache.org/some value with spaces".</p>
</div>
</div>
<div class="sect2 function">
<h3 id="base64encode"><a class="anchor" href="expression-language-guide.html#base64encode"></a>base64Encode</h3>
<div class="paragraph">
<p><strong>Description</strong>: <span class="description">Returns a Base64 encoded string. This is useful for being able to transfer binary data as ascii.</span></p>
</div>
<div class="paragraph">
<p><strong>Subject Type</strong>: <span class="subject">String</span></p>
</div>
<div class="paragraph">
<p><strong>Arguments</strong>: No arguments</p>
</div>
<div class="paragraph">
<p><strong>Return Type</strong>: <span class="returnType">String</span></p>
</div>
<div class="paragraph">
<p><strong>Examples</strong>: We can Base64-Encoded an attribute named "payload" by using the Expression
	   <code>${payload:base64Encode()}</code> If the attribute payload had a value of "admin:admin"
	    then the Expression  <code>${payload:base64Encode()}</code> will return "YWRtaW46YWRtaW4=".</p>
</div>
</div>
<div class="sect2 function">
<h3 id="base64decode"><a class="anchor" href="expression-language-guide.html#base64decode"></a>base64Decode</h3>
<div class="paragraph">
<p><strong>Description</strong>: <span class="description">Reverses the Base64 encoding on given string.</span></p>
</div>
<div class="paragraph">
<p><strong>Subject Type</strong>: <span class="subject">String</span></p>
</div>
<div class="paragraph">
<p><strong>Arguments</strong>: No arguments</p>
</div>
<div class="paragraph">
<p><strong>Return Type</strong>: <span class="returnType">String</span></p>
</div>
<div class="paragraph">
<p><strong>Examples</strong>: If we have a Base64-Encoded attribute named "payload" with the value
	"YWRtaW46YWRtaW4=", then the Expression
	<code>${payload:base64Decode()}</code> will return "admin:admin".</p>
</div>
</div>
<div class="sect2 function">
<h3 id="uuid3"><a class="anchor" href="expression-language-guide.html#uuid3"></a>UUID3</h3>
<div class="paragraph">
<p><strong>Description</strong>: <span class="description">Returns a type 3 (MD5 hashed) namespace name-based UUID. The argument must be a valid UUID.</span></p>
</div>
<div class="paragraph">
<p><strong>Subject Type</strong>: <span class="subject">String</span></p>
</div>
<div class="paragraph">
<p><strong>Arguments</strong>:</p>
</div>
<div class="ulist">
<ul>
<li>
<p><span class="argName"><em>namespace</em></span> : <span class="argDesc">The namespace UUID identifier</span></p>
</li>
</ul>
</div>
<div class="paragraph">
<p><strong>Return Type</strong>: <span class="returnType">String</span></p>
</div>
<div class="paragraph">
<p><strong>Examples</strong>: If we have an attribute named "attr" with a value of "string value", then the Expression <code>${attr:UUID3('b9e81de3-7047-4b5e-a822-8fff5b49f808')}</code> will return "bf0ea246-a177-3300-bd7e-d4c9e973dc6f".</p>
</div>
<div class="paragraph">
<p>An empty argument or an argument value with an invalid UUID results in an exception bulletin.</p>
</div>
<div class="paragraph">
<p><strong>See Also</strong>: <span class="seeAlso"><a href="expression-language-guide.html#uuid">UUID()</a></span></p>
</div>
</div>
<div class="sect2 function">
<h3 id="uuid5"><a class="anchor" href="expression-language-guide.html#uuid5"></a>UUID5</h3>
<div class="paragraph">
<p><strong>Description</strong>: <span class="description">Returns a type 5 (SHA-1 hashed) namespace name-based UUID. The argument must be a valid UUID.</span></p>
</div>
<div class="paragraph">
<p><strong>Subject Type</strong>: <span class="subject">String</span></p>
</div>
<div class="paragraph">
<p><strong>Arguments</strong>:</p>
</div>
<div class="ulist">
<ul>
<li>
<p><span class="argName"><em>namespace</em></span> : <span class="argDesc">The namespace UUID identifier</span></p>
</li>
</ul>
</div>
<div class="paragraph">
<p><strong>Return Type</strong>: <span class="returnType">String</span></p>
</div>
<div class="paragraph">
<p><strong>Examples</strong>: If we have an attribute named "attr" with a value of "string value", then the Expression <code>${attr:UUID5('245b55a8-397d-4480-a41e-16603c8cf9ad')}</code> will return "4d111477-5100-5f2d-ae79-b38bbe15aa78".</p>
</div>
<div class="paragraph">
<p>An empty argument or an argument value with an invalid UUID results in an exception bulletin.</p>
</div>
<div class="paragraph">
<p><strong>See Also</strong>: <span class="seeAlso"><a href="expression-language-guide.html#uuid">UUID()</a></span></p>
</div>
</div>
<div class="sect2 function">
<h3 id="hash"><a class="anchor" href="expression-language-guide.html#hash"></a>hash</h3>
<div class="paragraph">
<p><strong>Description</strong>: <span class="description">Returns a hex encoded string using the hash algorithm provided. This can be used to generate unique keys.</span></p>
</div>
<div class="paragraph">
<p><strong>Subject Type</strong>: <span class="subject">String</span></p>
</div>
<div class="paragraph">
<p><strong>Arguments</strong>:</p>
</div>
<div class="ulist">
<ul>
<li>
<p><span class="argName"><em>algorithm</em></span> : <span class="argDesc">An algorithm to hash value.
Supports one of [SHA-384, SHA-224, SHA-256, MD2, SHA, SHA-512, MD5]. Warning: MD2, MD5, and SHA (SHA-1) should not be considered cryptographically secure (<a href="https://csrc.nist.gov/projects/hash-functions/nist-policy-on-hash-functions" target="_blank" rel="noopener">https://csrc.nist.gov/projects/hash-functions/nist-policy-on-hash-functions</a>).</span></p>
</li>
</ul>
</div>
<div class="paragraph">
<p><strong>Return Type</strong>: <span class="returnType">String</span></p>
</div>
<div class="paragraph">
<p><strong>Examples</strong>: We can hash an attribute named "payload" by using the Expression
		   <code>${payload:hash('SHA-256')}</code> If the attribute payload had a value of "string value"
		    then the Expression <code>${payload:hash('SHA-256')}</code> will return "9b6a1a9167a5caf3f5948413faa89e0ec0de89e12bef55327442e60dcc0e8c9b".</p>
</div>
</div>
</div>
</div>
<div class="sect1">
<h2 id="searching"><a class="anchor" href="expression-language-guide.html#searching"></a>Searching</h2>
<div class="sectionbody">
<div class="paragraph">
<p>Each of the following functions is used to search its subject for some value.</p>
</div>
<div class="sect2 function">
<h3 id="startswith"><a class="anchor" href="expression-language-guide.html#startswith"></a>startsWith</h3>
<div class="paragraph">
<p><strong>Description</strong>: <span class="description">Returns <code>true</code> if the Subject starts with the String provided as the argument,
	<code>false</code> otherwise.</span></p>
</div>
<div class="paragraph">
<p><strong>Subject Type</strong>: <span class="subject">String</span></p>
</div>
<div class="paragraph">
<p><strong>Arguments</strong>:</p>
</div>
<div class="ulist">
<ul>
<li>
<p><span class="argName"><em>value</em></span> : <span class="argDesc">The value to search for</span></p>
</li>
</ul>
</div>
<div class="paragraph">
<p><strong>Return Type</strong>: <span class="returnType">Boolean</span></p>
</div>
<div class="paragraph">
<p><strong>Examples</strong>: If the "filename" attribute has the value "a brand new filename.txt", then the Expression
	<code>${filename:startsWith('a brand')}</code> will return <code>true</code>. <code>${filename:startsWith('A BRAND')}</code> will
	return <code>false</code>. <code>${filename:toUpper():startsWith('A BRAND')}</code> returns <code>true</code>.</p>
</div>
</div>
<div class="sect2 function">
<h3 id="endswith"><a class="anchor" href="expression-language-guide.html#endswith"></a>endsWith</h3>
<div class="paragraph">
<p><strong>Description</strong>: <span class="description">Returns <code>true</code> if the Subject ends with the String provided as the argument,
	<code>false</code> otherwise.</span></p>
</div>
<div class="paragraph">
<p><strong>Subject Type</strong>: <span class="subject">String</span></p>
</div>
<div class="paragraph">
<p><strong>Arguments</strong>:</p>
</div>
<div class="ulist">
<ul>
<li>
<p><span class="argName"><em>value</em></span> : <span class="argDesc">The value to search for</span></p>
</li>
</ul>
</div>
<div class="paragraph">
<p><strong>Return Type</strong>: <span class="returnType">Boolean</span></p>
</div>
<div class="paragraph">
<p><strong>Examples</strong>: If the "filename" attribute has the value "a brand new filename.txt", then the Expression
	<code>${filename:endsWith('txt')}</code> will return <code>true</code>. <code>${filename:endsWith('TXT')}</code> will
	return <code>false</code>. <code>${filename:toUpper():endsWith('TXT')}</code> returns <code>true</code>.</p>
</div>
</div>
<div class="sect2 function">
<h3 id="contains"><a class="anchor" href="expression-language-guide.html#contains"></a>contains</h3>
<div class="paragraph">
<p><strong>Description</strong>: <span class="description">Returns <code>true</code> if the Subject contains the value of the argument anywhere in the value.</span></p>
</div>
<div class="paragraph">
<p><strong>Subject Type</strong>: <span class="subject">String</span></p>
</div>
<div class="paragraph">
<p><strong>Arguments</strong>:</p>
</div>
<div class="ulist">
<ul>
<li>
<p><span class="argName"><em>value</em></span> : <span class="argDesc">The value to search for</span></p>
</li>
</ul>
</div>
<div class="paragraph">
<p><strong>Return Type</strong>: <span class="returnType">Boolean</span></p>
</div>
<div class="paragraph">
<p><strong>Examples</strong>: If the "filename" attribute has the value "a brand new filename.txt", then the Expression
	<code>${filename:contains('new')}</code> will return <code>true</code>. <code>${filename:contains('NEW')}</code> will
	return <code>false</code>. <code>${filename:toUpper():contains('NEW')}</code> returns <code>true</code>.</p>
</div>
</div>
<div class="sect2 function">
<h3 id="in"><a class="anchor" href="expression-language-guide.html#in"></a>in</h3>
<div class="paragraph">
<p><strong>Description</strong>: <span class="description">Returns <code>true</code> if the Subject is matching one of the provided arguments.</span></p>
</div>
<div class="paragraph">
<p><strong>Subject Type</strong>: <span class="subject">String</span></p>
</div>
<div class="paragraph">
<p><strong>Arguments</strong>:</p>
</div>
<div class="ulist">
<ul>
<li>
<p><span class="argName"><em>value1</em></span> : <span class="argDesc">First possible matching value</span></p>
</li>
<li>
<p><span class="argName"><em>valueN</em></span> : <span class="argDesc">Nth possible matching value</span></p>
</li>
</ul>
</div>
<div class="paragraph">
<p><strong>Return Type</strong>: <span class="returnType">Boolean</span></p>
</div>
<div class="paragraph">
<p><strong>Examples</strong>: If the "myEnum" attribute has the value "JOHN", then the Expression
	<code>${myEnum:in("PAUL", "JOHN", "MIKE")}</code> will return <code>true</code>. <code>${myEnum:in("RED", "GREEN", "BLUE")}</code> will
	return <code>false</code>.</p>
</div>
</div>
<div class="sect2 function">
<h3 id="find"><a class="anchor" href="expression-language-guide.html#find"></a>find</h3>
<div class="paragraph">
<p><strong>Description</strong>: <span class="description">Returns <code>true</code> if the Subject contains any sequence of characters that matches the
	Regular Expression provided by the argument.</span></p>
</div>
<div class="paragraph">
<p><strong>Subject Type</strong>: <span class="subject">String</span></p>
</div>
<div class="paragraph">
<p><strong>Arguments</strong>:</p>
</div>
<div class="ulist">
<ul>
<li>
<p><span class="argName"><em>Regex</em></span> : <span class="argDesc">The Regular Expression (in the Java Pattern syntax) to match against the Subject</span></p>
</li>
</ul>
</div>
<div class="paragraph">
<p><strong>Return Type</strong>: <span class="returnType">Boolean</span></p>
</div>
<div class="paragraph">
<p><strong>Examples</strong>:</p>
</div>
<div class="paragraph">
<p>If the "filename" attribute has the value "a brand new filename.txt", then the following
Expressions will provide the following results:</p>
</div>
<table class="tableblock frame-all grid-all stretch">
<caption class="title">Table 16. find Examples</caption>
<colgroup>
<col style="width: 50%;">
<col style="width: 50%;">
</colgroup>
<tbody>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">Expression</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Value</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>${filename:find('a [Bb]rand [Nn]ew')}</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>true</code></p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>${filename:find('Brand.*')}</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>false</code></p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>${filename:find('brand')}</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>true</code></p></td>
</tr>
</tbody>
</table>
</div>
<div class="sect2 function">
<h3 id="matches"><a class="anchor" href="expression-language-guide.html#matches"></a>matches</h3>
<div class="paragraph">
<p><strong>Description</strong>: <span class="description">Returns <code>true</code> if the Subject exactly matches the Regular Expression provided by the argument.</span></p>
</div>
<div class="paragraph">
<p><strong>Subject Type</strong>: <span class="subject">String</span></p>
</div>
<div class="paragraph">
<p><strong>Arguments</strong>:</p>
</div>
<div class="ulist">
<ul>
<li>
<p><span class="argName"><em>Regex</em></span> : <span class="argDesc">The Regular Expression (in the Java Pattern syntax) to match against the Subject</span></p>
</li>
</ul>
</div>
<div class="paragraph">
<p><strong>Return Type</strong>: <span class="returnType">Boolean</span></p>
</div>
<div class="paragraph">
<p><strong>Examples</strong>:</p>
</div>
<div class="paragraph">
<p>If the "filename" attribute has the value "a brand new filename.txt", then the following
Expressions will provide the following results:</p>
</div>
<table class="tableblock frame-all grid-all stretch">
<caption class="title">Table 17. matches Examples</caption>
<colgroup>
<col style="width: 50%;">
<col style="width: 50%;">
</colgroup>
<tbody>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">Expression</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Value</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>${filename:matches('a.*txt')}</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>true</code></p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>${filename:matches('brand')}</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>false</code></p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>${filename:matches('.+brand.+')}</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>true</code></p></td>
</tr>
</tbody>
</table>
</div>
<div class="sect2 function">
<h3 id="indexof"><a class="anchor" href="expression-language-guide.html#indexof"></a>indexOf</h3>
<div class="paragraph">
<p><strong>Description</strong>: <span class="description">Returns the index of the first character in the Subject that matches the String value provided
	as an argument. If the argument is found multiple times within the Subject, the value returned is the
	starting index of the <strong>first</strong> occurrence.
	If the argument cannot be found in the Subject, returns <code>-1</code>. The index is zero-based. This means that if
	the search string is found at the beginning of the Subject, the value returned will be <code>0</code>, not <code>1</code>.</span></p>
</div>
<div class="paragraph">
<p><strong>Subject Type</strong>: <span class="subject">String</span></p>
</div>
<div class="paragraph">
<p><strong>Arguments</strong>:</p>
</div>
<div class="ulist">
<ul>
<li>
<p><span class="argName"><em>value</em></span> : <span class="argDesc">The value to search for in the Subject</span></p>
</li>
</ul>
</div>
<div class="paragraph">
<p><strong>Return Type</strong>: <span class="returnType">Number</span></p>
</div>
<div class="paragraph">
<p><strong>Examples</strong>: If the "filename" attribute has the value "a brand new filename.txt", then the following
Expressions will provide the following results:</p>
</div>
<table class="tableblock frame-all grid-all stretch">
<caption class="title">Table 18. indexOf Examples</caption>
<colgroup>
<col style="width: 50%;">
<col style="width: 50%;">
</colgroup>
<tbody>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">Expression</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Value</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>${filename:indexOf('a.*txt')}</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>-1</code></p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>${filename:indexOf('.')}</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>20</code></p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>${filename:indexOf('a')}</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>0</code></p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>${filename:indexOf(' ')}</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>1</code></p></td>
</tr>
</tbody>
</table>
</div>
<div class="sect2 function">
<h3 id="lastindexof"><a class="anchor" href="expression-language-guide.html#lastindexof"></a>lastIndexOf</h3>
<div class="paragraph">
<p><strong>Description</strong>: <span class="description">Returns the index of the first character in the Subject that matches the String value provided
	as an argument. If the argument is found multiple times within the Subject, the value returned is the
	starting index of the <strong>last</strong> occurrence.
	If the argument cannot be found in the Subject, returns <code>-1</code>. The index is zero-based. This means that if
	the search string is found at the beginning of the Subject, the value returned will be <code>0</code>, not <code>1</code>.</span></p>
</div>
<div class="paragraph">
<p><strong>Subject Type</strong>: <span class="subject">String</span></p>
</div>
<div class="paragraph">
<p><strong>Arguments</strong>:</p>
</div>
<div class="ulist">
<ul>
<li>
<p><span class="argName"><em>value</em></span> : <span class="argDesc">The value to search for in the Subject</span></p>
</li>
</ul>
</div>
<div class="paragraph">
<p><strong>Return Type</strong>: <span class="returnType">Number</span></p>
</div>
<div class="paragraph">
<p><strong>Examples</strong>: If the "filename" attribute has the value "a brand new filename.txt", then the following
Expressions will provide the following results:</p>
</div>
<table class="tableblock frame-all grid-all stretch">
<caption class="title">Table 19. lastIndexOf Examples</caption>
<colgroup>
<col style="width: 50%;">
<col style="width: 50%;">
</colgroup>
<tbody>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">Expression</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Value</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>${filename:lastIndexOf('a.*txt')}</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>-1</code></p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>${filename:lastIndexOf('.')}</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>20</code></p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>${filename:lastIndexOf('a')}</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>17</code></p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>${filename:lastIndexOf(' ')}</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>11</code></p></td>
</tr>
</tbody>
</table>
</div>
<div class="sect2 function">
<h3 id="jsonpath"><a class="anchor" href="expression-language-guide.html#jsonpath"></a>jsonPath</h3>
<div class="paragraph">
<p><strong>Description</strong>: <span class="description">The <code>jsonPath</code> function generates a string by evaluating the Subject as JSON and applying a JSON
  path expression. An empty string is generated if the Subject does not contain valid JSON, the <em>jsonPath</em> is invalid, or the path
	does not exist in the Subject.  If the evaluation results in a scalar value, the string representation of scalar value is
	generated.  Otherwise a string representation of the JSON result is generated.  A JSON array of length 1 is special cased
	when <code>[0]</code> is a scalar, the string representation of <code>[0]</code> is generated.</span></p>
</div>
<div class="paragraph">
<p><strong>Subject Type</strong>: <span class="subject">String</span></p>
</div>
<div class="paragraph">
<p><strong>Arguments</strong>:
	 <span class="argName"><em>jsonPath</em></span> : <span class="argDesc">the JSON path expression used to evaluate the Subject.</span></p>
</div>
<div class="paragraph">
<p><strong>Return Type</strong>: <span class="returnType">String</span></p>
</div>
<div class="paragraph">
<p><strong>Examples</strong>: If the "myJson" attribute is</p>
</div>
<div class="literalblock">
<div class="content">
<pre>{
  "firstName": "John",
  "lastName": "Smith",
  "isAlive": true,
  "age": 25,
  "address": {
    "streetAddress": "21 2nd Street",
    "city": "New York",
    "state": "NY",
    "postalCode": "10021-3100"
  },
  "phoneNumbers": [
    {
      "type": "home",
      "number": "212 555-1234"
    },
    {
      "type": "office",
      "number": "646 555-4567"
    }
  ],
  "children": [],
  "spouse": null
}</pre>
</div>
</div>
<table class="tableblock frame-all grid-all stretch">
<caption class="title">Table 20. jsonPath Examples</caption>
<colgroup>
<col style="width: 50%;">
<col style="width: 50%;">
</colgroup>
<tbody>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">Expression</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Value</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>${myJson:jsonPath('$.firstName')}</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>John</code></p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>${myJson:jsonPath('$.address.postalCode')}</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>10021-3100</code></p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>${myJson:jsonPath('$.phoneNumbers[?(@.type=="home")].number')}</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>212 555-1234</code></p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>${myJson:jsonPath('$.phoneNumbers')}</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>[{"type":"home","number":"212 555-1234"},{"type":"office","number":"646 555-4567"}]</code></p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>${myJson:jsonPath('$.missing-path')}</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><em>empty</em></p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>${myJson:jsonPath('$.bad-json-path..')}</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><em>exception bulletin</em></p></td>
</tr>
</tbody>
</table>
<div class="paragraph">
<p>An empty subject value or a subject value with an invalid JSON document results in an exception bulletin.</p>
</div>
</div>
<div class="sect2 function">
<h3 id="jsonpathdelete"><a class="anchor" href="expression-language-guide.html#jsonpathdelete"></a>jsonPathDelete</h3>
<div class="paragraph">
<p><strong>Description</strong>: <span class="description">The <code>jsonPathDelete</code> function deletes the specified JsonPath from a Subject JSON and returns string
form of the updated JSON.</span></p>
</div>
<div class="paragraph">
<p><strong>Subject Type</strong>: <span class="subject">String</span></p>
</div>
<div class="paragraph">
<p><strong>Arguments</strong>:
	 <span class="argName"><em>jsonPath</em></span> : <span class="argDesc">the JSON path expression to delete from the Subject.</span></p>
</div>
<div class="paragraph">
<p><strong>Return Type</strong>: <span class="returnType">String</span></p>
</div>
<div class="paragraph">
<p><strong>Examples</strong>: If the "myJson" attribute is</p>
</div>
<div class="literalblock">
<div class="content">
<pre>{
  "firstName": "John",
  "lastName": "Smith",
  "isAlive": true,
  "age": 25,
  "address": {
    "streetAddress": "21 2nd Street",
    "city": "New York",
    "state": "NY",
    "postalCode": "10021-3100"
  },
  "phoneNumbers": [
    {
      "type": "home",
      "number": "212 555-1234"
    },
    {
      "type": "office",
      "number": "646 555-4567"
    }
  ],
  "children": [],
  "spouse": null
}</pre>
</div>
</div>
<table class="tableblock frame-all grid-all stretch">
<caption class="title">Table 21. jsonPathDelete Examples</caption>
<colgroup>
<col style="width: 50%;">
<col style="width: 50%;">
</colgroup>
<tbody>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">Expression</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Value</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>${myJson:jsonPathDelete('$.firstName')}</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>{"lastName":"Smith","age":25,"address":{"streetAddress":"21 2nd Street","city":"New York","state":"NY","postalCode":"10021-3100"},"phoneNumbers":[{"type":"home","number":"212 555-1234"},{"type":"office","number":"646 555-4567"}]}</code></p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>${myJson:jsonPathDelete('$.missing-path')}</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Returns original JSON document</p></td>
</tr>
</tbody>
</table>
<div class="paragraph">
<p>An empty subject value or a subject value with an invalid JSON document results in an exception bulletin.</p>
</div>
</div>
<div class="sect2 function">
<h3 id="jsonpathadd"><a class="anchor" href="expression-language-guide.html#jsonpathadd"></a>jsonPathAdd</h3>
<div class="paragraph">
<p><strong>Description</strong>: <span class="description">The <code>jsonPathAdd</code> function adds a scalar value to an array at the specified JsonPath on
a Subject JSON and returns string form of the updated JSON.</span>  If the expression target element is a non-array,
an empty string is returned and an exception is logged indicating the error.  If the expression target element
path is not in the JSON, the operation returns the original JSON without any modifications.</p>
</div>
<div class="paragraph">
<p><strong>Subject Type</strong>: <span class="subject">String</span></p>
</div>
<div class="paragraph">
<p><strong>Arguments</strong>:</p>
</div>
<div class="ulist">
<ul>
<li>
<p><span class="argName"><em>jsonPath</em></span> : <span class="argDesc">the JSON path expression to set value on the Subject.</span></p>
</li>
<li>
<p><span class="argName"><em>value</em></span> : <span class="argDesc">the value expression to be added to the array at the specified path on Subject.</span></p>
</li>
</ul>
</div>
<div class="paragraph">
<p><strong>Return Type</strong>: <span class="returnType">String</span></p>
</div>
<div class="paragraph">
<p><strong>Examples</strong>: If the "myJson" attribute is</p>
</div>
<div class="literalblock">
<div class="content">
<pre>{
     "firstName": "John",
     "lastName": "Smith",
     "age": 25,
     "voter" : true,
     "height" : 6.1,
     "address" : {
         "streetAddress": "21 2nd Street",
         "city": "New York",
         "state": "NY",
         "postalCode": "10021-3100"
     },
     "phoneNumbers": [
         {
             "type": "home",
             "number": "212 555-1234"
         },
         {
             "type": "office",
             "number": "646 555-4567"
         }
     ],
     "nicknames" : []
 }</pre>
</div>
</div>
<table class="tableblock frame-all grid-all stretch">
<caption class="title">Table 22. jsonPathAdd Examples</caption>
<colgroup>
<col style="width: 50%;">
<col style="width: 50%;">
</colgroup>
<tbody>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">Expression</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Value</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>${myJson:jsonPathAdd('$.nicknames', 'Jimmy')}</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>{"firstName":"James", lastName":"Smith", "age":25, "voter":true, "height":6.1, "address":{"streetAddress":"21 2nd Street", "city":"New York", "state":"NY", "postalCode":"10021-3100"}, "phoneNumbers":[{"type":"home", "number":"212 555-1234"}, {"type":"office", "number":"646 555-4567"}],"nicknames":["Jimmy"]}</code></p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>${myJson:jsonPathAdd('$.missingpath', 'Jimmy')}</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Returns original JSON document with no modifications</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>${myJson:jsonPathAdd('$.firstName', 'Jimmy')}</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><em>empty</em></p></td>
</tr>
</tbody>
</table>
</div>
<div class="sect2 function">
<h3 id="jsonpathset"><a class="anchor" href="expression-language-guide.html#jsonpathset"></a>jsonPathSet</h3>
<div class="paragraph">
<p><strong>Description</strong>: <span class="description">The <code>jsonPathSet</code> function sets the value at the specified JsonPath on a Subject JSON and returns string
form of the updated JSON.</span></p>
</div>
<div class="paragraph">
<p><strong>Subject Type</strong>: <span class="subject">String</span></p>
</div>
<div class="paragraph">
<p><strong>Arguments</strong>:</p>
</div>
<div class="ulist">
<ul>
<li>
<p><span class="argName"><em>jsonPath</em></span> : <span class="argDesc">the JSON path expression to set value on the Subject.</span></p>
</li>
<li>
<p><span class="argName"><em>value</em></span> : <span class="argDesc">the value expression to be set on the specified path on Subject.</span></p>
</li>
</ul>
</div>
<div class="paragraph">
<p><strong>Return Type</strong>: <span class="returnType">String</span></p>
</div>
<div class="paragraph">
<p><strong>Examples</strong>: If the "myJson" attribute is</p>
</div>
<div class="literalblock">
<div class="content">
<pre>{
     "firstName": "John",
     "lastName": "Smith",
     "age": 25,
     "voter" : true,
     "height" : 6.1,
     "address" : {
         "streetAddress": "21 2nd Street",
         "city": "New York",
         "state": "NY",
         "postalCode": "10021-3100"
     },
     "phoneNumbers": [
         {
             "type": "home",
             "number": "212 555-1234"
         },
         {
             "type": "office",
             "number": "646 555-4567"
         }
     ],
     "nicknames" : []
 }</pre>
</div>
</div>
<table class="tableblock frame-all grid-all stretch">
<caption class="title">Table 23. jsonPathSet Examples</caption>
<colgroup>
<col style="width: 50%;">
<col style="width: 50%;">
</colgroup>
<tbody>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">Expression</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Value</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>${myJson:jsonPathSet('$.firstName', 'James')}</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>{"firstName":"James", lastName":"Smith", "age":25, "voter":true, "height":6.1, "address":{"streetAddress":"21 2nd Street", "city":"New York", "state":"NY", "postalCode":"10021-3100"}, "phoneNumbers":[{"type":"home", "number":"212 555-1234"}, {"type":"office", "number":"646 555-4567"}]}</code></p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>${myJson:jsonPathSet('$.missingpath', 'James')}</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Returns original JSON document</p></td>
</tr>
</tbody>
</table>
<div class="paragraph">
<p>An empty subject value or a subject value with an invalid JSON document results in an exception bulletin.</p>
</div>
</div>
<div class="sect2 function">
<h3 id="jsonpathput"><a class="anchor" href="expression-language-guide.html#jsonpathput"></a>jsonPathPut</h3>
<div class="paragraph">
<p><strong>Description</strong>: <span class="description">The <code>jsonPathPut</code> function puts the key and scalar value at the specified JsonPath on a Subject JSON and returns string
form of the updated JSON.</span></p>
</div>
<div class="paragraph">
<p><strong>Subject Type</strong>: <span class="subject">String</span></p>
</div>
<div class="paragraph">
<p><strong>Arguments</strong>:</p>
</div>
<div class="ulist">
<ul>
<li>
<p><span class="argName"><em>jsonPath</em></span> : <span class="argDesc">the JSON path expression to set value on the Subject.</span></p>
</li>
<li>
<p><span class="argName"><em>value</em></span> : <span class="argDesc">the value expression to be set on the specified path on Subject.</span></p>
</li>
<li>
<p><span class="argName"><em>key</em></span> : <span class="argDesc">the key expression with the associated value the specified path on Subject.</span></p>
</li>
</ul>
</div>
<div class="paragraph">
<p><strong>Return Type</strong>: <span class="returnType">String</span></p>
</div>
<div class="paragraph">
<p><strong>Examples</strong>: If the "myJson" attribute is</p>
</div>
<div class="literalblock">
<div class="content">
<pre>{
     "firstName": "John",
     "lastName": "Smith",
     "age": 25,
     "voter" : true,
     "height" : 6.1,
     "address" : {
         "streetAddress": "21 2nd Street",
         "city": "New York",
         "state": "NY",
         "postalCode": "10021-3100"
     },
     "phoneNumbers": [
         {
             "type": "home",
             "number": "212 555-1234"
         },
         {
             "type": "office",
             "number": "646 555-4567"
         }
     ],
     "nicknames" : []
 }</pre>
</div>
</div>
<table class="tableblock frame-all grid-all stretch">
<caption class="title">Table 24. jsonPathPut Examples</caption>
<colgroup>
<col style="width: 50%;">
<col style="width: 50%;">
</colgroup>
<tbody>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">Expression</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Value</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>${myJson:jsonPathPut('$','middlename','Turon')}</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>{"firstName":"James", lastName":"Smith", "middlename": "Turon", "age":25, "voter":true, "height":6.1, "address":{"streetAddress":"21 2nd Street", "city":"New York", "state":"NY", "postalCode":"10021-3100"}, "phoneNumbers":[{"type":"home", "number":"212 555-1234"}, {"type":"office", "number":"646 555-4567"}]}</code></p></td>
</tr>
</tbody>
</table>
<div class="paragraph">
<p>An empty subject value or a subject value with an invalid JSON document results in an exception bulletin.</p>
</div>
</div>
</div>
</div>
<div class="sect1">
<h2 id="numbers"><a class="anchor" href="expression-language-guide.html#numbers"></a>Mathematical Operations and Numeric Manipulation</h2>
<div class="sectionbody">
<div class="paragraph">
<p>For those functions that support Decimal and Number (whole number) types, the return value type depends on the input types. If either the
subject or argument are a Decimal then the result will be a Decimal. If both values are Numbers then the result will be a Number. This includes
Divide. This is to preserve backwards compatibility and to not force rounding errors.</p>
</div>
<div class="sect2 function">
<h3 id="plus"><a class="anchor" href="expression-language-guide.html#plus"></a>plus</h3>
<div class="paragraph">
<p><strong>Description</strong>: <span class="description">Adds a numeric value to the Subject. If either the argument or the Subject cannot be
	coerced into a Number, returns <code>null</code>. Does not provide handling for overflow.</span></p>
</div>
<div class="paragraph">
<p><strong>Subject Type</strong>: <span class="subject">Number or Decimal</span></p>
</div>
<div class="paragraph">
<p><strong>Arguments</strong>:</p>
</div>
<div class="ulist">
<ul>
<li>
<p><span class="argName"><em>Operand</em></span> : <span class="argDesc">The value to add to the Subject</span></p>
</li>
</ul>
</div>
<div class="paragraph">
<p><strong>Return Type</strong>: <span class="returnType">Number or Decimal (depending on input types)</span></p>
</div>
<div class="paragraph">
<p><strong>Examples</strong>: If the "fileSize" attribute has a value of 100, then the Expression <code>${fileSize:plus(1000)}</code>
	will return the value <code>1100</code>.</p>
</div>
</div>
<div class="sect2 function">
<h3 id="minus"><a class="anchor" href="expression-language-guide.html#minus"></a>minus</h3>
<div class="paragraph">
<p><strong>Description</strong>: <span class="description">Subtracts a numeric value from the Subject. Does not provide handling for overflow.</span></p>
</div>
<div class="paragraph">
<p><strong>Subject Type</strong>: <span class="subject">Number or Decimal</span></p>
</div>
<div class="paragraph">
<p><strong>Arguments</strong>:</p>
</div>
<div class="ulist">
<ul>
<li>
<p><span class="argName"><em>Operand</em></span> : <span class="argDesc">The value to subtract from the Subject</span></p>
</li>
</ul>
</div>
<div class="paragraph">
<p><strong>Return Type</strong>: <span class="returnType">Number or Decimal (depending on input types)</span></p>
</div>
<div class="paragraph">
<p><strong>Examples</strong>: If the "fileSize" attribute has a value of 100, then the Expression <code>${fileSize:minus(100)}</code>
	will return the value <code>0</code>.</p>
</div>
</div>
<div class="sect2 function">
<h3 id="multiply"><a class="anchor" href="expression-language-guide.html#multiply"></a>multiply</h3>
<div class="paragraph">
<p><strong>Description</strong>: <span class="description">Multiplies a numeric value by the Subject and returns the product.</span> Does not provide handling for overflow.</p>
</div>
<div class="paragraph">
<p><strong>Subject Type</strong>: <span class="subject">Number or Decimal</span></p>
</div>
<div class="paragraph">
<p><strong>Arguments</strong>:</p>
</div>
<div class="ulist">
<ul>
<li>
<p><span class="argName"><em>Operand</em></span> : <span class="argDesc">The value to multiple the Subject by</span></p>
</li>
</ul>
</div>
<div class="paragraph">
<p><strong>Return Type</strong>: <span class="returnType">Number or Decimal (depending on input types)</span></p>
</div>
<div class="paragraph">
<p><strong>Examples</strong>: If the "fileSize" attribute has a value of 100, then the Expression <code>${fileSize:multiply(1024)}</code>
	will return the value <code>102400</code>.</p>
</div>
</div>
<div class="sect2 function">
<h3 id="divide"><a class="anchor" href="expression-language-guide.html#divide"></a>divide</h3>
<div class="paragraph">
<p><strong>Description</strong>: <span class="description">Divides the Subject by a numeric value and returns the result.</span></p>
</div>
<div class="paragraph">
<p><strong>Subject Type</strong>: <span class="subject">Number or Decimal</span></p>
</div>
<div class="paragraph">
<p><strong>Arguments</strong>:</p>
</div>
<div class="ulist">
<ul>
<li>
<p><span class="argName"><em>Operand</em></span> : <span class="argDesc">The value to divide the Subject by</span></p>
</li>
</ul>
</div>
<div class="paragraph">
<p><strong>Return Type</strong>: <span class="returnType">Number or Decimal (depending on input types)</span></p>
</div>
<div class="paragraph">
<p><strong>Examples</strong>: If the "fileSize" attribute has a value of 100, then the Expression <code>${fileSize:divide(12)}</code>
	will return the value <code>8</code>.</p>
</div>
</div>
<div class="sect2 function">
<h3 id="mod"><a class="anchor" href="expression-language-guide.html#mod"></a>mod</h3>
<div class="paragraph">
<p><strong>Description</strong>: <span class="description">Performs a modular division of the Subject by the argument. That is, this function will divide
	the Subject by the value of the argument and return not the quotient but rather the remainder.</span></p>
</div>
<div class="paragraph">
<p><strong>Subject Type</strong>: <span class="subject">Number or Decimal</span></p>
</div>
<div class="paragraph">
<p><strong>Arguments</strong>:</p>
</div>
<div class="ulist">
<ul>
<li>
<p><span class="argName"><em>Operand</em></span> : <span class="argDesc">The value to divide the Subject by</span></p>
</li>
</ul>
</div>
<div class="paragraph">
<p><strong>Return Type</strong>: <span class="returnType">Number or Decimal (depending on input types)</span></p>
</div>
<div class="paragraph">
<p><strong>Examples</strong>: If the "fileSize" attribute has a value of 100, then the Expression <code>${fileSize:mod(12)}</code>
	will return the value <code>4</code>.</p>
</div>
</div>
<div class="sect2 function">
<h3 id="toradix"><a class="anchor" href="expression-language-guide.html#toradix"></a>toRadix</h3>
<div class="paragraph">
<p><strong>Description</strong>: <span class="description">Converts the Subject from a Base 10 number to a different Radix (or number base). An optional second argument can be used to indicate the minimum number of characters to be used. If the converted value has fewer than this number of characters, the number will be padded with leading zeroes. If a decimal is passed as the subject, it will first be converted to a whole number and then processed.</span></p>
</div>
<div class="paragraph">
<p><strong>Subject Type</strong>: <span class="subject">Number</span></p>
</div>
<div class="paragraph">
<p><strong>Arguments</strong>:</p>
</div>
<div class="ulist">
<ul>
<li>
<p><span class="argName"><em>Desired Base</em></span> : <span class="argDesc">A Number between 2 and 36 (inclusive)</span></p>
</li>
<li>
<p><span class="argName"><em>Padding</em></span> : <span class="argDesc">Optional argument that specifies the minimum number of characters in the converted output</span></p>
</li>
</ul>
</div>
<div class="paragraph">
<p><strong>Return Type</strong>: <span class="returnType">String</span></p>
</div>
<div class="paragraph">
<p><strong>Examples</strong>: If the "fileSize" attributes has a value of 1024, then the following Expressions will yield
	the following results:</p>
</div>
<table class="tableblock frame-all grid-all stretch">
<caption class="title">Table 25. toRadix Examples</caption>
<colgroup>
<col style="width: 50%;">
<col style="width: 50%;">
</colgroup>
<tbody>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">Expression</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Value</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>${fileSize:toRadix(10)}</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>1024</code></p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>${fileSize:toRadix(10, 1)}</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>1024</code></p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>${fileSize:toRadix(10, 8)}</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>00001024</code></p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>${fileSize:toRadix(16)}</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>400</code></p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>${fileSize:toRadix(16, 8)}</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>00000400</code></p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>${fileSize:toRadix(2)}</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>10000000000</code></p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>${fileSize:toRadix(2, 16)}</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>0000010000000000</code></p></td>
</tr>
</tbody>
</table>
</div>
<div class="sect2 function">
<h3 id="fromradix"><a class="anchor" href="expression-language-guide.html#fromradix"></a>fromRadix</h3>
<div class="paragraph">
<p><strong>Description</strong>: <span class="description">Converts the Subject from a specified Radix (or number base) to a base ten whole number. The subject will converted as is, without interpretation, and all characters must be valid for the base being converted from. For example converting "0xFF" from hex will not work due to "x" being a invalid hex character. If a decimal is passed as the subject, it will first be converted to a whole number and then processed.</span></p>
</div>
<div class="paragraph">
<p><strong>Subject Type</strong>: <span class="subject">String</span></p>
</div>
<div class="paragraph">
<p><strong>Arguments</strong>:</p>
</div>
<div class="ulist">
<ul>
<li>
<p><span class="argName"><em>Subject Base</em></span> : <span class="argDesc">A Number between 2 and 36 (inclusive)</span></p>
</li>
</ul>
</div>
<div class="paragraph">
<p><strong>Return Type</strong>: <span class="returnType">Number</span></p>
</div>
<div class="paragraph">
<p><strong>Examples</strong>: If the "fileSize" attributes has a value of 1234A, then the following Expressions will yield
	the following results:</p>
</div>
<table class="tableblock frame-all grid-all stretch">
<caption class="title">Table 26. toRadix Examples</caption>
<colgroup>
<col style="width: 50%;">
<col style="width: 50%;">
</colgroup>
<tbody>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">Expression</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Value</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>${fileSize:fromRadix(11)}</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>17720</code></p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>${fileSize:fromRadix(16)}</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>74570</code></p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>${fileSize:fromRadix(20)}</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>177290</code></p></td>
</tr>
</tbody>
</table>
</div>
<div class="sect2 function">
<h3 id="random"><a class="anchor" href="expression-language-guide.html#random"></a>random</h3>
<div class="paragraph">
<p><strong>Description</strong>: <span class="description">Returns a random whole number ( 0 to 2^63 - 1) using an insecure random number generator.</span></p>
</div>
<div class="paragraph">
<p><strong>Subject Type</strong>: <span class="subjectless">No subject</span></p>
</div>
<div class="paragraph">
<p><strong>Arguments</strong>: No arguments</p>
</div>
<div class="paragraph">
<p><strong>Return Type</strong>: <span class="returnType">Number</span></p>
</div>
<div class="paragraph">
<p><strong>Examples</strong>: <code>${random():mod(10):plus(1)}</code> returns random number between 1 and 10 inclusive.</p>
</div>
</div>
<div class="sect2 function">
<h3 id="math"><a class="anchor" href="expression-language-guide.html#math"></a>math</h3>
<div class="paragraph">
<p><strong>Description</strong>: <span class="description">ADVANCED FEATURE. This expression is designed to be used by advanced users only. It utilizes Java Reflection to run arbitrary java.lang.Math static methods. The exact API will depend on the version of Java you are running. The Java 8 API can be found here: <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Math.html" target="_blank" rel="noopener">https://docs.oracle.com/javase/8/docs/api/java/lang/Math.html</a>
<br>
In order to run the correct method, the parameter types must be correct. The Expression Language "Number" (whole number) type is interpreted as a Java "long". The "Decimal" type is interpreted as a Java "double". Running the desired method may require calling "toNumber()" or "toDecimal()" in order to "cast" the value to the desired type. This also is important to remember when cascading "math()" calls since the return type depends on the method that was run.</span></p>
</div>
<div class="paragraph">
<p><strong>Subject Type</strong>: <span class="subject  subjectless">Subjectless, Number or Decimal (depending on the desired method to run)</span></p>
</div>
<div class="paragraph">
<p><strong>Arguments</strong>:</p>
</div>
<div class="ulist">
<ul>
<li>
<p><span class="argName"><em>Method</em></span> : <span class="argDesc">The name of the Java Math method to run</span></p>
</li>
<li>
<p><span class="argName"><em>Optional Argument</em></span> : <span class="argDesc">Optional argument that acts as the second parameter to the method.</span></p>
</li>
</ul>
</div>
<div class="paragraph">
<p><strong>Return Type</strong>: <span class="returnType">Number or Decimal (depending on method run)</span></p>
</div>
<div class="paragraph">
<p><strong>Examples</strong>:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>${math("random")} runs Math.random().</p>
</li>
<li>
<p>${literal(2):toDecimal:math("pow", 2.5)} runs Math.pow(2D,2.5D).</p>
</li>
<li>
<p>${literal(64):toDouble():math("cbrt"):toNumber():math("max", 5)} runs Math.maxDouble.valueOf(Math.cbrt(64D).longValue(), 5L). Note that the toDecimal() is needed because "cbrt" takes a "double" as input and the "64" will get interpreted as a long. The "toDecimal()" call is necessary to correctly call the method. that the "toNumber()" call is necessary because "cbrt" returns a double and the "max" method is must have parameters of the same type and "5" is interpreted as a long.</p>
</li>
<li>
<p>${literal(5.4):math("scalb", 2)} runs Math.scalb(5.4, 2). This example is important because NiFi EL treats all whole numbers as "longs" and there is no concept of an "int". "scalb" takes a second parameter of an "int" and it is not overloaded to accept longs so it could not be run without special type handling. In the instance where the Java method cannot be found using parameters of type "double" and "long" the "math()" EL function will attempt to find a Java method with the same name but parameters of "double" and "int".</p>
</li>
<li>
<p>${first:toDecimal():math("pow", ${second:toDecimal()})} where attributes evaluate to "first" = 2.5 and "second" = 2. This example runs Math.pow(2.5D, 2D). The explicit calls to toDecimal() are important because of the dynamic nature of EL. When creating the flow, the user is unaware if the expression language values will be able to be interpreted as a whole number or not. In this example without the explicit calls "toDecimal" the "math" function would attempt to run a Java method "pow" with types "double" and "long" (which doesn&#8217;t exist).</p>
</li>
</ul>
</div>
</div>
</div>
</div>
<div class="sect1">
<h2 id="dates"><a class="anchor" href="expression-language-guide.html#dates"></a>Date Manipulation</h2>
<div class="sectionbody">
<div class="sect2 function">
<h3 id="format"><a class="anchor" href="expression-language-guide.html#format"></a>format</h3>
<div class="paragraph">
<p><strong>Description</strong>: <span class="description">Formats a number as a date/time according to the format specified by the argument. The argument
	must be a String that is a valid Java SimpleDateFormat format. The Subject is expected to be a Number that
	represents the number of milliseconds since Midnight GMT on January 1, 1970. The number will be evaluated using the local
	time zone unless specified in the second optional argument.</span></p>
</div>
<div class="paragraph">
<p><strong>Subject Type</strong>: <span class="subject">Number</span></p>
</div>
<div class="paragraph">
<p><strong>Arguments</strong>:</p>
</div>
<div class="ulist">
<ul>
<li>
<p><span class="argName"><em>format</em></span> : <span class="argDesc">The format to use in the Java SimpleDateFormat syntax</span></p>
</li>
<li>
<p><span class="argName"><em>time zone</em></span> : <span class="argDesc">Optional argument that specifies the time zone to use (in the Java TimeZone syntax)</span></p>
</li>
</ul>
</div>
<div class="paragraph">
<p><strong>Return Type</strong>: <span class="returnType">String</span></p>
</div>
<div class="paragraph">
<p><strong>Examples</strong>: If the attribute "time" has the value "1420058163264", then the following Expressions will yield
	the following results:</p>
</div>
<table class="tableblock frame-all grid-all stretch">
<caption class="title">Table 27. format Examples</caption>
<colgroup>
<col style="width: 50%;">
<col style="width: 50%;">
</colgroup>
<tbody>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">Expression</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Value</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>${time:format("yyyy/MM/dd HH:mm:ss.SSS'Z'", "GMT")}</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>2014/12/31 20:36:03.264Z</code></p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>${time:format("yyyy/MM/dd HH:mm:ss.SSS'Z'", "America/Los_Angeles")}</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>2014/12/31 12:36:03.264Z</code></p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>${time:format("yyyy/MM/dd HH:mm:ss.SSS'Z'", "Asia/Tokyo")}</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>2015/01/01 05:36:03.264Z</code></p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>${time:format("yyyy/MM/dd", "GMT")}</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>2014/12/31</code></p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>${time:format("HH:mm:ss.SSS'Z'", "GMT")}</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>20:36:03.264Z</code></p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>${time:format("yyyy", "GMT")}</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>2014</code></p></td>
</tr>
</tbody>
</table>
</div>
<div class="sect2 function">
<h3 id="formatInstant"><a class="anchor" href="expression-language-guide.html#formatInstant"></a>formatInstant</h3>
<div class="paragraph">
<p><strong>Description</strong>: [.description]#Formats an Instant, number or string according to the format specified by the argument.</p>
</div>
<div class="paragraph">
<p>The first argument must be a String that is a valid Java DateTimeFormatter format.
The second argument must be a String that is a valid time zone.
The Subject is expected to be an Instant, String or Number that represents the number of milliseconds since Midnight GMT on January 1, 1970 or a String with one of the following</p>
</div>
<div class="paragraph">
<p>DateTimeFormatter syntaxes:#</p>
</div>
<div class="ulist">
<ul>
<li>
<p><em>ISO_OFFSET</em> such as '2011-12-03T10:15:30+01:00'</p>
</li>
<li>
<p><em>ISO_INSTANT</em> such as '2011-12-03T10:15:30Z'</p>
</li>
<li>
<p><em>RFC_1123</em> such as 'Thu, 01 Dec 1994 16:00:00 GMT'</p>
</li>
</ul>
</div>
<div class="paragraph">
<p><strong>Subject Type</strong>: <span class="subject">Instant or Number or String</span></p>
</div>
<div class="paragraph">
<p><strong>Arguments</strong>:</p>
</div>
<div class="ulist">
<ul>
<li>
<p><span class="argName"><em>format</em></span> : <span class="argDesc">The format to use in the Java DateTimeFormatter syntax</span></p>
</li>
<li>
<p><span class="argName"><em>time zone</em></span> : <span class="argDesc">Optional argument that specifies the time zone to use (in the Java TimeZone syntax)</span></p>
</li>
</ul>
</div>
<div class="paragraph">
<p><strong>Return Type</strong>: <span class="returnType">String</span></p>
</div>
<div class="paragraph">
<p><strong>Examples</strong>: If the attribute "time" has the value "1647884009479", timeIsoOffset has the value "2022-12-03T10:15:30+01:00",
timeIsoInstant has the value "2022-12-03T10:15:30Z" and "timeRFC1123" has the value "Thu, 01 Dec 2022 16:00:00 GMT",
then the following Expressions will yield the following results:</p>
</div>
<table class="tableblock frame-all grid-all stretch">
<caption class="title">Table 28. format Examples</caption>
<colgroup>
<col style="width: 50%;">
<col style="width: 50%;">
</colgroup>
<tbody>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">Expression</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Value</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>${time:formatInstant("yyyy/MM/dd HH:mm:ss.SSS'Z'", "GMT")}</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>2022/03/21 17:33:29.479Z</code></p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>${timeIsoOffset:formatInstant("yyyy/MM/dd HH:mm:ss.SSS'Z'", "Asia/Tokyo")}</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>2022/12/03 18:15:30.000Z</code></p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>${timeIsoInstant:formatInstant("yyyy/MM/dd", "Asia/Tokyo")}</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>2022/12/03 19:15:30.000Z</code></p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>${timeRFC1123:formatInstant("yyyy/MM/dd HH:mm:ss.SSS'Z'", "GMT")}</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>2022/12/01 16:00:00.000Z</code></p></td>
</tr>
</tbody>
</table>
</div>
<div class="sect2 function">
<h3 id="todate"><a class="anchor" href="expression-language-guide.html#todate"></a>toDate</h3>
<div class="paragraph">
<p><strong>Description</strong>: <span class="description">Converts a String into a Date data type, based on the format specified by the argument. The argument
	must be a String that is a valid Java SimpleDateFormat syntax. The Subject is expected to be a String that is formatted
	according the argument. The date will be evaluated using the local time zone unless specified in the second optional argument.</span></p>
</div>
<div class="paragraph">
<p><strong>Subject Type</strong>: <span class="subject">String</span></p>
</div>
<div class="paragraph">
<p><strong>Arguments</strong>:</p>
</div>
<div class="ulist">
<ul>
<li>
<p><span class="argName"><em>format</em></span> : <span class="argDesc">The current format to use when parsing the Subject, in the Java SimpleDateFormat syntax.</span></p>
</li>
<li>
<p><span class="argName"><em>time zone</em></span> : <span class="argDesc">Optional argument that specifies the time zone to use when parsing the Subject, in the Java TimeZone syntax.</span></p>
</li>
</ul>
</div>
<div class="paragraph">
<p><strong>Return Type</strong>: <span class="returnType">Date</span></p>
</div>
<div class="paragraph">
<p><strong>Examples</strong>: If the attribute "year" has the value "2014" and the attribute "time" has the value "2014/12/31 15:36:03.264Z",
	then the Expression <code>${year:toDate('yyyy', 'GMT')}</code> will return a Date data type with a value representing Midnight GMT on
	January 1, 2014. The Expression <code>${time:toDate("yyyy/MM/dd HH:mm:ss.SSS&#8217;Z'", "GMT")}</code> will result in a Date data type for
	15:36:03.264 GMT on December 31, 2014.</p>
</div>
<div class="paragraph">
<p>Often, this function is used in conjunction with the <a href="expression-language-guide.html#format">format</a> function to change the format of a date/time. For example,
if the attribute "date" has the value "12-24-2014" and we want to change the format to "2014/12/24", we can do so by
chaining together the two functions: <code>${date:toDate('MM-dd-yyyy'):format('yyyy/MM/dd')}</code>.</p>
</div>
</div>
<div class="sect2 function">
<h3 id="toinstant"><a class="anchor" href="expression-language-guide.html#toinstant"></a>toInstant</h3>
<div class="paragraph">
<p><strong>Description</strong>: <span class="description">Converts a String or Number into an Instant data type, based on the format specified by the argument. In case of
String format nanosecond precision date parsing is supported. The argument
must be a String that is a valid Java DateTimeFormatter syntax. The Subject is expected to be a String that is formatted
according the argument or a number which represents the datetime in milliseconds. The datetime will be evaluated using the
time zone specified in the second argument.</span></p>
</div>
<div class="paragraph">
<p><strong>Subject Type</strong>: <span class="subject">String or Number</span></p>
</div>
<div class="paragraph">
<p><strong>Arguments</strong>:</p>
</div>
<div class="ulist">
<ul>
<li>
<p><span class="argName"><em>format</em></span> : <span class="argDesc">The current format to use when parsing the Subject, in the Java DateTimeFormatter syntax.</span></p>
</li>
<li>
<p><span class="argName"><em>time zone</em></span> : <span class="argDesc">Required argument that specifies the time zone to use when parsing the Subject, in the Java TimeZone syntax.</span></p>
</li>
</ul>
</div>
<div class="paragraph">
<p><strong>Return Type</strong>: <span class="returnType">Instant</span></p>
</div>
<div class="paragraph">
<p><strong>Examples</strong>: If the attribute "time" has the value "2014/12/31 15:36:03.264Z" then the expression <code>${time:toInstant("yyyy/MM/dd HH:mm:ss.SSS&#8217;Z'", "GMT")}</code> will result in an Instant data type for
15:36:03.264 GMT on December 31, 2014.</p>
</div>
<div class="paragraph">
<p>Often, this function is used in conjunction with the <a href="expression-language-guide.html#formatInstant">formatInstant</a> function to change the format of a date/time. For example,
if the attribute "dateTime" has the value "12-24-2014 12:06:59" and we want to change the format to "2014/12/24", we can do so by
chaining together the two functions: <code>${dateTime:toInstant('MM-dd-yyyy HH:mm:ss', 'GMT'):formatInstant('yyyy/MM/dd', 'GMT')}</code>.</p>
</div>
</div>
<div class="sect2 function">
<h3 id="tomicros"><a class="anchor" href="expression-language-guide.html#tomicros"></a>toMicros</h3>
<div class="paragraph">
<p><strong>Description</strong>: <span class="description">Converts an Instant Subject into a Number with microsecond precision</span></p>
</div>
<div class="paragraph">
<p><strong>Subject Type</strong>: <span class="subject">Instant</span></p>
</div>
<div class="paragraph">
<p><strong>Arguments</strong>: No arguments</p>
</div>
<div class="paragraph">
<p><strong>Return Type</strong>: <span class="returnType">Number</span></p>
</div>
<div class="paragraph">
<p><strong>Examples</strong>: If the "dateTime" attribute has the value of "2022/03/18 10:22:27.678234567", then the Expression
<code>${dateTime:toInstant('yyyy/MM/dd HH:mm:ss.SSSSSSSSS', 'America/New_York'):toMicros()}</code> converts the Instant value of
the attribute to 1647613347678234 microseconds since epoch.</p>
</div>
</div>
<div class="sect2 function">
<h3 id="tonanos"><a class="anchor" href="expression-language-guide.html#tonanos"></a>toNanos</h3>
<div class="paragraph">
<p><strong>Description</strong>: <span class="description">Converts an Instant Subject into a Number with nanosecond precision</span></p>
</div>
<div class="paragraph">
<p><strong>Subject Type</strong>: <span class="subject">Instant</span></p>
</div>
<div class="paragraph">
<p><strong>Arguments</strong>: No arguments</p>
</div>
<div class="paragraph">
<p><strong>Return Type</strong>: <span class="returnType">Number</span></p>
</div>
<div class="paragraph">
<p><strong>Examples</strong>: If the "dateTime" attribute has the value of "2022/03/18 10:22:27.678234567", then the Expression
<code>${dateTime:toInstant('yyyy/MM/dd HH:mm:ss.SSSSSSSSS', 'America/New_York'):toNanos()}</code> converts the Instant value of
the attribute to 1647613347678234567 nanoseconds since epoch.</p>
</div>
</div>
<div class="sect2 function">
<h3 id="now"><a class="anchor" href="expression-language-guide.html#now"></a>now</h3>
<div class="paragraph">
<p><strong>Description</strong>: <span class="description">Returns the current date and time as a Date data type object.</span></p>
</div>
<div class="paragraph">
<p><strong>Subject Type</strong>: <span class="subjectless">No Subject</span></p>
</div>
<div class="paragraph">
<p><strong>Arguments</strong>: No arguments</p>
</div>
<div class="paragraph">
<p><strong>Return Type</strong>: <span class="returnType">Date</span></p>
</div>
<div class="paragraph">
<p><strong>Examples</strong>: We can get the current date and time as a Date data type by using the <code>now</code> function: <code>${now()}</code>. As an example,
	on Wednesday December 31st 2014 at 36 minutes after 3pm and 36.123 seconds EST <code>${now()}</code> would be evaluated to be a
	Date type representing that time. Since whole Expression Language expressions can only return Strings it would formatted as
	<code>Wed Dec 31 15:36:03 EST 2014</code> when the expression completes.</p>
</div>
<div class="paragraph">
<p>Utilizing the <a href="expression-language-guide.html#tonumber">toNumber</a> method, <code>now</code> can provide the current date and time as the number of milliseconds since
Midnight GMT on January 1, 1970. For instance, if instead of executing <code>${now()}</code> in the previous example <code>${now():toNumber()}</code>
was run then it would output <code>1453843201123</code>. This method provides millisecond-level precision and provides the ability to
manipulate the value.</p>
</div>
<table class="tableblock frame-all grid-all stretch">
<caption class="title">Table 29. now Examples</caption>
<colgroup>
<col style="width: 50%;">
<col style="width: 50%;">
</colgroup>
<tbody>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">Expression</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Value</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>${now()}</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">A Date type representing the current date and time to the nearest millisecond</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>${now():toNumber()}</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">The number of milliseconds since midnight GMT Jan 1, 1970 (<code>1453843201123</code>, for example)</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>${now():toNumber():minus(86400000)</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">A number presenting the time 24 hours ago</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>${now():format('yyyy')}</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">The current year</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>${now():toNumber():minus(86400000):format('E')}</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">The day of the week that was yesterday,
													  as a 3-letter abbreviation (For example, <code>Wed</code>)</p></td>
</tr>
</tbody>
</table>
</div>
</div>
</div>
<div class="sect1">
<h2 id="type_cast"><a class="anchor" href="expression-language-guide.html#type_cast"></a>Type Coercion</h2>
<div class="sectionbody">
<div class="sect2 function">
<h3 id="tostring"><a class="anchor" href="expression-language-guide.html#tostring"></a>toString</h3>
<div class="paragraph">
<p><strong>Description</strong>: <span class="description">Coerces the Subject into a String</span></p>
</div>
<div class="paragraph">
<p><strong>Subject Type</strong>: <span class="subject">Any type</span></p>
</div>
<div class="paragraph">
<p><strong>Arguments</strong>: No arguments</p>
</div>
<div class="paragraph">
<p><strong>Return Type</strong>: <span class="returnType">String</span></p>
</div>
<div class="paragraph">
<p><strong>Examples</strong>: The Expression <code>${fileSize:toNumber():toString()}</code> converts the value of "fileSize" attribute to a number and
	back to a String.</p>
</div>
</div>
<div class="sect2 function">
<h3 id="tonumber"><a class="anchor" href="expression-language-guide.html#tonumber"></a>toNumber</h3>
<div class="paragraph">
<p><strong>Description</strong>: <span class="description">Coerces the Subject into a Number</span></p>
</div>
<div class="paragraph">
<p><strong>Subject Type</strong>: <span class="subject">String, Decimal, or Date</span></p>
</div>
<div class="paragraph">
<p><strong>Arguments</strong>: No arguments</p>
</div>
<div class="paragraph">
<p><strong>Return Type</strong>: <span class="returnType">Number</span></p>
</div>
<div class="paragraph">
<p><strong>Examples</strong>: The Expression <code>${fileSize:toNumber()}</code> converts the attribute value of "fileSize" to a number.</p>
</div>
</div>
<div class="sect2 function">
<h3 id="todecimal"><a class="anchor" href="expression-language-guide.html#todecimal"></a>toDecimal</h3>
<div class="paragraph">
<p><strong>Description</strong>: <span class="description">Coerces the Subject into a Decimal</span></p>
</div>
<div class="paragraph">
<p><strong>Subject Type</strong>: <span class="subject">String, Whole Number or Date</span></p>
</div>
<div class="paragraph">
<p><strong>Arguments</strong>: No arguments</p>
</div>
<div class="paragraph">
<p><strong>Return Type</strong>: <span class="returnType">Decimal</span></p>
</div>
<div class="paragraph">
<p><strong>Examples</strong>: The Expression <code>${fileSize:toDecimal()}</code> converts the attribute value of "fileSize" to a decimal.</p>
</div>
</div>
</div>
</div>
<div class="sect1">
<h2 id="subjectless"><a class="anchor" href="expression-language-guide.html#subjectless"></a>Subjectless Functions</h2>
<div class="sectionbody">
<div class="paragraph">
<p>While the majority of functions in the Expression Language are called by using the syntax
<code>${attributeName:function()}</code>, there exist a few functions that are not expected to have subjects.
In this case, the attribute name is not present. For example, the IP address of the machine can
be obtained by using the Expression <code>${ip()}</code>. All of the functions in this section are to be called
without a subject. Attempting to call a subjectless function and provide it a subject will result in
an error when validating the function.</p>
</div>
<div class="sect2 function">
<h3 id="ip"><a class="anchor" href="expression-language-guide.html#ip"></a>ip</h3>
<div class="paragraph">
<p><strong>Description</strong>: <span class="description">Returns the IP address of the machine.</span></p>
</div>
<div class="paragraph">
<p><strong>Subject Type</strong>: <span class="subjectless">No subject</span></p>
</div>
<div class="paragraph">
<p><strong>Arguments</strong>: No arguments</p>
</div>
<div class="paragraph">
<p><strong>Return Type</strong>: <span class="returnType">String</span></p>
</div>
<div class="paragraph">
<p><strong>Examples</strong>: The IP address of the machine can be obtained by using the Expression <code>${ip()}</code>.</p>
</div>
</div>
<div class="sect2 function">
<h3 id="hostname"><a class="anchor" href="expression-language-guide.html#hostname"></a>hostname</h3>
<div class="paragraph">
<p><strong>Description</strong>: <span class="description">Returns the Hostname of the machine. An optional argument of type Boolean can be provided
	to specify whether or not the Fully Qualified Domain Name should be used. If <code>false</code>, or not specified,
	the hostname will not be fully qualified. If the argument is <code>true</code> but the fully qualified hostname
	cannot be resolved, the simple hostname will be returned.</span></p>
</div>
<div class="paragraph">
<p><strong>Subject Type</strong>: <span class="subjectless">No subject</span></p>
</div>
<div class="paragraph">
<p><strong>Arguments</strong>:</p>
</div>
<div class="ulist">
<ul>
<li>
<p><span class="argName"><em>Fully Qualified</em></span> : <span class="argDesc">Optional parameter that specifies whether or not the hostname should be
fully qualified. If not specified, defaults to false.</span></p>
</li>
</ul>
</div>
<div class="paragraph">
<p><strong>Return Type</strong>: <span class="returnType">String</span></p>
</div>
<div class="paragraph">
<p><strong>Examples</strong>: The fully qualified hostname of the machine can be obtained by using the Expression <code>${hostname(true)}</code>,
	while the simple hostname can be obtained by using either <code>${hostname(false)}</code> or simply <code>${hostname()}</code>.</p>
</div>
</div>
<div class="sect2 function">
<h3 id="uuid"><a class="anchor" href="expression-language-guide.html#uuid"></a>UUID</h3>
<div class="paragraph">
<p><strong>Description</strong>: <span class="description">Returns a randomly generated type 4 UUID.</span></p>
</div>
<div class="paragraph">
<p><strong>Subject Type</strong>: <span class="subjectless">No Subject</span></p>
</div>
<div class="paragraph">
<p><strong>Arguments</strong>: No arguments</p>
</div>
<div class="paragraph">
<p><strong>Return Type</strong>: <span class="returnType">String</span></p>
</div>
<div class="paragraph">
<p><strong>Examples</strong>: <code>${UUID()}</code> returns a value similar to "de305d54-75b4-431b-adb2-eb6b9e546013"</p>
</div>
<div class="paragraph">
<p><strong>See Also</strong>: <span class="seeAlso"><a href="expression-language-guide.html#uuid3">UUID3()</a>, <a href="expression-language-guide.html#uuid5">UUID5()</a></span></p>
</div>
</div>
<div class="sect2 function">
<h3 id="nextint"><a class="anchor" href="expression-language-guide.html#nextint"></a>nextInt</h3>
<div class="paragraph">
<p><strong>Description</strong>: <span class="description">Returns a one-up value (starting at 0) and increasing over the lifetime of the running instance of NiFi.
	This value is not persisted across restarts and is not guaranteed to be unique across a cluster.
	This value is considered "one-up" in that if called multiple times across the NiFi instance, the values will be sequential.
	However, this counter is shared across all NiFi components, so calling this function multiple times from one Processor will
	not guarantee sequential values within the context of a particular Processor.</span></p>
</div>
<div class="paragraph">
<p><strong>Subject Type</strong>: <span class="subjectless">No Subject</span></p>
</div>
<div class="paragraph">
<p><strong>Arguments</strong>: No arguments</p>
</div>
<div class="paragraph">
<p><strong>Return Type</strong>: <span class="returnType">Number</span></p>
</div>
<div class="paragraph">
<p><strong>Examples</strong>: If the previous value returned by <code>nextInt</code> was <code>5</code>, the Expression <code>${nextInt():divide(2)}</code> obtains the next available
	integer (6) and divides the result by 2, returning a value of <code>3</code>.</p>
</div>
</div>
<div class="sect2 function">
<h3 id="literal"><a class="anchor" href="expression-language-guide.html#literal"></a>literal</h3>
<div class="paragraph">
<p><strong>Description</strong>: <span class="description">Returns its argument as a literal String value. This is useful in order to treat a string or a number
	at the beginning of an Expression as an actual value, rather than treating it as an attribute name. Additionally, it
	can be used when the argument is an embedded Expression that we would then like to evaluate additional functions against.</span></p>
</div>
<div class="paragraph">
<p><strong>Subject Type</strong>: <span class="subjectless">No Subject</span></p>
</div>
<div class="paragraph">
<p><strong>Arguments</strong>:</p>
</div>
<div class="ulist">
<ul>
<li>
<p><span class="argName"><em>value</em></span> : <span class="argDesc">The value to be treated as a literal string, number, or boolean value.</span></p>
</li>
</ul>
</div>
<div class="paragraph">
<p><strong>Return Type</strong>: <span class="returnType">String</span></p>
</div>
<div class="paragraph">
<p><strong>Examples</strong>: <code>${literal(2):gt(1)}</code> returns <code>true</code></p>
</div>
<div class="paragraph">
<p><code>${literal( ${allMatchingAttributes('a.*'):count()} ):gt(3)}</code> returns true if there are more than 3 attributes whose
names begin with the letter <code>a</code>.</p>
</div>
</div>
<div class="sect2 function">
<h3 id="getstatevalue"><a class="anchor" href="expression-language-guide.html#getstatevalue"></a>getStateValue</h3>
<div class="paragraph">
<p><strong>Description</strong>: <span class="description">Access a processor&#8217;s state values by passing in the String key and getting the value back as a String. This
 is a special Expression Language function that only works with processors that explicitly allow EL to query state. Currently only UpdateAttribute
 does.</span></p>
</div>
<div class="paragraph">
<p><strong>Subject Type</strong>: <span class="subjectless">No Subject</span></p>
</div>
<div class="paragraph">
<p><strong>Arguments</strong>:</p>
</div>
<div class="ulist">
<ul>
<li>
<p><span class="String"><em>Key</em></span> : <span class="argDesc">The key to use when accessing the state map.</span></p>
</li>
</ul>
</div>
<div class="paragraph">
<p><strong>Return Type</strong>: <span class="returnType">String</span></p>
</div>
<div class="paragraph">
<p><strong>Examples</strong>: UpdateAttribute processor has stored the key "count" with value "20" in state. '${getStateValue("count")}` returns <code>20</code>.</p>
</div>
</div>
<div class="sect2 function">
<h3 id="thread"><a class="anchor" href="expression-language-guide.html#thread"></a>thread</h3>
<div class="paragraph">
<p><strong>Description</strong>: <span class="description">Returns the name of the thread used by the processor when evaluating the Expression. This can be useful
 when using a processor with multiple concurrent tasks and where some data uniqueness is required.</span></p>
</div>
<div class="paragraph">
<p><strong>Subject Type</strong>: <span class="subjectless">No Subject</span></p>
</div>
<div class="paragraph">
<p><strong>Arguments</strong>: No arguments</p>
</div>
<div class="paragraph">
<p><strong>Return Type</strong>: <span class="returnType">String</span></p>
</div>
<div class="paragraph">
<p><strong>Examples</strong>: <code>${thread()}</code> could return something like <code>Timer-Driven Process Thread-4</code>.</p>
</div>
</div>
</div>
</div>
<div class="sect1">
<h2 id="multi"><a class="anchor" href="expression-language-guide.html#multi"></a>Evaluating Multiple Attributes</h2>
<div class="sectionbody">
<div class="paragraph">
<p>When it becomes necessary to evaluate the same conditions against multiple attributes, this can be accomplished by means of the
<code>and</code> and <code>or</code> functions. However, this quickly becomes tedious, error-prone, and difficult to maintain. For this reason, NiFi
provides several functions for evaluating the same conditions against groups of attributes at the same time.</p>
</div>
<div class="sect2 function">
<h3 id="anyattribute"><a class="anchor" href="expression-language-guide.html#anyattribute"></a>anyAttribute</h3>
<div class="paragraph">
<p><strong>Description</strong>: <span class="description">Checks to see if any of the given attributes, match the given condition. This function has no subject and takes one or more
	arguments that are the names of attributes to which the remainder of the Expression is to be applied. If any of the attributes specified,
	when evaluated against the rest of the Expression, returns a value of <code>true</code>, then this function will return <code>true</code>. Otherwise, this function
	will return <code>false</code>.</span></p>
</div>
<div class="paragraph">
<p><strong>Subject Type</strong>: <span class="subjectless">No Subject</span></p>
</div>
<div class="paragraph">
<p><strong>Arguments</strong>:</p>
</div>
<div class="ulist">
<ul>
<li>
<p><span class="argName"><em>Attribute Names</em></span> : <span class="argDesc">One or more attribute names to evaluate</span></p>
</li>
</ul>
</div>
<div class="paragraph">
<p><strong>Return Type</strong>: <span class="returnType">Boolean</span></p>
</div>
<div class="paragraph">
<p><strong>Examples</strong>: Given that the "abc" attribute contains the value "hello world", "xyz" contains "good bye world",
	and "filename" contains "file.txt" consider the following examples:</p>
</div>
<table class="tableblock frame-all grid-all stretch">
<caption class="title">Table 30. anyAttribute Examples</caption>
<colgroup>
<col style="width: 50%;">
<col style="width: 50%;">
</colgroup>
<tbody>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">Expression</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Value</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>${anyAttribute("abc", "xyz"):contains("bye")}</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>true</code></p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>${anyAttribute("filename","xyz"):toUpper():contains("e")}</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>false</code></p></td>
</tr>
</tbody>
</table>
</div>
<div class="sect2 function">
<h3 id="allattributes"><a class="anchor" href="expression-language-guide.html#allattributes"></a>allAttributes</h3>
<div class="paragraph">
<p><strong>Description</strong>: <span class="description">Checks to see if all of the given attributes match the given condition. This function has no subject and takes one or more
	arguments that are the names of attributes to which the remainder of the Expression is to be applied. If all of the attributes specified,
	when evaluated against the rest of the Expression, returns a value of <code>true</code>, then this function will return <code>true</code>. Otherwise, this function
	will return <code>false</code>.</span></p>
</div>
<div class="paragraph">
<p><strong>Subject Type</strong>: <span class="subjectless">No Subject</span></p>
</div>
<div class="paragraph">
<p><strong>Arguments</strong>:</p>
</div>
<div class="ulist">
<ul>
<li>
<p><span class="argName"><em>Attribute Names</em></span> : <span class="argDesc">One or more attribute names to evaluate</span></p>
</li>
</ul>
</div>
<div class="paragraph">
<p><strong>Return Type</strong>: <span class="returnType">Boolean</span></p>
</div>
<div class="paragraph">
<p><strong>Examples</strong>: Given that the "abc" attribute contains the value "hello world", "xyz" contains "good bye world",
	and "filename" contains "file.txt" consider the following examples:</p>
</div>
<table class="tableblock frame-all grid-all stretch">
<caption class="title">Table 31. allAttributes Example</caption>
<colgroup>
<col style="width: 50%;">
<col style="width: 50%;">
</colgroup>
<tbody>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">Expression</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Value</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>${allAttributes("abc", "xyz"):contains("world")}</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>true</code></p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>${allAttributes("abc", "filename","xyz"):toUpper():contains("e")}</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>false</code></p></td>
</tr>
</tbody>
</table>
</div>
<div class="sect2 function">
<h3 id="anymatchingattribute"><a class="anchor" href="expression-language-guide.html#anymatchingattribute"></a>anyMatchingAttribute</h3>
<div class="paragraph">
<p><strong>Description</strong>: <span class="description">Checks to see if any of the given attributes, match the given condition. This function has no subject and takes one or more
	arguments that are Regular Expressions to match against attribute names. Any attribute whose name matches one of the supplied
	Regular Expressions will be evaluated against the rest of the Expression. If any of the attributes specified,
	when evaluated against the rest of the Expression, returns a value of <code>true</code>, then this function will return <code>true</code>. Otherwise, this function
	will return <code>false</code>.</span></p>
</div>
<div class="paragraph">
<p><strong>Subject Type</strong>: <span class="subjectless">No Subject</span></p>
</div>
<div class="paragraph">
<p><strong>Arguments</strong>:</p>
</div>
<div class="ulist">
<ul>
<li>
<p><span class="argName"><em>Regex</em></span> : <span class="argDesc">One or more Regular Expressions (in the Java Pattern syntax) to evaluate against attribute names</span></p>
</li>
</ul>
</div>
<div class="paragraph">
<p><strong>Return Type</strong>: <span class="returnType">Boolean</span></p>
</div>
<div class="paragraph">
<p><strong>Examples</strong>: Given that the "abc" attribute contains the value "hello world", "xyz" contains "good bye world",
	and "filename" contains "file.txt" consider the following examples:</p>
</div>
<table class="tableblock frame-all grid-all stretch">
<caption class="title">Table 32. anyMatchingAttribute Example</caption>
<colgroup>
<col style="width: 50%;">
<col style="width: 50%;">
</colgroup>
<tbody>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">Expression</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Value</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>${anyMatchingAttribute("[ax].*"):contains('bye')}</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>true</code></p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>${anyMatchingAttribute(".*"):isNull()}</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>false</code></p></td>
</tr>
</tbody>
</table>
</div>
<div class="sect2 function">
<h3 id="allmatchingattributes"><a class="anchor" href="expression-language-guide.html#allmatchingattributes"></a>allMatchingAttributes</h3>
<div class="paragraph">
<p><strong>Description</strong>: <span class="description">Checks to see if any of the given attributes, match the given condition. This function has no subject and takes one or more
	arguments that are Regular Expressions to match against attribute names. Any attribute whose name matches one of the supplied
	Regular Expressions will be evaluated against the rest of the Expression. If all of the attributes specified,
	when evaluated against the rest of the Expression, return a value of <code>true</code>, then this function will return <code>true</code>. Otherwise, this function
	will return <code>false</code>.</span></p>
</div>
<div class="paragraph">
<p><strong>Subject Type</strong>: <span class="subjectless">No Subject</span></p>
</div>
<div class="ulist">
<ul>
<li>
<p><span class="argName"><em>Regex</em></span> : <span class="argDesc">One or more Regular Expressions (in the Java Pattern syntax) to evaluate against attribute names</span></p>
</li>
</ul>
</div>
<div class="paragraph">
<p><strong>Return Type</strong>: <span class="returnType">Boolean</span></p>
</div>
<div class="paragraph">
<p><strong>Examples</strong>: Given that the "abc" attribute contains the value "hello world", "xyz" contains "good bye world",
	and "filename" contains "file.txt" consider the following examples:</p>
</div>
<table class="tableblock frame-all grid-all stretch">
<caption class="title">Table 33. anyMatchingAttributes Examples</caption>
<colgroup>
<col style="width: 50%;">
<col style="width: 50%;">
</colgroup>
<tbody>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">Expression</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Value</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>${allMatchingAttributes("[ax].*"):contains("world")}</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>true</code></p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>${allMatchingAttributes(".*"):isNull()}</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>false</code></p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>${allMatchingAttributes("f.*"):count()}</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>1</code></p></td>
</tr>
</tbody>
</table>
</div>
<div class="sect2 function">
<h3 id="anydelineatedvalue"><a class="anchor" href="expression-language-guide.html#anydelineatedvalue"></a>anyDelineatedValue</h3>
<div class="paragraph">
<p><strong>Description</strong>: <span class="description">Splits a String apart according to a delimiter that is provided, and then evaluates each of the values against
	the rest of the Expression. If the Expression, when evaluated against any of the individual values, returns <code>true</code>, this
	function returns <code>true</code>. Otherwise, the function returns <code>false</code>.</span></p>
</div>
<div class="paragraph">
<p><strong>Subject Type</strong>: <span class="subjectless">No Subject</span></p>
</div>
<div class="paragraph">
<p><strong>Arguments</strong>:</p>
</div>
<div class="ulist">
<ul>
<li>
<p><span class="argName"><em>Delineated Value</em></span> : <span class="argDesc">The value that is delineated. This is generally an embedded Expression,
though it does not have to be.</span></p>
</li>
<li>
<p><span class="argName"><em>Delimiter</em></span> : <span class="argDesc">The value to use to split apart the <em>delineatedValue</em> argument.</span></p>
</li>
</ul>
</div>
<div class="paragraph">
<p><strong>Return Type</strong>: <span class="returnType">Boolean</span></p>
</div>
<div class="paragraph">
<p><strong>Examples</strong>: Given that the "number_list" attribute contains the value "1,2,3,4,5", and the "word_list" attribute contains the value "the,and,or,not",
	consider the following examples:</p>
</div>
<table class="tableblock frame-all grid-all stretch">
<caption class="title">Table 34. anyDelineatedValue Examples</caption>
<colgroup>
<col style="width: 50%;">
<col style="width: 50%;">
</colgroup>
<tbody>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">Expression</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Value</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>${anyDelineatedValue("${number_list}", ","):contains("5")}</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>true</code></p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>${anyDelineatedValue("this that and", ","):equals("${word_list}")}</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>false</code></p></td>
</tr>
</tbody>
</table>
</div>
<div class="sect2 function">
<h3 id="alldelineatedvalues"><a class="anchor" href="expression-language-guide.html#alldelineatedvalues"></a>allDelineatedValues</h3>
<div class="paragraph">
<p><strong>Description</strong>: <span class="description">Splits a String apart according to a delimiter that is provided, and then evaluates each of the values against
	the rest of the Expression. If the Expression, when evaluated against all of the individual values, returns <code>true</code> in each
	case, then this function returns <code>true</code>. Otherwise, the function returns <code>false</code>.</span></p>
</div>
<div class="paragraph">
<p><strong>Subject Type</strong>: <span class="subjectless">No Subject</span></p>
</div>
<div class="paragraph">
<p><strong>Arguments</strong>:</p>
</div>
<div class="ulist">
<ul>
<li>
<p><span class="argName"><em>Delineated Value</em></span> : <span class="argDesc">The value that is delineated. This is generally
an embedded Expression, though it does not have to be.</span></p>
</li>
<li>
<p><span class="argName"><em>Delimiter</em></span> : <span class="argDesc">The value to use to split apart the <em>delineatedValue</em> argument.</span></p>
</li>
</ul>
</div>
<div class="paragraph">
<p><strong>Return Type</strong>: <span class="returnType">Boolean</span></p>
</div>
<div class="paragraph">
<p><strong>Examples</strong>: Given that the "number_list" attribute contains the value "1,2,3,4,5", and the "word_list" attribute contains the value "those,known,or,not",
	consider the following examples:</p>
</div>
<table class="tableblock frame-all grid-all stretch">
<caption class="title">Table 35. allDelineatedValues Examples</caption>
<colgroup>
<col style="width: 50%;">
<col style="width: 50%;">
</colgroup>
<tbody>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">Expression</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Value</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>${allDelineatedValues("${word_list}", ","):contains("o")}</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>true</code></p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>${allDelineatedValues("${number_list}", ","):count()}</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>5</code></p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>${allDelineatedValues("${number_list}", ","):matches("[0-9]+")}</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>true</code></p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>${allDelineatedValues("${word_list}", ","):matches('e')}</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>false</code></p></td>
</tr>
</tbody>
</table>
</div>
<div class="sect2 function">
<h3 id="join"><a class="anchor" href="expression-language-guide.html#join"></a>join</h3>
<div class="paragraph">
<p><strong>Description</strong>: <span class="description">Aggregate function that concatenates multiple values with the specified delimiter. This function
	may be used only in conjunction with the <code>allAttributes</code>, <code>allMatchingAttributes</code>, and <code>allDelineatedValues</code>
	functions.</span></p>
</div>
<div class="paragraph">
<p><strong>Subject Type</strong>: <span class="subject">String</span></p>
</div>
<div class="paragraph">
<p><strong>Arguments</strong>:</p>
</div>
<div class="ulist">
<ul>
<li>
<p><span class="argName"><em>Delimiter</em></span> : <span class="argDesc">The String delimiter to use when joining values</span></p>
</li>
</ul>
</div>
<div class="paragraph">
<p><strong>Return Type</strong>: <span class="returnType">String</span></p>
</div>
<div class="paragraph">
<p><strong>Examples</strong>: Given that the "abc" attribute contains the value "hello world", "xyz" contains "good bye world",
	and "filename" contains "file.txt" consider the following examples:</p>
</div>
<table class="tableblock frame-all grid-all stretch">
<caption class="title">Table 36. join Examples</caption>
<colgroup>
<col style="width: 50%;">
<col style="width: 50%;">
</colgroup>
<tbody>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">Expression</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Value</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>${allMatchingAttributes("[ax].*"):substringBefore(" "):join("-")}</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>hello-good</code></p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>${allAttributes("abc", "xyz"):join(" now")}</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>hello world nowgood bye world now</code></p></td>
</tr>
</tbody>
</table>
</div>
<div class="sect2 function">
<h3 id="count"><a class="anchor" href="expression-language-guide.html#count"></a>count</h3>
<div class="paragraph">
<p><strong>Description</strong>: <span class="description">Aggregate function that counts the number of non-null, non-false values returned by the
	<code>allAttributes</code>, <code>allMatchingAttributes</code>, and <code>allDelineatedValues</code>. This function
	may be used only in conjunction with the <code>allAttributes</code>, <code>allMatchingAttributes</code>, and <code>allDelineatedValues</code>
	functions.</span></p>
</div>
<div class="paragraph">
<p><strong>Subject Type</strong>: <span class="subject">Any</span></p>
</div>
<div class="paragraph">
<p><strong>Arguments</strong>: No arguments</p>
</div>
<div class="paragraph">
<p><strong>Return Type</strong>: <span class="returnType">Number</span></p>
</div>
<div class="paragraph">
<p><strong>Examples</strong>: Given that the "abc" attribute contains the value "hello world", "xyz" contains "good bye world",
	and "number_list" contains "1,2,3,4,5" consider the following examples:</p>
</div>
<table class="tableblock frame-all grid-all stretch">
<caption class="title">Table 37. count Examples</caption>
<colgroup>
<col style="width: 50%;">
<col style="width: 50%;">
</colgroup>
<tbody>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">Expression</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Value</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>${allMatchingAttributes("[ax].*"):substringBefore(" "):count()}</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>2</code></p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>${allAttributes("abc", "xyz"):contains("world"):count()}</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>1</code></p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>${allDelineatedValues(${number_list}, ","):count()}</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>5</code></p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>${allAttributes("abc", "non-existent-attr", "xyz"):count()}</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>2</code></p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>${allMatchingAttributes(".*"):length():gt(10):count()}</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>2</code></p></td>
</tr>
</tbody>
</table>
</div>
</div>
</div>
</div>
<div id="footer">
<div id="footer-text">
Last updated 2022-12-05 18:19:00 -0600
</div>
</div>
</body>
</html>