From 3588ba6ac25f1a03c1c9e71fdcaf1f9788205ab5 Mon Sep 17 00:00:00 2001 From: moparisthebest Date: Thu, 11 Jul 2019 01:24:54 -0400 Subject: [PATCH] Handle 1.8+ Modifier.DEFAULT as PUBLIC for old code --- .../declaration/ConvertDeclaration.java | 21 ++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) diff --git a/core/src/main/java/com/moparisthebest/mirror/declaration/ConvertDeclaration.java b/core/src/main/java/com/moparisthebest/mirror/declaration/ConvertDeclaration.java index 562fed6..ba9e743 100755 --- a/core/src/main/java/com/moparisthebest/mirror/declaration/ConvertDeclaration.java +++ b/core/src/main/java/com/moparisthebest/mirror/declaration/ConvertDeclaration.java @@ -35,6 +35,18 @@ import java.util.*; public class ConvertDeclaration extends Convertable implements com.sun.mirror.declaration.Declaration { + private static final Modifier MODIFIER_DEFAULT; + + static { + Modifier defaultModifier = null; + try { + defaultModifier = Modifier.valueOf("DEFAULT"); + } catch (Throwable e) { + // ignore this, must not be running in 1.8+ + } + MODIFIER_DEFAULT = defaultModifier; + } + public static Messager messager = null; public static Elements elements = null; protected final javax.lang.model.element.Element internalElement; @@ -138,7 +150,14 @@ public class ConvertDeclaration extends Convertable implem @Override public Collection getModifiers() { - return Convertable.convertEnums(internalElement.getModifiers(), com.sun.mirror.declaration.Modifier.class); + Set modifiers = internalElement.getModifiers(); + // handle 1.8 DEFAULT here carefully, should just be like PUBLIC for 1.5 code... + if (MODIFIER_DEFAULT != null && modifiers.contains(MODIFIER_DEFAULT)) { + modifiers = new HashSet(modifiers); // copy + modifiers.remove(MODIFIER_DEFAULT); + modifiers.add(Modifier.PUBLIC); + } + return Convertable.convertEnums(modifiers, com.sun.mirror.declaration.Modifier.class); } @Override