From dee7b5195105812c776f5c3fd1814ad25ce4e358 Mon Sep 17 00:00:00 2001 From: Michael Williamson Date: Sun, 5 Nov 2023 20:14:26 +0000 Subject: Add builder for NamespaceTypeInfo --- .../shedlang/compiler/types/NamespaceTypeInfo.java | 20 ++++++++++++++------ 1 file changed, 14 insertions(+), 6 deletions(-) (limited to 'src/main/java') diff --git a/src/main/java/org/shedlang/compiler/types/NamespaceTypeInfo.java b/src/main/java/org/shedlang/compiler/types/NamespaceTypeInfo.java index 5cfb2aa8..e4c5048f 100644 --- a/src/main/java/org/shedlang/compiler/types/NamespaceTypeInfo.java +++ b/src/main/java/org/shedlang/compiler/types/NamespaceTypeInfo.java @@ -1,14 +1,8 @@ package org.shedlang.compiler.types; -import org.shedlang.compiler.util.POrderedMap; - import java.util.Optional; public record NamespaceTypeInfo(FieldsInfo fields) { - public static NamespaceTypeInfo fromFields(POrderedMap fields) { - return new NamespaceTypeInfo(new FieldsInfo<>(fields)); - } - public int fieldCount() { return fields.fieldCount(); } @@ -20,4 +14,18 @@ public record NamespaceTypeInfo(FieldsInfo fields) { public int fieldIndex(String fieldName) { return fields.fieldIndex(fieldName); } + + public static Builder builder() { + return new Builder(FieldsInfo.builder()); + } + + public record Builder(FieldsInfo.Builder fields) { + public NamespaceTypeInfo build() { + return new NamespaceTypeInfo(fields.build()); + } + + public Builder addField(String name, Type type) { + return new Builder(this.fields.addField(name, type)); + } + } } -- cgit v1.2.3