diff options
| author | Michael Williamson <mike@zwobble.org> | 2016-02-28 14:14:47 +0000 |
|---|---|---|
| committer | Michael Williamson <mike@zwobble.org> | 2016-02-28 14:16:16 +0000 |
| commit | 74c98ef82b94abe7fe7548766471b8e43c149504 (patch) | |
| tree | 075d6b370677cdba9946e1dcafada6fd2367e5ef /src/main/java/org/zwobble/couscous/ast/ClassNodeBuilder.java | |
| parent | 28a122e74fa8f76da97625d1581e69afee835b7c (diff) | |
C#: Write super types
Diffstat (limited to 'src/main/java/org/zwobble/couscous/ast/ClassNodeBuilder.java')
| -rw-r--r-- | src/main/java/org/zwobble/couscous/ast/ClassNodeBuilder.java | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/src/main/java/org/zwobble/couscous/ast/ClassNodeBuilder.java b/src/main/java/org/zwobble/couscous/ast/ClassNodeBuilder.java index a4a268a..04491ab 100644 --- a/src/main/java/org/zwobble/couscous/ast/ClassNodeBuilder.java +++ b/src/main/java/org/zwobble/couscous/ast/ClassNodeBuilder.java @@ -1,6 +1,7 @@ package org.zwobble.couscous.ast; import com.google.common.collect.ImmutableList; +import com.google.common.collect.ImmutableSet; import org.zwobble.couscous.ast.identifiers.Identifier; import org.zwobble.couscous.values.UnitValue; @@ -8,13 +9,13 @@ import java.util.List; import java.util.Optional; import java.util.function.Function; -import static java.util.Collections.emptySet; import static org.zwobble.couscous.ast.FormalArgumentNode.formalArg; import static org.zwobble.couscous.ast.VariableDeclaration.var; import static org.zwobble.couscous.util.ExtraLists.list; public class ClassNodeBuilder { private final TypeName name; + private final ImmutableSet.Builder<TypeName> superTypes; private final ImmutableList.Builder<FieldDeclarationNode> fields; private List<StatementNode> staticConstructor; private Optional<ConstructorNode> constructor; @@ -22,6 +23,7 @@ public class ClassNodeBuilder { public ClassNodeBuilder(TypeName name) { this.name = name; + this.superTypes = ImmutableSet.builder(); this.fields = ImmutableList.builder(); staticConstructor = list(); this.constructor = Optional.empty(); @@ -32,6 +34,11 @@ public class ClassNodeBuilder { this(TypeName.of(name)); } + public ClassNodeBuilder addSuperType(String type) { + this.superTypes.add(TypeName.of(type)); + return this; + } + public ClassNodeBuilder staticField(String name, TypeName type) { return field(FieldDeclarationNode.staticField(name, type)); } @@ -97,7 +104,7 @@ public class ClassNodeBuilder { public ClassNode build() { return ClassNode.declareClass( name, - emptySet(), + superTypes.build(), fields.build(), staticConstructor, constructor.orElse(ConstructorNode.DEFAULT), |
