public static String hashMethodSignature(String signature) { SignatureParser parser = new SignatureParser(signature); StringBuilder buf = new StringBuilder("("); for (Iterator<String> i = parser.parameterSignatureIterator(); i.hasNext();) { String param = i.next(); buf.append(hashSignature(param)); } buf.append(")"); buf.append(hashSignature(parser.getReturnTypeSignature())); return buf.toString(); }
public static String hashSignature(String signature) { char firstChar = signature.charAt(0); switch (firstChar) { case '[': return '[' + hashSignature(signature.substring(1)); case 'V': case 'Z': case 'B': case 'S': case 'C': case 'I': case 'J': case 'D': case 'F': if (signature.length() == 1) { return signature; } throw new IllegalArgumentException("bad signature: " + signature); case 'L': if (!signature.endsWith(";")) { throw new IllegalArgumentException("bad signature: " + signature); } return hashFieldSignature(signature); default: throw new IllegalArgumentException("bad signature: " + signature); } }
static TypeAnnotation obfuscate(TypeAnnotation m) { TypeAnnotation result = new TypeAnnotation(hashSignature(m.getTypeDescriptor())); result.setDescription(m.getDescription()); return result; }
static FieldAnnotation obfuscate(FieldAnnotation m) { FieldAnnotation result = new FieldAnnotation(hashClass(m.getClassName()), hashData(m.getFieldName()), hashSignature(m.getFieldSignature()), m.isStatic()); result.setDescription(m.getDescription()); return result; }
public static String hashMethodSignature(String signature) { SignatureParser parser = new SignatureParser(signature); StringBuilder buf = new StringBuilder("("); for (Iterator<String> i = parser.parameterSignatureIterator(); i.hasNext();) { String param = i.next(); buf.append(hashSignature(param)); } buf.append(")"); buf.append(hashSignature(parser.getReturnTypeSignature())); return buf.toString(); }
public static String hashSignature(String signature) { char firstChar = signature.charAt(0); switch (firstChar) { case '[': return '[' + hashSignature(signature.substring(1)); case 'V': case 'Z': case 'B': case 'S': case 'C': case 'I': case 'J': case 'D': case 'F': if (signature.length() == 1) { return signature; } throw new IllegalArgumentException("bad signature: " + signature); case 'L': if (!signature.endsWith(";")) { throw new IllegalArgumentException("bad signature: " + signature); } return hashFieldSignature(signature); default: throw new IllegalArgumentException("bad signature: " + signature); } }
static TypeAnnotation obfuscate(TypeAnnotation m) { TypeAnnotation result = new TypeAnnotation(hashSignature(m.getTypeDescriptor())); result.setDescription(m.getDescription()); return result; }
static FieldAnnotation obfuscate(FieldAnnotation m) { FieldAnnotation result = new FieldAnnotation(hashClass(m.getClassName()), hashData(m.getFieldName()), hashSignature(m.getFieldSignature()), m.isStatic()); result.setDescription(m.getDescription()); return result; }