List<PsiMethod> (@NotNull TransformationContext context) { PsiManagerEx manager = getManager(); PsiElementFactory factory = JavaPsiFacade.getElementFactory(getProject()); PsiClassType thisType = context.eraseClassType(factory.createType(this, PsiSubstitutor.EMPTY)); List<PsiMethod> result = Arrays.asList( new LightMethodBuilder(manager, GroovyLanguage.INSTANCE, "values") .setMethodReturnType(new PsiArrayType(thisType)) .setContainingClass(this) .addModifier(PsiModifier.PUBLIC) .addModifier(PsiModifier.STATIC), new LightMethodBuilder(manager, GroovyLanguage.INSTANCE, "next") .setMethodReturnType(thisType) .setContainingClass(this) .addModifier(PsiModifier.PUBLIC), new LightMethodBuilder(manager, GroovyLanguage.INSTANCE, "previous") .setMethodReturnType(thisType) .setContainingClass(this) .addModifier(PsiModifier.PUBLIC), new LightMethodBuilder(manager, GroovyLanguage.INSTANCE, "valueOf") .setMethodReturnType(thisType) .setContainingClass(this) .addParameter("name", CommonClassNames.JAVA_LANG_STRING) .addModifier(PsiModifier.PUBLIC) .addModifier(PsiModifier.STATIC) ); for (PsiMethod method : result) { method.putUserData(PREDEFINED_ENUM_METHOD, true); } return result; }