summaryrefslogtreecommitdiff
path: root/container-compiler-plugin/src/main/java/io/trygvis/container/compiler/model/Parameters.java
diff options
context:
space:
mode:
authorTrygve Laugstøl <trygvis@inamo.no>2013-08-02 02:48:11 +0200
committerTrygve Laugstøl <trygvis@inamo.no>2013-08-02 02:48:11 +0200
commit35330309221b7c39adf71f508190628459ad7138 (patch)
treea7b0978abbe72464e3204cf0c7788c53daf8e6e7 /container-compiler-plugin/src/main/java/io/trygvis/container/compiler/model/Parameters.java
parent85f2d87162ff518891cdc3da13669ee39f72a19b (diff)
downloadcontainer-playground-35330309221b7c39adf71f508190628459ad7138.tar.gz
container-playground-35330309221b7c39adf71f508190628459ad7138.tar.bz2
container-playground-35330309221b7c39adf71f508190628459ad7138.tar.xz
container-playground-35330309221b7c39adf71f508190628459ad7138.zip
wip
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();
+ }
}