diff options
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(); + } } |