private static String getClassSignature(TypeElement element) throws IOException
    {
        Result sb = new Result();
        formalTypeParameters(sb, element.getTypeParameters());
        TypeMirror superclass = element.getSuperclass();
        // SuperclassSignature:
        //     ClassTypeSignature
        if (superclass != null)
        {
            classTypeSignature(sb, superclass);
        }
        // SuperinterfaceSignature:
        //    ClassTypeSignature
        for (TypeMirror intf : element.getInterfaces())
        {
            classTypeSignature(sb, intf);
        }
        return sb.toString();
    }
private static String getClassSignature ( TypeElement element ) throws IOException { Result sb = new Result ( ) ; formalTypeParameters ( sb , element . getTypeParameters ( ) ) ; TypeMirror superclass = element . getSuperclass ( ) ; if ( superclass != null ) { classTypeSignature ( sb , superclass ) ; } for ( TypeMirror intf : element . getInterfaces ( ) ) { classTypeSignature ( sb , intf ) ; } return sb . toString ( ) ; }
ClassSignature:
FormalTypeParametersopt SuperclassSignature SuperinterfaceSignature*

<U:Ljava/lang/Integer;:Ljava/io/Serializable;>Lorg/vesalainen/bcc/Test;Ljava/lang/Cloneable;;

@param clazz
@return