if (name.length() != 0) return "L" + name.replace('.', '/') + ";";
if (name.length() != 0) {    if (name.charAt(0)=='[' && name.charAt(name.length()-1)==';') return name; else return "L" + name.replace('.', '/') + ";"; }
    private static String nameToSignature(String name) {        if (name.equals("byte")) return "B";        if (name.equals("char")) return "C";        if (name.equals("double")) return "D";        if (name.equals("float")) return "F";        if (name.equals("int")) return "I";        if (name.equals("long")) return "J";        if (name.equals("short")) return "S";        if (name.equals("boolean")) return "Z";        if (name.equals("void")) return "V";        if (name.endsWith("[]"))             return "[" + nameToSignature(name.substring(0, name.length() - 2));        if (name.length() != 0)  // lots more tests could be made here...            return "L" + name.replace('.', '/') + ";";        else             throw new BCException("Bad type name: " + name);    }