Build a better solution reusing community experience.
| Authors | Paolo Ciccarese |
| Institution | Universita' degli Studi di Pavia |
| Release Date | 1st 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', 'space' 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 | { int, long, float, double } | MANDATORY |
[1] If the timestamp is present the TimeStampFormat parameter has to be present and encode according to the Java DateFormat specifications.
[2] 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.
Example of Delimited Measures 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>int</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 Measures 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 reads each line of the file and splits the tokens through the separator (which is a tab, if not specified). Then, according to the LineFormat parameter, it will detect the data and the timestamp.
Label |
Supported data type(s) |
|---|---|
| Input | none |
| Output | org.jdpf.plugins.datatypes.basic.MeasureSeries |
The Delimited Measures File Reader block works with any block accepting as input a org.jdpf.plugins.datatypes.basic.MeasureSeries. Thus it works with:
As the Delimited Measures File Reader has been developed 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 |
To be completed...