[ https://issues.apache.org/jira/browse/NIFI-6500?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Alessandro D'Armiento updated NIFI-6500: ---------------------------------------- Description: h2. Current Situation - [Expression Language string manipulation|https://nifi.apache.org/docs/nifi-docs/html/expression-language-guide.html#strings] doesn't have anything to perform string padding - Existing solutions to achieve left or right padding are unintuitive -- Es: ${prop:prepend('0000'):substring(${prop:length()},${prop:length():plus(4)})} h1. Improvement Proposal - Support two new expression language methods -- padLeft: --- padLeft(int n) will prepend a default character to of the input string until it reaches the length n --- padLeft(int n, char c) will prepend the c characters to the input string until it reaches the length n -- padRight: --- padRight(int n) will append a default character to the input string until it reaches the length n --- padRight(int n, char c) will append the c character to the input string until it reaches the length n -- Default character should be a renderable character such as underscore -- If the input string is already longer than the padding length, no operation should be performed h3. Examples --- input = "myString" --- - ${input:padLeft(10, '#')} => "##myString" - ${input:padRight(10, '#')} => "myString##" - ${input:padLeft(10)} => "__myString" - ${input:padRight(10)} => "myString__" was: h2. Current Situation - [Expression Language string manipulation|https://nifi.apache.org/docs/nifi-docs/html/expression-language-guide.html#strings] doesn't have anything to perform string padding - Existing solutions to achieve left or right padding are unintuitive -- Es: ${prop:prepend('0000'):substring(${prop:length()},${prop:length():plus(4)})} h1. Improvement Proposal - Support two new expression language methods -- padLeft() will add characters on the left of the string until a certain size is reached --- padLeft(int n) will add a default character at the left of the input string until it reaches the length n --- padLeft(int n, char c) will add the c characters at the left of the input string until it reaches the length n -- padRight() --- padRight(int n) will add a default character at the right of the input string until it reaches the length n --- padRight(int n, char c) will add the c characters at the right of the input string until it reaches the length n -- Default character should be a renderable character such as underscore -- If the input string is already longer than the padding length, no operation should be performed h3. Examples input = "myString" - ${input:padLeft(10, '#')} => "##myString" - ${input:padRight(10, '#')} => "myString##" - ${input:padLeft(10)} => "__myString" - ${input:padRight(10)} => "myString__" > Add padLeft() and padRight() functions to expression language > ------------------------------------------------------------- > > Key: NIFI-6500 > URL: https://issues.apache.org/jira/browse/NIFI-6500 > Project: Apache NiFi > Issue Type: New Feature > Components: Core Framework > Affects Versions: 1.9.2 > Reporter: Alessandro D'Armiento > Priority: Minor > > h2. Current Situation > - [Expression Language string > manipulation|https://nifi.apache.org/docs/nifi-docs/html/expression-language-guide.html#strings] > doesn't have anything to perform string padding > - Existing solutions to achieve left or right padding are unintuitive > -- Es: > ${prop:prepend('0000'):substring(${prop:length()},${prop:length():plus(4)})} > h1. Improvement Proposal > - Support two new expression language methods > -- padLeft: > --- padLeft(int n) will prepend a default character to of the input string > until it reaches the length n > --- padLeft(int n, char c) will prepend the c characters to the input string > until it reaches the length n > -- padRight: > --- padRight(int n) will append a default character to the input string until > it reaches the length n > --- padRight(int n, char c) will append the c character to the input string > until it reaches the length n > -- Default character should be a renderable character such as underscore > -- If the input string is already longer than the padding length, no > operation should be performed > h3. Examples > --- > input = "myString" > --- > - ${input:padLeft(10, '#')} => "##myString" > - ${input:padRight(10, '#')} => "myString##" > - ${input:padLeft(10)} => "__myString" > - ${input:padRight(10)} => "myString__" -- This message was sent by Atlassian JIRA (v7.6.14#76016)