protected String hash(Field f) {
        requireNonNull(f);
        
        final String prefix = "hash = 31 * hash + (";
        final String suffix = ".hashCode(this." + f.getName() + "));";
        
        switch (f.getType().getTypeName()) {
            case "byte":
                return prefix + "Byte" + suffix;
            case "short":
                return prefix + "Short" + suffix;
            case "int":
                return prefix + "Integer" + suffix;
            case "long":
                return prefix + "Long" + suffix;
            case "float":
                return prefix + "Float" + suffix;
            case "double":
                return prefix + "Double" + suffix;
            case "boolean":
                return prefix + "Boolean" + suffix;
            case "char":
                return prefix + "Character" + suffix;
            default:
                return prefix + "Objects" + suffix;
        }
    }
Generates code for hashing the specified field.

@param f  the field
@return   the hashing code
common-parent/codegen/src/main/java/com/speedment/common/codegen/controller/AutoEquals.java