| <!DOCTYPE html> |
| <html lang="en"> |
| <!-- |
| 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. |
| --> |
| <head> |
| <meta charset="utf-8"/> |
| <title>ValidateCsv</title> |
| <link rel="stylesheet" href="../../../../../css/component-usage.css" type="text/css"/> |
| </head> |
| |
| <body> |
| <!-- Processor Documentation ================================================== --> |
| <h2>Usage Information</h2> |
| |
| <p> |
| The Validate CSV processor is based on the super-csv library and the concept of |
| <a href="http://super-csv.github.io/super-csv/cell_processors.html" target="_blank">Cell Processors</a>. |
| The corresponding java documentation can be found |
| <a href="http://super-csv.github.io/super-csv/apidocs/org/supercsv/cellprocessor/ift/CellProcessor.html" target="_blank">here</a>. |
| </p> |
| |
| <p> |
| The cell processors cannot be nested (except with Optional which gives the possibility to define a CellProcessor for values |
| that could be null) and must be defined in a comma-delimited string as the Schema property. |
| </p> |
| |
| <p> |
| The supported cell processors are: |
| <ul> |
| <li>ParseBigDecimal</li> |
| <li>ParseBool</li> |
| <li>ParseChar</li> |
| <li>ParseDate</li> |
| <li>ParseDouble</li> |
| <li>ParseInt</li> |
| <li>Optional</li> |
| <li>DMinMax</li> |
| <li>Equals</li> |
| <li>ForbidSubStr</li> |
| <li>LMinMax</li> |
| <li>NotNull</li> |
| <li>Null</li> |
| <li>RequireHashCode</li> |
| <li>RequireSubStr</li> |
| <li>Strlen</li> |
| <li>StrMinMax</li> |
| <li>StrNotNullOrEmpty</li> |
| <li>StrRegEx</li> |
| <li>Unique</li> |
| <li>UniqueHashCode</li> |
| <li>IsIncludedIn</li> |
| </ul> |
| </p> |
| |
| <p> |
| Here are some examples: |
| |
| <ul> |
| <b>Schema property:</b> Null, ParseDate("dd/MM/yyyy"), Optional(ParseDouble())<br /> |
| <b>Meaning:</b> the input CSV has three columns, the first one can be null and has no specification, the second one must be a date |
| formatted as expected, and the third one must a double or null (no value). |
| </ul> |
| |
| <ul> |
| <b>Schema property:</b> ParseBigDecimal(), ParseBool(), ParseChar(), ParseInt(), ParseLong()<br /> |
| <b>Meaning:</b> the input CSV has five columns, the first one must be a big decimal, the second one must be a boolean, |
| the third one must be a char, the fourth one must be an integer and the fifth one must be a long. |
| </ul> |
| |
| <ul> |
| <b>Schema property:</b> Equals(), NotNull(), StrNotNullOrEmpty()<br /> |
| <b>Meaning:</b> the input CSV has three columns, all the values of the first column must be equal to each other, all the values |
| of the second column must be not null, and all the values of the third column are not null/empty string values. |
| </ul> |
| |
| <ul> |
| <b>Schema property:</b> Strlen(4), StrMinMax(3,5), StrRegex("[a-z0-9\\._]+@[a-z0-9\\.]+")<br /> |
| <b>Meaning:</b> the input CSV has three columns, all the values of the first column must be 4-characters long, all the values |
| of the second column must be between 3 and 5 characters (inclusive), and all the values of the last column must match |
| the provided regular expression (email address). |
| </ul> |
| |
| <ul> |
| <b>Schema property:</b> Unique(), UniqueHashCode()<br /> |
| <b>Meaning:</b> the input CSV has two columns. All the values of the first column must be unique (all the values are stored in |
| memory and this can be consuming depending of the input). All the values of the second column must be unique (only hash |
| codes of the input values are stored to ensure uniqueness). |
| </ul> |
| |
| <ul> |
| <b>Schema property:</b> ForbidSubStr("test", "tset"), RequireSubStr("test")<br /> |
| <b>Meaning:</b> the input CSV has two columns. None of the values in the first column must contain one of the provided strings. |
| And all the values of the second column must contain the provided string. |
| </ul> |
| </p> |
| </body> |
| </html> |