Icon () { if (isAnnotationType()) return JetgroovyIcons.Groovy.AnnotationType; if (isTrait()) return JetgroovyIcons.Groovy.Trait; if (isInterface()) return JetgroovyIcons.Groovy.Interface; if (isEnum()) return JetgroovyIcons.Groovy.Enum; if (this instanceof GrRecordDefinition) { return JetgroovyIcons.Groovy.Record; } if (hasModifierProperty(PsiModifier.ABSTRACT)) return JetgroovyIcons.Groovy.AbstractClass; return JetgroovyIcons.Groovy.Class; }