aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/org/zwobble/couscous/MapBackedProject.java
diff options
context:
space:
mode:
authorMichael Williamson <mike@zwobble.org>2015-10-02 19:11:03 +0100
committerMichael Williamson <mike@zwobble.org>2015-10-02 19:11:03 +0100
commit90dae189f638148a7b72add782023088cf22e847 (patch)
tree47aca5460b245111a7c592d362898d2f6062581b /src/main/java/org/zwobble/couscous/MapBackedProject.java
parentc02fac3e8b50b1941a8d3f35a033212c1e51d5d4 (diff)
Use the name of the class node when adding classes to project
Diffstat (limited to 'src/main/java/org/zwobble/couscous/MapBackedProject.java')
-rw-r--r--src/main/java/org/zwobble/couscous/MapBackedProject.java26
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) {