public String getClassName() { return remapper.mapType(className); }
/** * Get renamed class name. * * @return */ public String getClassName() { return remapper.mapType(className); }
@Override public void visit(int version, int access, String name, String signature, String superName, String[] interfaces) { // For java/lang/Object redefinition String newName = remapper.mapType(name); if (newName.equals("java/lang/Object")) { superName = null; isObject = true; } super.visit(version, access, name, signature, superName, interfaces); }
/** * Returns the given descriptor, remapped with {@link #map(String)}. * * @param descriptor a type descriptor. * @return the given descriptor, with its [array element type] internal name remapped with {@link * #map(String)} (if the descriptor corresponds to an array or object type, otherwise the * descriptor is returned as is). */ public String mapDesc(final String descriptor) { return mapType(Type.getType(descriptor)).getDescriptor(); }
@Override public void visitProvide(final String service, final String... providers) { String[] remappedProviders = new String[providers.length]; for (int i = 0; i < providers.length; ++i) { remappedProviders[i] = remapper.mapType(providers[i]); } super.visitProvide(remapper.mapType(service), remappedProviders); } }
@Override public void visitInnerClassType(final String name) { String remappedOuter = remapper.mapType(className) + '$'; className = className + '$' + name; String remappedName = remapper.mapType(className); int index = remappedName.startsWith(remappedOuter) ? remappedOuter.length() : remappedName.lastIndexOf('$') + 1; signatureVisitor.visitInnerClassType(remappedName.substring(index)); }
/** * Returns the given internal name, remapped with {@link #map(String)}. * * @param internalName the internal name (or array type descriptor) of some (array) class. * @return the given internal name, remapped with {@link #map(String)}. */ public String mapType(final String internalName) { if (internalName == null) { return null; } return mapType(Type.getObjectType(internalName)).getInternalName(); }
@Override public void visitClassType(final String name) { classNames.add(name); signatureVisitor.visitClassType(remapper.mapType(name)); }
@Override public void visitClassType(final String name) { className = name; signatureVisitor.visitClassType(remapper.mapType(name)); }
@Override public void visitTryCatchBlock( final Label start, final Label end, final Label handler, final String type) { super.visitTryCatchBlock(start, end, handler, type == null ? null : remapper.mapType(type)); }
@Override public void visitTryCatchBlock( final Label start, final Label end, final Label handler, final String type) { super.visitTryCatchBlock(start, end, handler, type == null ? null : remapper.mapType(type)); }
@Override public void visitInnerClass( final String name, final String outerName, final String innerName, final int access) { super.visitInnerClass( remapper.mapType(name), outerName == null ? null : remapper.mapType(outerName), innerName == null ? null : remapper.mapInnerClassName(name, outerName, innerName), access); }
public String mapType(String type) { if (type == null) { return null; } return mapType(Type.getObjectType(type)).getInternalName(); }
@Override public void visitFieldInsn( final int opcode, final String owner, final String name, final String descriptor) { super.visitFieldInsn( opcode, remapper.mapType(owner), remapper.mapFieldName(owner, name, descriptor), remapper.mapDesc(descriptor)); }
@Override public void visitFieldInsn( final int opcode, final String owner, final String name, final String descriptor) { super.visitFieldInsn( opcode, remapper.mapType(owner), remapper.mapFieldName(owner, name, descriptor), remapper.mapDesc(descriptor)); }
@Override public void visitOuterClass(final String owner, final String name, final String descriptor) { super.visitOuterClass( remapper.mapType(owner), name == null ? null : remapper.mapMethodName(owner, name, descriptor), descriptor == null ? null : remapper.mapMethodDesc(descriptor)); }
@Override public void visitOuterClass(final String owner, final String name, final String descriptor) { super.visitOuterClass( remapper.mapType(owner), name == null ? null : remapper.mapMethodName(owner, name, descriptor), descriptor == null ? null : remapper.mapMethodDesc(descriptor)); }
public Object mapValue(Object value) { if (value instanceof Type) { return mapType((Type) value); } if (value instanceof Handle) { Handle h = (Handle) value; return new Handle(h.getTag(), mapType(h.getOwner()), mapMethodName( h.getOwner(), h.getName(), h.getDesc()), mapMethodDesc(h.getDesc()), h.isInterface()); } return value; }