Map Records using Schema
Updated: Aug 28, 2026
package com.northconcepts.datapipeline.foundations.examples.schema;
import com.northconcepts.datapipeline.core.FieldType;
import com.northconcepts.datapipeline.core.Record;
import com.northconcepts.datapipeline.foundations.schema.BooleanFieldDef;
import com.northconcepts.datapipeline.foundations.schema.EntityDef;
import com.northconcepts.datapipeline.foundations.schema.NumericFieldDef;
import com.northconcepts.datapipeline.foundations.schema.TemporalFieldDef;
import com.northconcepts.datapipeline.foundations.schema.TextFieldDef;
public class MapRecordUsingSchema {
public static void main(String[] args) {
Record record = new Record();
record.addField("name", "John Smith");
record.addField("age", "76");
record.addField("balance", "31.05");
record.addField("active", "true"); // "yes" and non-zero numbers also map to true
record.addField("bonuses", new String[]{"100", "500", "2000"});
record.addField("balanceAge", new double[]{0, 30, 1.05});
record.addField("lastUpdated", "2019-12-19");
EntityDef entityDef = new EntityDef();
entityDef.addField(new TextFieldDef("name", FieldType.STRING).setRequired(true).setAllowBlank(false).setMaximumLength(100));
entityDef.addField(new NumericFieldDef("age", FieldType.INT).setRequired(true).setMinimum(25).setMaximum(75));
entityDef.addField(new NumericFieldDef("balance", FieldType.BIG_DECIMAL));
entityDef.addField(new BooleanFieldDef("active", FieldType.BOOLEAN).setAllowedValues(null));
entityDef.addField(new NumericFieldDef("bonuses", FieldType.DOUBLE).setArray(true));
entityDef.addField(new NumericFieldDef("balanceAge", FieldType.DOUBLE).setArray(true));
entityDef.addField(new TemporalFieldDef("lastUpdated", FieldType.DATE).setPattern("yyyy-MM-dd"));
System.out.println("Original Record-----------------------------------");
System.out.println(record);
System.out.println("Mapping Result-----------------------------------");
System.out.println(entityDef.mapRecord(record)); // map record in place
System.out.println("Mapped Record-----------------------------------");
System.out.println(record);
System.out.println("Validation Result-----------------------------------");
System.out.println(entityDef.validateRecord(record));
}
}
