diff options
author | Trygve Laugstøl <trygvis@inamo.no> | 2013-08-02 02:48:11 +0200 |
---|---|---|
committer | Trygve Laugstøl <trygvis@inamo.no> | 2013-08-02 02:48:11 +0200 |
commit | 35330309221b7c39adf71f508190628459ad7138 (patch) | |
tree | a7b0978abbe72464e3204cf0c7788c53daf8e6e7 /container-compiler-plugin/src/main/java/io/trygvis/container/compiler/model/Parameters.java | |
parent | 85f2d87162ff518891cdc3da13669ee39f72a19b (diff) | |
download | container-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.java | 33 |
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(); + } } |