result.setMetadata((T) CharacterSet.valueOf(metadata.toString())); break; result.setMetadata((T) Encoding.valueOf(metadata.toString())); break; result.setMetadata((T) Language.valueOf(metadata.toString())); break; result.setMetadata((T) MediaType.valueOf(metadata.toString())); break; result.setMetadata((T) new CharacterSet(metadata.toString())); break; result.setMetadata((T) new Encoding(metadata.toString())); break; result.setMetadata((T) new Language(metadata.toString())); break; result.setMetadata((T) new MediaType(metadata.toString(), mediaParams)); break;