Package com.orchestranetworks.addon.dex.validator
package com.orchestranetworks.addon.dex.validator
Classes and interfaces to call EBX Data Exchange Add-on import Excel, CSV, XML and transfer data services using validator.
Creating a validator in the import Excel, CSV, XML and transfer data services
To create a validator:
-
Create the definition to add a validator.
public final class TestValidatorDefinition 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(ServiceType serviceType) { switch (serviceType) { case SPREADSHEET_IMPORT: return new TestValidatorForSpreadsheetImport(); case CSV_IMPORT: return new TestValidatorForCSVImport(); case XML_IMPORT: return new TestValidatorForXMLImport(); case TRANSFER: return new TestValidatorForTransfer(); default: return null; } } }
-
Create the implementation definition.
-
Example of Excel import:
public final class TestValidatorForSpreadsheetImport implements Validator { public ValidatorStatus preTransform(ValidatorContext validatorContext) { if (validatorContext == null) { return ValidatorStatus.FAIL; } Record<SpreadsheetField> spreadsheetRecord = validatorContext.getSourceRecord(); SpreadsheetTable spreadsheetTable = (SpreadsheetTable) spreadsheetRecord.getTable(); String sheetName = spreadsheetTable.getSheetName(); if (sheetName.equals("Libraries")) { Iterator<SpreadsheetField> iterator = spreadsheetTable.getFields().iterator(); while (iterator.hasNext()) { SpreadsheetField spreadsheetField = iterator.next(); if (spreadsheetRecord.getValue(spreadsheetField) == null) { return ValidatorStatus.IGNORE; } } } return ValidatorStatus.CONTINUE; } public ValidatorStatus postTransform(ValidatorContext validatorContext) { if (validatorContext == null) { return ValidatorStatus.FAIL; } EBXTable targetTable = validatorContext.getTargetTable(); for (EBXField targetField : targetTable.getFields()) { if (validatorContext.getValue(targetField) == null) { return ValidatorStatus.IGNORE; } } return ValidatorStatus.CONTINUE; } }
-
Example of CSV import:
public final class TestValidatorForCSVImport implements Validator { public ValidatorStatus preTransform(ValidatorContext validatorContext) { if (validatorContext == null) { return ValidatorStatus.FAIL; } Record<CSVField> csvRecord = validatorContext.getSourceRecord(); CSVTable csvTable = (CSVTable) csvRecord.getTable(); String csvTableName = csvTable.getName(); if (csvTableName.equals("Libraries")) { Iterator<CSVField> iterator = csvTable.getFields().iterator(); while (iterator.hasNext()) { CSVField csvField = iterator.next(); if (csvRecord.getValue(csvField) == null) { return ValidatorStatus.IGNORE; } } } return ValidatorStatus.CONTINUE; } public ValidatorStatus postTransform(ValidatorContext validatorContext) { if (validatorContext == null) { return ValidatorStatus.FAIL; } EBXTable targetTable = validatorContext.getTargetTable(); for (EBXField targetField : targetTable.getFields()) { if (validatorContext.getValue(targetField) == null) { return ValidatorStatus.IGNORE; } } return ValidatorStatus.CONTINUE; } }
-
Example of XML import:
public final class TestValidatorForXMLImport implements Validator { public ValidatorStatus preTransform(ValidatorContext validatorContext) { if (validatorContext == null) { return ValidatorStatus.FAIL; } Record<XMLField> xmlRecord = validatorContext.getSourceRecord(); XMLTable xmlTable = (XMLTable) xmlRecord.getTable(); String xmlTablePath = xmlTable.getXMLPath(); if (xmlTablePath.equals("/root/Libraries")) { Iterator<XMLField> iterator = xmlTable.getFields().iterator(); while (iterator.hasNext()) { XMLField xmlField = iterator.next(); if (xmlRecord.getValue(xmlField) == null) { return ValidatorStatus.IGNORE; } } } return ValidatorStatus.CONTINUE; } public ValidatorStatus postTransform(ValidatorContext validatorContext) { if (validatorContext == null) { return ValidatorStatus.FAIL; } EBXTable targetTable = validatorContext.getTargetTable(); for (EBXField targetField : targetTable.getFields()) { if (validatorContext.getValue(targetField) == null) { return ValidatorStatus.IGNORE; } } return ValidatorStatus.CONTINUE; } }
-
Example of data transfer:
public final class TestValidatorForTransfer implements Validator { public ValidatorStatus preTransform(ValidatorContext validatorContext) { if (validatorContext == null) { return ValidatorStatus.FAIL; } Record<EBXField> ebxSourceRecords = validatorContext.getSourceRecord(); EBXTable ebxSourceTable = (EBXTable) ebxSourceRecords.getTable(); String ebxSourceTablePath = ebxSourceTable.getTableNode().getPathInSchema().format(); if (ebxSourceTablePath.equals("/root/Libraries")) { Iterator<EBXField> iterator = ebxSourceTable.getFields().iterator(); while (iterator.hasNext()) { EBXField ebxField = iterator.next(); if (ebxSourceRecords.getValue(ebxField) == null) { return ValidatorStatus.IGNORE; } } } return ValidatorStatus.CONTINUE; } public ValidatorStatus postTransform(ValidatorContext validatorContext) { if (validatorContext == null) { return ValidatorStatus.FAIL; } EBXTable targetTable = validatorContext.getTargetTable(); for (EBXField targetField : targetTable.getFields()) { if (validatorContext.getValue(targetField) == null) { return ValidatorStatus.IGNORE; } } return ValidatorStatus.CONTINUE; } }
-
-
Register the validator with the add-on via the catalog so that it can be used in the configuration:
ValidatorCatalog.add(new TestValidatorDefinition());
-
ClassDescriptionProvides
Validator
methods.ListsValidators
to register.Provides the validation context.Defines attributes forValidator
implementation.Defines attributes for validation status.