*/
public static Part getRawPart(HashMap<String, ByteArray> partByteArrays,
ContentTypeManager ctm, String resolvedPartUri, Relationship rel)
throws Docx4JException {
Part part = null;
InputStream is = null;
try {
try {
log.debug("resolved uri: " + resolvedPartUri);
is = getInputStreamFromZippedPart( partByteArrays, resolvedPartUri);
// Get a subclass of Part appropriate for this content type
// This will throw UnrecognisedPartException in the absence of
// specific knowledge. Hence it is important to get the is
// first, as we do above.
part = ctm.getPart("/" + resolvedPartUri, rel);
log.info("ctm returned " + part.getClass().getName() );
if (part instanceof org.docx4j.openpackaging.parts.ThemePart) {
((org.docx4j.openpackaging.parts.JaxbXmlPart)part).setJAXBContext(Context.jcThemePart);
((org.docx4j.openpackaging.parts.JaxbXmlPart)part).unmarshal( is );
} else if (part instanceof org.docx4j.openpackaging.parts.DocPropsCorePart ) {
((org.docx4j.openpackaging.parts.JaxbXmlPart)part).setJAXBContext(Context.jcDocPropsCore);
((org.docx4j.openpackaging.parts.JaxbXmlPart)part).unmarshal( is );
} else if (part instanceof org.docx4j.openpackaging.parts.DocPropsCustomPart ) {
((org.docx4j.openpackaging.parts.JaxbXmlPart)part).setJAXBContext(Context.jcDocPropsCustom);
((org.docx4j.openpackaging.parts.JaxbXmlPart)part).unmarshal( is );
} else if (part instanceof org.docx4j.openpackaging.parts.DocPropsExtendedPart ) {
((org.docx4j.openpackaging.parts.JaxbXmlPart)part).setJAXBContext(Context.jcDocPropsExtended);
((org.docx4j.openpackaging.parts.JaxbXmlPart)part).unmarshal( is );
} else if (part instanceof org.docx4j.openpackaging.parts.CustomXmlDataStoragePropertiesPart ) {
((org.docx4j.openpackaging.parts.JaxbXmlPart)part).setJAXBContext(Context.jcCustomXmlProperties);
((org.docx4j.openpackaging.parts.JaxbXmlPart)part).unmarshal( is );
} else if (part instanceof org.docx4j.openpackaging.parts.digitalsignature.XmlSignaturePart ) {
((org.docx4j.openpackaging.parts.JaxbXmlPart)part).setJAXBContext(Context.jcXmlDSig);
((org.docx4j.openpackaging.parts.JaxbXmlPart)part).unmarshal( is );
} else if (part instanceof org.docx4j.openpackaging.parts.JaxbXmlPart) {
// MainDocument part, Styles part, Font part etc
//((org.docx4j.openpackaging.parts.JaxbXmlPart)part).setJAXBContext(Context.jc);
((org.docx4j.openpackaging.parts.JaxbXmlPart)part).unmarshal( is );
} else if (part instanceof org.docx4j.openpackaging.parts.WordprocessingML.BinaryPart) {
log.debug("Detected BinaryPart " + part.getClass().getName() );
((BinaryPart)part).setBinaryData(is);
} else if (part instanceof org.docx4j.openpackaging.parts.CustomXmlDataStoragePart ) {
// Is it a part we know?
try {
Unmarshaller u = Context.jc.createUnmarshaller();
Object o = u.unmarshal( is );
log.debug(o.getClass().getName());
PartName name = part.getPartName();
if (o instanceof CoverPageProperties) {
part = new DocPropsCoverPagePart(name);
((DocPropsCoverPagePart)part).setJaxbElement(