FileAttributesFilter
Retrieves and exposes a record from a delimiter-separated file. Lookup of the record is performed using a specified key
, whose value
is derived from an expression. The resulting record is exposed in an object whose location is specified by the target
expression. If a matching record cannot be found, then the resulting object is empty.
The retrieval of the record is performed lazily; it does not occur until the first attempt to access a value in the target
. This defers the overhead of file operations and text processing until a value is first required. This also means that the value expression is not evaluated until the object is first accessed.
Usage
{ "name": string, "type": "FileAttributesFilter", "config": { "file": expression, "charset": string, "separator": string, "header": boolean, "fields": [ string, ... ], "target": lvalue-expression, "key": string, "value": runtime expression<string> } }
For an example see "Logging In With Credentials From a File".
Properties
"file"
: expression, requiredThe file containing the record to be read.
See also "Expressions".
"charset"
: string, optionalThe character set in which the file is encoded.
Default:
"UTF-8"
."separator"
: separator identifier string, optionalThe separator character, which is one of the following:
COLON
Unix-style colon-separated values, with backslash as the escape character.
COMMA
Comma-separated values, with support for quoted literal strings.
TAB
Tab separated values, with support for quoted literal strings.
Default:
COMMA
"header"
: boolean, optionalThe setting to treat or not treat the first row of the file as a header row.
When the first row of the file is treated as a header row, the data in that row is disregarded and cannot be returned by a lookup operation.
Default:
true
."fields"
: array of strings, optionalA list of keys in the order they appear in a record.
If
fields
is not set, the keys are assigned automatically by the column numbers of the file."target"
: lvalue-expression, requiredExpression that yields the target object to contain the record.
The target object is a
Map<String, String>
, where the fields are the keys. For example, if the target is${attributes.file}
and the record has ausername
field and apassword
field mentioned in the fields list, Then you can access the user name as${attributes.file.username}
and the password as${attributes.file.password}
.See also "Expressions".
"key"
: string, requiredThe key used for the lookup operation.
"value"
: runtime expression<string>, requiredThe value to be looked-up in the file.
See also "Expressions".