diff options
Diffstat (limited to 'src/main/java/org/zwobble/couscous/MapBackedProject.java')
| -rw-r--r-- | src/main/java/org/zwobble/couscous/MapBackedProject.java | 26 |
1 files changed, 22 insertions, 4 deletions
diff --git a/src/main/java/org/zwobble/couscous/MapBackedProject.java b/src/main/java/org/zwobble/couscous/MapBackedProject.java index 66b3681..f8e457f 100644 --- a/src/main/java/org/zwobble/couscous/MapBackedProject.java +++ b/src/main/java/org/zwobble/couscous/MapBackedProject.java @@ -4,12 +4,30 @@ import java.util.Map; import org.zwobble.couscous.values.ConcreteType; -import lombok.Builder; -import lombok.Singular; +import com.google.common.collect.ImmutableMap; -@Builder public class MapBackedProject implements Project { - @Singular(value="addClass") + public static Builder builder() { + return new Builder(); + } + + public static class Builder { + private final ImmutableMap.Builder<String, ConcreteType<?>> classes; + + private Builder() { + classes = ImmutableMap.builder(); + } + + public Builder addClass(ConcreteType<?> clazz) { + classes.put(clazz.getName(), clazz); + return this; + } + + public Project build() { + return new MapBackedProject(classes.build()); + } + } + private Map<String, ConcreteType<?>> classes; public MapBackedProject(Map<String, ConcreteType<?>> classes) { |
