Add Attributes and Tags to Schemas
Updated: Jan 28, 2023
This example will show how to add arbitrary data and classifiers to your objects using Attributes and Tags.
Java Code Listing
package com.northconcepts.datapipeline.examples.cookbook; import java.time.LocalDateTime; import com.northconcepts.datapipeline.core.FieldType; 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.SchemaDef; import com.northconcepts.datapipeline.foundations.schema.TextFieldDef; public class AddAttributesAndTagsToSchemas { public static void main(String[] args) { SchemaDef schema = new SchemaDef("ecommerce"); EntityDef entity = new EntityDef("user_information") .addField(new NumericFieldDef("USER_ID", FieldType.INT)) .addField(new TextFieldDef("USER_NAME", FieldType.STRING)) .addField(new TextFieldDef("PASSWORD", FieldType.STRING)) .addField(new TextFieldDef("FIRST_NAME", FieldType.STRING)) .addField(new TextFieldDef("LAST_NAME", FieldType.STRING)) .addField(new TextFieldDef("EMAIL", FieldType.STRING)) .addField(new NumericFieldDef("USER_ROLE_ID", FieldType.INT)) .addField(new BooleanFieldDef("ACTIVE", FieldType.BOOLEAN)) ; schema.getAttributes() .setValue("department", "Sales") .setValue("modified", LocalDateTime.now()); schema.getTags().add("Draft"); entity.getAttributes() .setValue("modified", LocalDateTime.now()); entity.getTags().add("Draft").add("User Management").add("Security"); System.out.println(schema.getAttributes()); System.out.println("------------------"); System.out.println(schema.getAttributes().toRecord()); System.out.println("------------------"); System.out.println(schema.getAttributes().toXml()); System.out.println("------------------"); System.out.println(schema.getAttributes().toJson()); System.out.println("================================================"); System.out.println(entity.getTags()); System.out.println("------------------"); System.out.println(entity.getTags().toRecord()); System.out.println("------------------"); System.out.println(entity.getTags().toXml()); System.out.println("------------------"); System.out.println(entity.getTags().toJson()); } }
Console Output
{ "names" : [ "department", "modified" ] } ------------------ Record (MODIFIED) { 0:[department]:STRING=[Sales]:String 1:[modified]:DATETIME=[Sat Jan 28 16:33:08 EST 2023]:Date } ------------------ <attributes> <attribute name="department" type="STRING" value="Sales"/> <attribute name="modified" type="DATETIME" value="2023-01-28T16:33:08.368Z"/> </attributes> ------------------ {"department":"Sales","modified":"2023-01-28T16:33:08.368Z"} ================================================ { "all" : [ "Draft", "Security", "User Management" ] } ------------------ Record (MODIFIED) { 0:[tags]:ARRAY of STRING=[[Draft, Security, User Management]]:ArrayValue } ------------------ <tags> <tag value="Draft"/> <tag value="Security"/> <tag value="User Management"/> </tags> ------------------ {"tags":["Draft","Security","User Management"]}