void (PsiModifierListOwner element, int options, StringBuilder buffer) { PsiModifierList list = element.getModifierList(); if (list == null) return; if (!BitUtil.isSet(options, SHOW_REDUNDANT_MODIFIERS) ? list.hasExplicitModifier(PsiModifier.PUBLIC) : list.hasModifierProperty(PsiModifier.PUBLIC)) { appendModifier(buffer, PsiModifier.PUBLIC); } if (list.hasModifierProperty(PsiModifier.PROTECTED)) { appendModifier(buffer, PsiModifier.PROTECTED); } if (list.hasModifierProperty(PsiModifier.PRIVATE)) { appendModifier(buffer, PsiModifier.PRIVATE); } if (!BitUtil.isSet(options, SHOW_REDUNDANT_MODIFIERS) ? list.hasExplicitModifier(PsiModifier.PACKAGE_LOCAL) : list.hasModifierProperty(PsiModifier.PACKAGE_LOCAL)) { if (element instanceof PsiClass && element.getParent() instanceof PsiDeclarationStatement) { // local class append(buffer, JavaPsiBundle.message("local.class.preposition")); } else { appendModifier(buffer, PsiModifier.PACKAGE_LOCAL); } } if (!BitUtil.isSet(options, SHOW_REDUNDANT_MODIFIERS) ? list.hasExplicitModifier(PsiModifier.STATIC) : list.hasModifierProperty(PsiModifier.STATIC)) { if (!BitUtil.isSet(options, JAVADOC_MODIFIERS_ONLY) || !(element instanceof PsiClass && ((PsiClass)element).isEnum())) { appendModifier(buffer, PsiModifier.STATIC); } } boolean isInterface = element instanceof PsiClass && ((PsiClass)element).isInterface(); if (!isInterface && //cls modifier list (!BitUtil.isSet(options, SHOW_REDUNDANT_MODIFIERS) ? list.hasExplicitModifier(PsiModifier.ABSTRACT) : list.hasModifierProperty(PsiModifier.ABSTRACT))) appendModifier(buffer, PsiModifier.ABSTRACT); if (!BitUtil.isSet(options, SHOW_REDUNDANT_MODIFIERS) ? list.hasExplicitModifier(PsiModifier.FINAL) : list.hasModifierProperty(PsiModifier.FINAL)) { if (!BitUtil.isSet(options, JAVADOC_MODIFIERS_ONLY) || !(element instanceof PsiClass && ((PsiClass)element).isEnum())) { appendModifier(buffer, PsiModifier.FINAL); } } if (list.hasModifierProperty(PsiModifier.NATIVE) && !BitUtil.isSet(options, JAVADOC_MODIFIERS_ONLY)) { appendModifier(buffer, PsiModifier.NATIVE); } if (list.hasModifierProperty(PsiModifier.SYNCHRONIZED) && !BitUtil.isSet(options, JAVADOC_MODIFIERS_ONLY)) { appendModifier(buffer, PsiModifier.SYNCHRONIZED); } if (list.hasModifierProperty(PsiModifier.STRICTFP) && !BitUtil.isSet(options, JAVADOC_MODIFIERS_ONLY)) { appendModifier(buffer, PsiModifier.STRICTFP); } if (list.hasModifierProperty(PsiModifier.TRANSIENT) && element instanceof PsiVariable) { // javac 5 puts transient attr for methods appendModifier(buffer, PsiModifier.TRANSIENT); } if (list.hasModifierProperty(PsiModifier.VOLATILE)) { appendModifier(buffer, PsiModifier.VOLATILE); } }