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.java31
1 files changed, 29 insertions, 2 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 cfd29f9..8f76714 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
@@ -4,13 +4,30 @@ import java.util.ArrayList;
import java.util.List;
import java.util.ListIterator;
-public class Parameters implements Iterable<ParameterRef> {
+public class Parameters implements Iterable<Parameters.ParameterRef> {
public static final Parameters noParameters = new Parameters();
private final List<ParameterRef> parameters = new ArrayList<>();
- public ParameterRef addParameter(TypeRef klass, String name) {
+ public Parameters() {
+ }
+
+ public Parameters(TypeRef type, String name) {
+ addParameter(type, name);
+ }
+ public Parameters(TypeRef typeA, String nameA, TypeRef typeB, String nameB) {
+ addParameter(typeA, nameA);
+ addParameter(typeB, nameB);
+ }
+
+ public Parameters(TypeRef typeA, String nameA, TypeRef typeB, String nameB, TypeRef typeC, String nameC) {
+ addParameter(typeA, nameA);
+ addParameter(typeB, nameB);
+ addParameter(typeC, nameC);
+ }
+
+ public ParameterRef addParameter(TypeRef klass, String name) {
while (taken(name)) {
name = name + "_";
}
@@ -34,4 +51,14 @@ public class Parameters implements Iterable<ParameterRef> {
public ListIterator<ParameterRef> iterator() {
return parameters.listIterator();
}
+
+ public static class ParameterRef {
+ public final TypeRef klass;
+ public final String name;
+
+ ParameterRef(TypeRef klass, String name) {
+ this.klass = klass;
+ this.name = name;
+ }
+ }
}