Package com.orchestranetworks.addon.dataexchange.validator
Classes and interfaces to call {addon.label} import Excel, CSV, XML and transfer data service using validators.
Example of creating validator in the import Excel, CSV, XML and data transfer
Create the definition to add a validator.
For example:
public final class SalaryValidatorDefinition implements ValidatorDefinition
{
public UserMessage getLabel()
{
return UserMessage.createInfo("Validator for 'Salary' field of 'Employee' table");
}
public UserMessage getDescription()
{
return UserMessage.createInfo("Allow import record with unempty 'Salary' field value");
}
public Validator getValidator(Operation operation)
{
switch (operation)
{
case IMPORT_EXCEL_FOR_SINGLE_TABLE:
case IMPORT_EXCEL_FOR_MULTIPLE_TABLES:
return new SalaryValidatorForExcelFile();
case IMPORT_CSV:
return new SalaryValidatorForCSVFile();
case IMPORT_XML:
return new SalaryValidatorForXMLFile();
case TRANSFER_DATA:
return new SalaryValidatorForTransferData();
default:
return null;
}
}
}
Next, create the definition of the implementation.
Example of import Excel
public final class SalaryValidatorForExcelFile implements Validator<ExcelValidatorContext>
{
public ValidatorStatus preTransform(ExcelValidatorContext validatorContext)
{
if (validatorContext == null)
{
return ValidatorStatus.FAIL;
}
String sheetName = validatorContext.getSheetName();
if (sheetName.equals("Employee"))
{
ColumnHeaderSpec headerSpec = new ColumnHeaderSpec("Salary", 3);// 'Salary' index is 3
Object salary = validatorContext.getSourceRow().get(headerSpec);
if (AddonStringUtils.isEmpty(String.valueOf(salary)))
{
return ValidatorStatus.IGNORE;
}
}
return ValidatorStatus.CONTINUE;
}
public ValidatorStatus postTransform(ExcelValidatorContext validatorContext)
{
if (validatorContext == null)
{
return ValidatorStatus.FAIL;
}
String sheetName = validatorContext.getSheetName();
if (sheetName.equals("Employee"))
{
ColumnHeaderSpec headerSpec = new ColumnHeaderSpec("Salary", 3);// 'Salary' index is 3
Object salary = validatorContext.getSourceRow().get(headerSpec);
if (AddonStringUtils.isEmpty(String.valueOf(salary)))
{
return ValidatorStatus.IGNORE;
}
}
return ValidatorStatus.CONTINUE;
}
}
Example of import CSV
public final class SalaryValidatorForCSVFile implements Validator<CSVValidatorContext>
{
public ValidatorStatus preTransform(CSVValidatorContext validatorContext)
{
if (validatorContext == null)
{
return ValidatorStatus.FAIL;
}
// 'Salary' index is 3
ColumnHeaderSpec headerSpec = new ColumnHeaderSpec("Salary", 3);
Object salary = validatorContext.getSourceValues().get(headerSpec);
if (AddonStringUtils.isEmpty(String.valueOf(salary)))
{
return ValidatorStatus.IGNORE;
}
return ValidatorStatus.CONTINUE;
}
public ValidatorStatus postTransform(CSVValidatorContext validatorContext)
{
if (validatorContext == null)
{
return ValidatorStatus.FAIL;
}
// 'Salary' index is 3
ColumnHeaderSpec headerSpec = new ColumnHeaderSpec("Salary", 3);
Object salary = validatorContext.getSourceValues().get(headerSpec);
if (AddonStringUtils.isEmpty(String.valueOf(salary)))
{
return ValidatorStatus.IGNORE;
}
return ValidatorStatus.CONTINUE;
}
}
Example of import XML
public final class SalaryValidatorForXMLFile implements Validator<XMLValidatorContext>
{
// Validator is located on "Employee" table mapping of {addon.label} configuration
public ValidatorStatus preTransform(XMLValidatorContext validatorContext)
{
if (validatorContext == null)
{
return ValidatorStatus.FAIL;
}
Object salary = validatorContext.getSourceXML().get("/root/Employee/salary");
if (AddonStringUtils.isEmpty(String.valueOf(salary)))
{
return ValidatorStatus.IGNORE;
}
return ValidatorStatus.CONTINUE;
}
public ValidatorStatus postTransform(XMLValidatorContext validatorContext)
{
if (validatorContext == null)
{
return ValidatorStatus.FAIL;
}
Object salary = validatorContext.getSourceXML().get("/root/Employee/salary");
if (AddonStringUtils.isEmpty(String.valueOf(salary)))
{
return ValidatorStatus.IGNORE;
}
return ValidatorStatus.CONTINUE;
}
}
Example of transfer data
public final class SalaryValidatorForTransferData implements Validator<EBXValidatorContext>
{
// Validator is located on "Employee" table mapping of {addon.label} configuration
public ValidatorStatus preTransform(EBXValidatorContext validatorContext)
{
if (validatorContext == null)
{
return ValidatorStatus.FAIL;
}
Object salary = validatorContext.getSourceRecord().get(Path.parse("/root/Employee/salary"));
if (AddonStringUtils.isEmpty(String.valueOf(salary)))
{
return ValidatorStatus.IGNORE;
}
return ValidatorStatus.CONTINUE;
}
public ValidatorStatus postTransform(EBXValidatorContext validatorContext)
{
if (validatorContext == null)
{
return ValidatorStatus.FAIL;
}
Object salary = validatorContext.getSourceRecord().get(Path.parse("/root/Employee/salary"));
if (AddonStringUtils.isEmpty(String.valueOf(salary)))
{
return ValidatorStatus.IGNORE;
}
return ValidatorStatus.CONTINUE;
}
}
Finally, the validator definition must be registered in the add-on in order to be available in the configuration:
ValidatorCatalog.add(new SalaryValidatorDefinition());
In another way, with the import Excel and CSV, the validator can be declared on Extension table.
-
Interface Summary Interface Description CSVValidatorContext Deprecated. Since 2.3.0, replaced byValidatorContext.EBXValidatorContext Deprecated. Since 2.3.0, replaced byValidatorContext.ExcelValidatorContext Deprecated. Since 2.3.0, replaced byValidatorContext.Validator<T extends ValidatorContext> Deprecated. Since 2.3.0, replaced byValidator.ValidatorContext Deprecated. Since 2.3.0, replaced byValidatorContext.ValidatorDefinition Deprecated. Since 2.3.0, replaced byValidatorDefinition.XMLValidatorContext Deprecated. Since 2.3.0, replaced byValidatorContext. -
Class Summary Class Description ColumnHeaderSpec Deprecated. Since 2.3.0, replaced bySpreadsheetField,CSVField.ValidatorCatalog Deprecated. Since 2.3.0, replaced byValidatorCatalog. -
Enum Summary Enum Description ValidatorStatus Deprecated. Since 2.3.0, replaced byValidatorStatus.