private FetchResponse.BodyElement bodyFetch(final MessageResult messageResult, BodyFetchElement fetchElement) throws MailboxException {
final Long firstOctet = fetchElement.getFirstOctet();
final Long numberOfOctets = fetchElement.getNumberOfOctets();
final String name = fetchElement.getResponseName();
final int specifier = fetchElement.getSectionType();
final int[] path = fetchElement.getPath();
final Collection<String> names = fetchElement.getFieldNames();
final boolean isBase = (path == null || path.length == 0);
final FetchResponse.BodyElement fullResult = bodyContent(messageResult, name, specifier, path, names, isBase);
final FetchResponse.BodyElement result = wrapIfPartialFetch(firstOctet, numberOfOctets, fullResult);
return result;
}