code: public static TypeName typeName(String typeName) {
  		TypeName[] values = { TypeName.BOOLEAN, TypeName.BYTE, TypeName.CHAR, TypeName.DOUBLE, TypeName.FLOAT,
  				TypeName.INT, TypeName.LONG, TypeName.SHORT, TypeName.VOID };
  
  		for (TypeName item : values) {
  			if (item.toString().equals(typeName)) {
  				return item;
  			}
  		}
  
  		LiteralType literalName = LiteralType.of(typeName);
  		if (literalName.isParametrizedType()) {
  			return ParameterizedTypeName.get(className(literalName.getRawType()),
  					typeName(literalName.getTypeParameter()));
  		}
  		if (literalName.isArray()) {
  			return ArrayTypeName.of(typeName(literalName.getRawType()));
  		}
  
  		return ClassName.bestGuess(typeName);
  	}
docs: Convert a TypeMirror in a typeName, or classname or whatever.
  
  @param typeName
  the type name
  @return typeName