docs: public static FullTypeSignature getTypeSignature(String typeSignatureString,
  			boolean useInternalFormFullyQualifiedName) {
  		String key;
  		if (!useInternalFormFullyQualifiedName) {
  			key = typeSignatureString.replace('.', '/')
  					.replace('$', '.');
  		} else {
  			key = typeSignatureString;
  		}
  
  		// we always use the internal form as a key for cache
  		FullTypeSignature typeSignature = typeSignatureCache
  				.get(key);
  		if (typeSignature == null) {
  			ClassFileTypeSignatureParser typeSignatureParser = new ClassFileTypeSignatureParser(
  					typeSignatureString);
  			typeSignatureParser.setUseInternalFormFullyQualifiedName(useInternalFormFullyQualifiedName);
  			typeSignature = typeSignatureParser.parseTypeSignature();
  			typeSignatureCache.put(typeSignatureString, typeSignature);
  		}
  		return typeSignature;
  	}