Build a better solution reusing community experience.
| Authors | Paolo Ciccarese |
| Institution | Universita' degli Studi di Pavia |
| Release Date | ? December 2007 |
| Release Version | 1.0 |
| License | Apache License 2.0 |
| Previous Versions | - |
![]() |
![]() |
Name |
Description |
Type |
Allowed Values | Default |
|---|---|---|---|---|
| InputFile | The URL of the file to read. | uri | URI | MANDATORY |
| TokensSeparator | The regular expression that has to be used to tokenize the read line. | string |
'tab' or Java Regular Expression* |
tab |
| LineFormat | Defines the order of timestamp (t) and data (d) | string | { d, dt, td.} | dt |
| TimestampFormat | It established the format of the date/time value to read [1]. | string | Java DateFormat* | MANDATORY if with timestap |
| UnitOfMeasure | The unit of measure of data to read. | string | Unit of Measure * | none |
| DataFormat | It specifies the format of the data that have to be read [2]. | string | { string, int, long, float, double } | MANDATORY |
[1] If the timestamp is present the TimeStampFormat parameter has to be present and encoding according to the Java DateFormat specifications.
[2] If the format is numeric the generator will read the data and will try to convert it to the specified numeric kind. If a numeric type is declared and the data is not numeric, an exception will be thrown and the task execution will be terminated. If the format is string. the content will be taken as it is.
Example of Delimited Mixed File Reader parametrization:
<jdpf:Parameters transitionId="generator0" logging="true">
<jdpf:Parameter>
<jdpf:Name>InputFile</jdpf:Name>
<jdpf:Value>file:///C:\JDPF\TestingExamples\data-12.txt</jdpf:Value>
</jdpf:Parameter>
<jdpf:Parameter>
<jdpf:Name>TokensSeparator</jdpf:Name>
<jdpf:Value>tab</jdpf:Value>
</jdpf:Parameter>
<jdpf:Parameter>
<jdpf:Name>DataFormat</jdpf:Name>
<jdpf:Value>string</jdpf:Value>
</jdpf:Parameter>
<jdpf:Parameter>
<jdpf:Name>LineFormat</jdpf:Name>
<jdpf:Value>td</jdpf:Value>
</jdpf:Parameter>
<jdpf:Parameter>
<jdpf:Name>UnitOfMeasure</jdpf:Name>
<jdpf:Value>km/h</jdpf:Value>
</jdpf:Parameter>
<jdpf:Parameter>
<jdpf:Name>TimestampFormat</jdpf:Name>
<jdpf:Value>yyyy.MM.dd HH:mm:ss</jdpf:Value>
</jdpf:Parameter>
</jdpf:Parameters>
The Delimited Mixed File Reader is able to load files with simple numeric (int, long, float, double with the unit of measures) or textual data with or without timestamp. The algorithm read a line of the file and split the tokens through the separator (which is a tab if not specified). If more than one tokens are present the generator will try to create a series of timestamped data, otherwise it will produce a series of simple data. In both cases, data are produced according to the data format.
Label |
Supported data type(s) |
|---|---|
| Input | none |
| Output | org.jdpf.plugins.datatypes.basic.MixedDataSeries |
The Delimited Mixed File Reader block works with all the block that accept as input a org.jdpf.plugins.datatypes.basic.MixedDataSeries. Thus:
As the Delimited Mixed File Reader has been devloped with the JDPF core plugins, the only dependency is with the core plugin:
The following pattern letters are defined (all other characters from 'A' to 'Z' and from 'a' to 'z' are reserved):
| Letter | Date or Time Component | Presentation | Examples |
|---|---|---|---|
G
| Era designator | Text | AD
|
y
| Year | Year | 1996; 96
|
M
| Month in year | Month | July; Jul; 07
|
w
| Week in year | Number | 27
|
W
| Week in month | Number | 2
|
D
| Day in year | Number | 189
|
d
| Day in month | Number | 10
|
F
| Day of week in month | Number | 2
|
E
| Day in week | Text | Tuesday; Tue
|
a
| Am/pm marker | Text | PM
|
H
| Hour in day (0-23) | Number | 0
|
k
| Hour in day (1-24) | Number | 24
|
K
| Hour in am/pm (0-11) | Number | 0
|
h
| Hour in am/pm (1-12) | Number | 12
|
m
| Minute in hour | Number | 30
|
s
| Second in minute | Number | 55
|
S
| Millisecond | Number | 978
|
z
| Time zone | General time zone | Pacific Standard Time; PST; GMT-08:00
|
Z
| Time zone | RFC 822 time zone | -0800
|
Some examples:
| Date and Time Pattern | Result |
|---|---|
"yyyy.MM.dd G 'at' HH:mm:ss z"
| 2001.07.04 AD at 12:08:56 PDT
|
"EEE, MMM d, ''yy"
| Wed, Jul 4, '01
|
"h:mm a"
| 12:08 PM
|
"hh 'o''clock' a, zzzz"
| 12 o'clock PM, Pacific Daylight Time
|
"K:mm a, z"
| 0:08 PM, PDT
|
"yyyyy.MMMMM.dd GGG hh:mm aaa"
| 02001.July.04 AD 12:08 PM
|
"EEE, d MMM yyyy HH:mm:ss Z"
| Wed, 4 Jul 2001 12:08:56 -0700
|
"yyMMddHHmmssZ"
| 010704120856-0700
|
For more info click here.
The following are some examples of regular-expression constructs (for the complete list click here):
| Construct | Matches |
|---|---|
| Characters | |
| x | The character x |
| \\ | The backslash character |
| \t | The tab character ('\u0009') |
| Character classes | |
| [abc] | a, b, or c (simple class) |
| [^abc] | Any character except a, b, or c (negation) |
| [a-zA-Z] | a through z or A through Z, inclusive (range) |
| [a-d[m-p]] | a through d, or m through p: [a-dm-p] (union) |
| [a-z&&[def]] | d, e, or f (intersection) |
| [a-z&&[^bc]] | a through z, except for b and c: [ad-z] (subtraction) |
| [a-z&&[^m-p]] | a through z, and not m through p: [a-lq-z](subtraction) |
| Greedy quantifiers | |
| X? | X, once or not at all |
| X* | X, zero or more times |
| X+ | X, one or more times |
| X{n} | X, exactly n times |
| X{n,} | X, at least n times |
| X{n,m} | X, at least n but not more than m times |
| Possessive quantifiers | |
| X?+ | X, once or not at all |
| X*+ | X, zero or more times |
| X++ | X, one or more times |
| X{n}+ | X, exactly n times |
| X{n,}+ | X, at least n times |
| X{n,m}+ | X, at least n but not more than m times |
| Logical operators | |
| XY | X followed by Y |
| X|Y | Either X or Y |
Some examples:
| Construct | Matches |
|---|---|