summaryrefslogtreecommitdiff
path: root/container-compiler-plugin/src/main/java/io/trygvis/container/compiler/model/Parameters.java
diff options
context:
space:
mode:
Diffstat (limited to 'container-compiler-plugin/src/main/java/io/trygvis/container/compiler/model/Parameters.java')
-rw-r--r--container-compiler-plugin/src/main/java/io/trygvis/container/compiler/model/Parameters.java33
1 files changed, 32 insertions, 1 deletions
diff --git a/container-compiler-plugin/src/main/java/io/trygvis/container/compiler/model/Parameters.java b/container-compiler-plugin/src/main/java/io/trygvis/container/compiler/model/Parameters.java
index bfb32b6..7c1ab5b 100644
--- a/container-compiler-plugin/src/main/java/io/trygvis/container/compiler/model/Parameters.java
+++ b/container-compiler-plugin/src/main/java/io/trygvis/container/compiler/model/Parameters.java
@@ -1,4 +1,35 @@
package io.trygvis.container.compiler.model;
-public class Parameters {
+import java.util.ArrayList;
+import java.util.List;
+import java.util.ListIterator;
+
+public class Parameters implements Iterable<ParameterRef> {
+ private final List<ParameterRef> parameters = new ArrayList<>();
+
+ public ParameterRef addParameter(TypeRef klass, String name) {
+
+ while (taken(name)) {
+ name = name + "_";
+ }
+
+ ParameterRef ref = new ParameterRef(klass, name);
+ parameters.add(ref);
+ return ref;
+ }
+
+ private boolean taken(String name) {
+ for (ParameterRef parameter : parameters) {
+ if (parameter.name.equals(name)) {
+ return true;
+ }
+ }
+
+ return false;
+ }
+
+ @Override
+ public ListIterator<ParameterRef> iterator() {
+ return parameters.listIterator();
+ }
}