this.contentOctets = original.getFullContentOctets();
this.bodyStartOctet = (int) (original.getFullContentOctets() - original.getBodyOctets());
this.internalDate = original.getInternalDate();
PropertyBuilder pBuilder = new PropertyBuilder(original.getProperties());
this.textualLineCount = original.getTextualLineCount();
this.mediaType = original.getMediaType();
this.subType = original.getSubType();
final List<Property> properties = pBuilder.toProperties();
this.properties = new ArrayList<JPAProperty>(properties.size());
int order = 0;
for (final Property property:properties) {
this.properties.add(new JPAProperty(property, order++));
}