Skip to content

Commit 54a0569

Browse files
committed
Add static functions to help compose generic types
1 parent ab162a2 commit 54a0569

File tree

1 file changed

+20
-1
lines changed

1 file changed

+20
-1
lines changed

src/org/jcodegen/java/VarDeclaration.java

Lines changed: 20 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,8 @@
11
package org.jcodegen.java;
22

3+
import java.util.Arrays;
4+
import java.util.List;
5+
36
/**
47
* ...
58
*/
@@ -169,7 +172,23 @@ public static VarDeclaration createGenericContainerDeclaration(
169172
new ObjectCreation(getParametrizedType(genericType, type)), visibility, indentationLevel);
170173
}
171174

172-
private static String getParametrizedType(final String genericType, final String concreteType) {
175+
public static String getParametrizedType(final String genericType, final String concreteType) {
173176
return genericType + "<" + concreteType + ">";
174177
}
178+
179+
public static String getParametrizedType(final String genericType, final String... concreteTypes) {
180+
return getParametrizedType(genericType, Arrays.asList(concreteTypes));
181+
}
182+
183+
public static String getParametrizedType(final String genericType, final List<String> concreteTypes) {
184+
if (concreteTypes.isEmpty())
185+
throw new IllegalArgumentException("At least one concrete type must be specified");
186+
187+
final StringBuilder types = new StringBuilder();
188+
for (String type: concreteTypes)
189+
types.append(type).append(", ");
190+
types.delete(types.length() - 2, types.length());
191+
192+
return getParametrizedType(genericType, types.toString());
193+
}
175194
}

0 commit comments

Comments
 (0)