Beispiel #1
0
EmailPartPtr EmailAdapter::ParseEmailPart(const MojObject& partObj)
{
	MojErr err;

	MojString type;
	err = partObj.getRequired(Part::TYPE, type);
	ErrorToException(err);

	EmailPartPtr emailPart = boost::make_shared<EmailPart>( GetPartType(type) );

	MojObject id;
	err = partObj.getRequired(DatabaseAdapter::ID, id);
	ErrorToException(err);
	emailPart->SetId(id);

	emailPart->SetLocalFilePath( DatabaseAdapter::GetOptionalString(partObj, Part::PATH) );
	emailPart->SetDisplayName( DatabaseAdapter::GetOptionalString(partObj, Part::NAME) );
	emailPart->SetContentId( DatabaseAdapter::GetOptionalString(partObj, Part::CONTENT_ID) );
	emailPart->SetMimeType( DatabaseAdapter::GetOptionalString(partObj, Part::MIME_TYPE) );
	emailPart->SetEncoding( DatabaseAdapter::GetOptionalString(partObj, Part::ENCODING) );
	emailPart->SetCharset( DatabaseAdapter::GetOptionalString(partObj, Part::CHARSET) );
	emailPart->SetSection( DatabaseAdapter::GetOptionalString(partObj, Part::SECTION) );

	if(partObj.contains(Part::ESTIMATED_SIZE)) {
		MojInt64 estimatedSize = -1;
		err = partObj.getRequired(Part::ESTIMATED_SIZE, estimatedSize);
		emailPart->SetEstimatedSize(estimatedSize);
	}

	if(partObj.contains(Part::ENCODED_SIZE)) {
		MojInt64 encodedSize = -1;
		err = partObj.getRequired(Part::ENCODED_SIZE, encodedSize);
		emailPart->SetEncodedSize(encodedSize);
	}

	return emailPart;
}