1 19 20 package edu.umd.cs.findbugs.filter; 21 22 import java.util.StringTokenizer ; 23 24 27 public class SignatureUtil { 28 29 public static String createMethodSignature(String params, String returns) { 30 StringBuffer buf = new StringBuffer (); 31 32 buf.append('('); 33 StringTokenizer tok = new StringTokenizer (params, " \t\n\r\f,"); 34 while (tok.hasMoreTokens()) { 35 String param = typeToSignature(tok.nextToken()); 36 buf.append(param); 37 } 38 buf.append(')'); 39 buf.append(typeToSignature(returns)); 40 41 return buf.toString(); 42 } 43 44 public static String createFieldSignature(String type) { 45 return typeToSignature(type); 46 } 47 48 private static String typeToSignature(String type) { 49 if(type.endsWith("[]")) { 50 return "[" + typeToSignature(type.substring(0, type.length() - 2)); 51 } else { 52 return scalarTypeToSiganture(type); 53 } 54 } 55 56 private static String scalarTypeToSiganture(String type) { 57 if (type.equals("boolean")) 58 return "Z"; 59 else if (type.equals("byte")) 60 return "B"; 61 else if (type.equals("char")) 62 return "C"; 63 else if (type.equals("short")) 64 return "S"; 65 else if (type.equals("int")) 66 return "I"; 67 else if (type.equals("long")) 68 return "J"; 69 else if (type.equals("float")) 70 return "F"; 71 else if (type.equals("double")) 72 return "D"; 73 else if (type.equals("void")) 74 return "V"; 75 else 76 return "L" + type.replace('.', '/') + ";"; 77 } 78 } 79 | Popular Tags |