private static TypeReference adjustType(final TypeReference type, final int flags) { if (testAny(flags, FLAG_BOOLEAN_PROHIBITED) && type == BuiltinTypes.Boolean) { return BuiltinTypes.Integer; } return type; }
public static String toString(final long flags, final Kind kind) { final StringBuilder buf = new StringBuilder(); String sep = ""; for (final Flag s : asFlagSet(flags, kind)) { buf.append(sep); buf.append(s.name()); sep = ", "; } return buf.toString(); }
@Override public final int getModifiers() { return Flags.toModifiers(getFlags()); }
private void writeMethodHeader(final ITextOutput output, final MethodDefinition method) { final String name = method.getName(); final long flags = Flags.fromStandardFlags(method.getFlags(), Flags.Kind.Method); final List<String> flagStrings = new ArrayList<>(); final EnumSet<Flags.Flag> flagSet = Flags.asFlagSet(flags & Flags.MethodFlags, Flags.Kind.Method); if (Flags.testAny(flags, Flags.ACC_VARARGS | Flags.VARARGS) && i == parameters.size() - 1) { DecompilerHelpers.writeType(output, parameter.getParameterType().getElementType(), NameSyntax.TYPE_NAME, false); output.writeDelimiter("..."); for (final Flags.Flag flag : Flags.asFlagSet(flags & (Flags.MethodFlags | ~Flags.StandardFlags), Flags.Kind.Method)) { flagStrings.add(flag.name());
protected StringBuilder appendErasedDescription(final StringBuilder sb) { StringBuilder s = sb; for (final Modifier modifier : Flags.asModifierSet(getModifiers())) { s.append(modifier.toString()); s.append(' '); } s = getFieldType().getRawType().appendErasedDescription(s); s.append(' '); s.append(getName()); return s; }
methodDefinition.setFlags(Flags.fromStandardFlags(method.accessFlags, Flags.Kind.Method)); methodDefinition.setDeclaringType(_typeDefinition); if (_typeDefinition.isInterface() && !Flags.testAny(method.accessFlags, Flags.ABSTRACT)) { methodDefinition.setFlags(methodDefinition.getFlags() | Flags.DEFAULT); if (!Flags.testAny(methodDefinition.getFlags(), Flags.STATIC)) { ++slot; if (Flags.testAny(_typeDefinition.getFlags(), Flags.ANONYMOUS)) { methodDefinition.setFlags(methodDefinition.getFlags() | Flags.ANONCONSTR | Flags.SYNTHETIC); if (Flags.testAny(method.accessFlags, Flags.STRICTFP)) { _typeDefinition.setFlags(_typeDefinition.getFlags() | Flags.STRICTFP);
@Override public String toString() { return "InnerClassEntry{" + "InnerClassName='" + _innerClassName + '\'' + ", OuterClassName='" + _outerClassName + '\'' + ", ShortName='" + _shortName + '\'' + ", AccessFlags=[" + Flags.toString(_accessFlags) + "]}"; } }
fieldDefinition.setFlags(Flags.fromStandardFlags(field.accessFlags, Flags.Kind.Field)); fieldDefinition.setName(field.name);
private void writeMethodHeader(final ITextOutput output, final MethodDefinition method) { final String name = method.getName(); final long flags = Flags.fromStandardFlags(method.getFlags(), Flags.Kind.Method); final List<String> flagStrings = new ArrayList<>(); final EnumSet<Flags.Flag> flagSet = Flags.asFlagSet(flags & Flags.MethodFlags, Flags.Kind.Method); if (Flags.testAny(flags, Flags.ACC_VARARGS | Flags.VARARGS) && i == parameters.size() - 1) { DecompilerHelpers.writeType(output, parameter.getParameterType().getElementType(), NameSyntax.TYPE_NAME, false); output.writeDelimiter("..."); for (final Flags.Flag flag : Flags.asFlagSet(flags & (Flags.MethodFlags | ~Flags.StandardFlags), Flags.Kind.Method)) { flagStrings.add(flag.name());
protected StringBuilder appendErasedDescription(final StringBuilder sb) { StringBuilder s = sb; for (final Modifier modifier : Flags.asModifierSet(getModifiers())) { s.append(modifier.toString()); s.append(' '); } s = getFieldType().getRawType().appendErasedDescription(s); s.append(' '); s.append(getName()); return s; }
methodDefinition.setFlags(Flags.fromStandardFlags(method.accessFlags, Flags.Kind.Method)); methodDefinition.setDeclaringType(_typeDefinition); if (_typeDefinition.isInterface() && !Flags.testAny(method.accessFlags, Flags.ABSTRACT)) { methodDefinition.setFlags(methodDefinition.getFlags() | Flags.DEFAULT); if (!Flags.testAny(methodDefinition.getFlags(), Flags.STATIC)) { ++slot; if (Flags.testAny(_typeDefinition.getFlags(), Flags.ANONYMOUS)) { methodDefinition.setFlags(methodDefinition.getFlags() | Flags.ANONCONSTR | Flags.SYNTHETIC); if (Flags.testAny(method.accessFlags, Flags.STRICTFP)) { _typeDefinition.setFlags(_typeDefinition.getFlags() | Flags.STRICTFP);
@Override public String toString() { return "InnerClassEntry{" + "InnerClassName='" + _innerClassName + '\'' + ", OuterClassName='" + _outerClassName + '\'' + ", ShortName='" + _shortName + '\'' + ", AccessFlags=[" + Flags.toString(_accessFlags) + "]}"; } }
fieldDefinition.setFlags(Flags.fromStandardFlags(field.accessFlags, Flags.Kind.Field)); fieldDefinition.setName(field.name); fieldDefinition.setFieldType(fieldType);
private static TypeReference adjustType(final TypeReference type, final int flags) { if (testAny(flags, FLAG_BOOLEAN_PROHIBITED) && type == BuiltinTypes.Boolean) { return BuiltinTypes.Integer; } return type; }
private void writeMethodHeader(final ITextOutput output, final MethodDefinition method, final DecompilationOptions options) { final String name = method.getName(); final long flags = Flags.fromStandardFlags(method.getFlags(), Flags.Kind.Method); final List<String> flagStrings = new ArrayList<>(); final BytecodeOutputOptions formattingOptions = getBytecodeOptions(options); final EnumSet<Flags.Flag> flagSet = Flags.asFlagSet(flags & Flags.MethodFlags, Flags.Kind.Method); if (Flags.testAny(flags, Flags.ACC_VARARGS | Flags.VARARGS) && i == parameters.size() - 1) { DecompilerHelpers.writeType(output, parameter.getParameterType().getElementType(), NameSyntax.TYPE_NAME, false); output.writeDelimiter("..."); for (final Flags.Flag flag : Flags.asFlagSet(flags & (Flags.MethodFlags | ~Flags.StandardFlags), Flags.Kind.Method)) { flagStrings.add(flag.name());
protected StringBuilder appendErasedDescription(final StringBuilder sb) { StringBuilder s = sb; for (final Modifier modifier : Flags.asModifierSet(getModifiers())) { s.append(modifier.toString()); s.append(' '); } s = getFieldType().getRawType().appendErasedDescription(s); s.append(' '); s.append(getName()); return s; }
methodDefinition.setFlags(Flags.fromStandardFlags(method.accessFlags, Flags.Kind.Method)); methodDefinition.setDeclaringType(_typeDefinition); if (_typeDefinition.isInterface() && !Flags.testAny(method.accessFlags, Flags.ABSTRACT)) { methodDefinition.setFlags(methodDefinition.getFlags() | Flags.DEFAULT); if (!Flags.testAny(methodDefinition.getFlags(), Flags.STATIC)) { ++slot; if (Flags.testAny(_typeDefinition.getFlags(), Flags.ANONYMOUS)) { methodDefinition.setFlags(methodDefinition.getFlags() | Flags.ANONCONSTR | Flags.SYNTHETIC); if (Flags.testAny(method.accessFlags, Flags.STRICTFP)) { _typeDefinition.setFlags(_typeDefinition.getFlags() | Flags.STRICTFP);
public static String toString(final long flags) { final StringBuilder buf = new StringBuilder(); String sep = ""; for (final Flag s : asFlagSet(flags)) { buf.append(sep); buf.append(s.name()); sep = ", "; } return buf.toString(); }