From 5f09bdc12412ab24e9573344e52b155f4163f679 Mon Sep 17 00:00:00 2001 From: "C. Alexander Leigh" Date: Tue, 12 Sep 2023 17:09:42 -0700 Subject: [PATCH] lc-esp-eo: Improvemenets to EO schemas --- .../lc/esp/eo/sdk/schema/AssociationSchema.java | 4 ++-- .../main/java/lc/esp/eo/sdk/schema/EOSchema.java | 13 ++++++++++++- .../java/lc/esp/eo/sdk/schema/FieldBearer.java | 16 +++++++++++++++- 3 files changed, 29 insertions(+), 4 deletions(-) diff --git a/java/lc-esp-eo-sdk/src/main/java/lc/esp/eo/sdk/schema/AssociationSchema.java b/java/lc-esp-eo-sdk/src/main/java/lc/esp/eo/sdk/schema/AssociationSchema.java index effe3017a..134a9c066 100644 --- a/java/lc-esp-eo-sdk/src/main/java/lc/esp/eo/sdk/schema/AssociationSchema.java +++ b/java/lc-esp-eo-sdk/src/main/java/lc/esp/eo/sdk/schema/AssociationSchema.java @@ -2,7 +2,7 @@ package lc.esp.eo.sdk.schema; public class AssociationSchema extends FieldBearer{ - public AssociationSchema(String type) { - super(type); + public AssociationSchema(String type, boolean isRequired) { + super(type, isRequired); } } diff --git a/java/lc-esp-eo-sdk/src/main/java/lc/esp/eo/sdk/schema/EOSchema.java b/java/lc-esp-eo-sdk/src/main/java/lc/esp/eo/sdk/schema/EOSchema.java index b0d7b01ed..2e515f2f6 100644 --- a/java/lc-esp-eo-sdk/src/main/java/lc/esp/eo/sdk/schema/EOSchema.java +++ b/java/lc-esp-eo-sdk/src/main/java/lc/esp/eo/sdk/schema/EOSchema.java @@ -1,5 +1,7 @@ package lc.esp.eo.sdk.schema; +import java.util.HashMap; + /** * This class implements a descriptive schema for an {@link lc.esp.eo.sdk.EO}. * @@ -8,13 +10,22 @@ package lc.esp.eo.sdk.schema; */ public class EOSchema extends FieldBearer { + private HashMap associations = new HashMap<>(); private final String type; public EOSchema(String type) { - super(type); + super(type, false); this.type = type; } public String getType() { return type; } + + public void putAssociation(AssociationSchema schema) { + associations.put(schema.getType(), schema); + } + + public AssociationSchema getAssociation(String name) { + return associations.get(name); + } } diff --git a/java/lc-esp-eo-sdk/src/main/java/lc/esp/eo/sdk/schema/FieldBearer.java b/java/lc-esp-eo-sdk/src/main/java/lc/esp/eo/sdk/schema/FieldBearer.java index f087c73fa..ff9d48557 100644 --- a/java/lc-esp-eo-sdk/src/main/java/lc/esp/eo/sdk/schema/FieldBearer.java +++ b/java/lc-esp-eo-sdk/src/main/java/lc/esp/eo/sdk/schema/FieldBearer.java @@ -13,11 +13,13 @@ import java.util.Set; * @since mk20 */ public abstract class FieldBearer extends TypedObject { + private final boolean isRequired; private final HashMap fields = new HashMap<>(); - public FieldBearer(String type) { + public FieldBearer(String type, boolean isRequired) { super(type); + this.isRequired = isRequired; } public void putField(FieldSchema field) { @@ -35,4 +37,16 @@ public abstract class FieldBearer extends TypedObject { } return required; } + + public boolean isRequired() { + return isRequired; + } + + @Override + public String toString() { + return "FieldBearer{" + + "isRequired=" + isRequired + + ", fields=" + fields + + '}'; + } } -- GitLab