/* ************************************************************************ # # DivConq # # http://divconq.com/ # # Copyright: # Copyright 2014 eTimeline, LLC. All rights reserved. # # License: # See the license.txt file in the project's top-level directory for details. # # Authors: # * Andy White # ************************************************************************ */ package divconq.test; import divconq.hub.HubResources; import divconq.lang.op.FuncResult; import divconq.lang.op.OperationContext; import divconq.lang.op.OperationResult; import divconq.log.DebugLevel; import divconq.log.Logger; import divconq.schema.SchemaManager; import divconq.struct.ListStruct; import divconq.struct.RecordStruct; import divconq.struct.Struct; public class TestSchema { public static void main(String[] args) { try { OperationContext.useHubContext(); HubResources resources = new HubResources(); resources.setDebugLevel(DebugLevel.Trace); OperationResult or = resources.init(); if (or.hasErrors()) { Logger.error("Unable to continue, hub resources not properly initialized"); return; } SchemaManager schemaman = resources.getSchema(); // typed ResultMessage record RecordStruct msg1 = schemaman.newRecord("ResultMessage"); System.out.println("----------------"); System.out.println(msg1.validate().toString()); msg1.setField("Level", "Info"); msg1.setField("Code", 3); msg1.setField("Message", "Howday partner!"); System.out.println("----------------"); System.out.println(msg1.toString()); System.out.println("----------------"); System.out.println(msg1.validate().toString()); //rec.setField("Level", "What!!"); //rec.removeField("Code"); //System.out.println("----------------"); //System.out.println(rec.validate().toString()); System.out.println("-------------------------------------------------------"); // typed ResponseMessage record RecordStruct resp = schemaman.newRecord("ResponseMessage"); System.out.println(resp.validate().toString()); resp.setField("Service", "Reply"); resp.setField("Result", 6); System.out.println("----------------"); System.out.println(resp.toString()); System.out.println("----------------"); System.out.println(resp.validate().toString()); System.out.println("-------------------------------------------------------"); FuncResult<Struct> msgs = resp.getOrAllocateField("Messages"); ((ListStruct) msgs.getResult()).addItem(msg1); System.out.println("----------------"); System.out.println(resp.toString()); System.out.println("----------------"); System.out.println(resp.validate().toString()); System.out.println("-------------------------------------------------------"); // untyped record attempting to merge with typed RecordStruct msg2 = new RecordStruct(); msg2.setField("Level", "Exit"); msg2.setField("Code", 5); msg2.setField("Message", "Goodday partner!"); ((ListStruct) msgs.getResult()).addItem(msg2); System.out.println("----------------"); System.out.println(resp.toString()); System.out.println("----------------"); System.out.println(resp.validate().toString()); System.out.println("-------------------------------------------------------"); } catch (Exception x) { System.out.println("Error in loop: " + x); } } }