diff options
Diffstat (limited to 'src/main/java')
| -rw-r--r-- | src/main/java/org/shedlang/compiler/types/NamespaceTypeInfo.java | 20 |
1 files changed, 14 insertions, 6 deletions
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<Type> fields) { - public static NamespaceTypeInfo fromFields(POrderedMap<String, Type> fields) { - return new NamespaceTypeInfo(new FieldsInfo<>(fields)); - } - public int fieldCount() { return fields.fieldCount(); } @@ -20,4 +14,18 @@ public record NamespaceTypeInfo(FieldsInfo<Type> fields) { public int fieldIndex(String fieldName) { return fields.fieldIndex(fieldName); } + + public static Builder builder() { + return new Builder(FieldsInfo.builder()); + } + + public record Builder(FieldsInfo.Builder<Type> fields) { + public NamespaceTypeInfo build() { + return new NamespaceTypeInfo(fields.build()); + } + + public Builder addField(String name, Type type) { + return new Builder(this.fields.addField(name, type)); + } + } } |
