LightPsiClassBuilder (@NotNull final PsiAnnotation annotation, PsiVariable @NotNull [] setters) { final LightPsiClassBuilder builderClass = new BuilderHelperLightPsiClass( myContainingClass, getBuilderClassName(annotation, myContainingClass) ); for (int i = 0; i < setters.length; i++) { builderClass.getTypeParameterList().addParameter(new InitializerTypeParameter(builderClass, i)); } for (int i = 0; i < setters.length; i++) { builderClass.addMethod(createFieldSetter(builderClass, setters[i], annotation, i)); } return builderClass.addMethod(createBuildMethod(annotation, builderClass)); }