List<LightMethodBuilder> (@NotNull PsiFile file, @NotNull String name, @Nullable Class<?> antClass, @NotNull PsiType mapType, @NotNull PsiType stringType, @NotNull PsiType closureType) { // (Map, String, Closure) // (Map, String) AntBuilderMethod method = new AntBuilderMethod(file, name, antClass); method.addParameter(new GrLightParameter("args", mapType, method)); method.addParameter(new GrLightParameter("singleArg", stringType, method)); method.addParameter(new GrLightParameter("body", closureType, method).setOptional(true)); // (Map, Closure) // (Map) AntBuilderMethod method2 = new AntBuilderMethod(file, name, antClass); method2.addParameter(new GrLightParameter("args", mapType, method2)); method2.addParameter(new GrLightParameter("body", closureType, method2).setOptional(true)); // (String, Closure) // (String) AntBuilderMethod method3 = new AntBuilderMethod(file, name, antClass); method3.addParameter(new GrLightParameter("singleArg", stringType, method3)); method3.addParameter(new GrLightParameter("body", closureType, method3).setOptional(true)); // (Closure) // () AntBuilderMethod method4 = new AntBuilderMethod(file, name, antClass); method4.addParameter(new GrLightParameter("body", closureType, method4).setOptional(true)); return Arrays.asList(method, method2, method3, method4); }