A part always has a name and value. The value may be a String, Bytes, or the contents of a File.
A character encoding may be specified for any of these, and the content type and a file name may additionally be specified for the Bytes and File types.
Note: when this class is used with sensitive data, be careful in persisting sensitive information.