Changeset 1302
- Timestamp:
- 11/11/10 08:15:34 (19 months ago)
- Location:
- trunk/docx4j/src/main/java/org/docx4j
- Files:
-
- 9 edited
-
convert/in/FlatOpcXmlImporter.java (modified) (3 diffs)
-
openpackaging/contenttype/ContentTypeManager.java (modified) (6 diffs)
-
openpackaging/io/Load.java (modified) (2 diffs)
-
openpackaging/io/LoadFromZipFile.java (modified) (3 diffs)
-
openpackaging/io/LoadFromZipNG.java (modified) (4 diffs)
-
openpackaging/packages/WordprocessingMLPackage.java (modified) (1 diff)
-
openpackaging/parts/WordprocessingML/BinaryPartAbstractImage.java (modified) (2 diffs)
-
openpackaging/parts/relationships/Namespaces.java (modified) (1 diff)
-
samples/ImportForeignPart.java (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
trunk/docx4j/src/main/java/org/docx4j/convert/in/FlatOpcXmlImporter.java
r1274 r1302 316 316 String relationshipType = r.getType(); 317 317 318 Part part = getRawPart(ctm, resolvedPartUri );318 Part part = getRawPart(ctm, resolvedPartUri,r); 319 319 rp.loadPart(part, r); 320 320 handled.put(resolvedPartUri, resolvedPartUri); … … 382 382 * @throws InvalidFormatException 383 383 */ 384 public Part getRawPart(ContentTypeManager ctm, String resolvedPartUri )384 public Part getRawPart(ContentTypeManager ctm, String resolvedPartUri, Relationship rel) 385 385 throws Docx4JException { 386 386 … … 408 408 } 409 409 410 part = ctm.newPartForContentType(contentType, resolvedPartUri );410 part = ctm.newPartForContentType(contentType, resolvedPartUri,rel); 411 411 part.setContentType( new ContentType(contentType) ); 412 412 -
trunk/docx4j/src/main/java/org/docx4j/openpackaging/contenttype/ContentTypeManager.java
r1229 r1302 84 84 import org.docx4j.openpackaging.parts.PresentationML.JaxbPmlPart; 85 85 import org.docx4j.openpackaging.parts.SpreadsheetML.JaxbSmlPart; 86 import org.docx4j.openpackaging.parts.WordprocessingML.AlternativeFormatInputPart; 86 87 import org.docx4j.openpackaging.parts.WordprocessingML.BinaryPart; 87 88 import org.docx4j.openpackaging.parts.WordprocessingML.CommentsPart; … … 100 101 import org.docx4j.openpackaging.parts.WordprocessingML.StyleDefinitionsPart; 101 102 import org.docx4j.openpackaging.parts.WordprocessingML.WebSettingsPart; 103 import org.docx4j.openpackaging.parts.relationships.Namespaces; 104 import org.docx4j.relationships.Relationship; 102 105 103 106 … … 231 234 232 235 /* Return a part of the appropriate sub class */ 233 public Part getPart(String partName ) throws URISyntaxException, PartUnrecognisedException,236 public Part getPart(String partName, Relationship rel) throws URISyntaxException, PartUnrecognisedException, 234 237 InvalidFormatException { 235 238 … … 241 244 String contentType = overrideCT.getContentType(); 242 245 log.debug("Found content type '" + contentType + "' for " + partName); 243 p = newPartForContentType(contentType, partName );246 p = newPartForContentType(contentType, partName, rel); 244 247 p.setContentType( new ContentType(contentType) ); 245 248 return p; … … 254 257 log.info("Found content type '" + contentType + "' for " 255 258 + partName); 256 p = newPartForContentType(contentType, partName );259 p = newPartForContentType(contentType, partName, rel); 257 260 p.setContentType(new ContentType(contentType)); 258 261 return p; … … 265 268 } 266 269 267 public Part newPartForContentType(String contentType, String partName )270 public Part newPartForContentType(String contentType, String partName, Relationship rel) 268 271 throws InvalidFormatException, PartUnrecognisedException { 269 272 270 273 // TODO - a number of WordML parts aren't listed here! 271 if (contentType.equals(ContentTypes.WORDPROCESSINGML_DOCUMENT)) { 274 if (rel!=null && rel.getType().equals(Namespaces.AF) ) { 275 // Could have just passed String relType 276 // Null where used from BPAI, and a FlatOpcXmlImporter case. 277 // Cases where rel is not available can prepare a suitable dummy 278 279 AlternativeFormatInputPart afip = 280 new AlternativeFormatInputPart(new PartName(partName) ); 281 afip.setContentType(new ContentType(contentType)); 282 283 } else if (contentType.equals(ContentTypes.WORDPROCESSINGML_DOCUMENT)) { 272 284 return CreateMainDocumentPartObject(partName); 273 285 // how is the main document distinguished from the glossary document? -
trunk/docx4j/src/main/java/org/docx4j/openpackaging/io/Load.java
r1274 r1302 122 122 * @throws InvalidFormatException 123 123 */ 124 public static Part getRawPart(InputStream is, ContentTypeManager ctm, String resolvedPartUri )124 public static Part getRawPart(InputStream is, ContentTypeManager ctm, String resolvedPartUri, Relationship rel) 125 125 throws Docx4JException { 126 126 … … 131 131 try { 132 132 133 part = ctm.getPart("/" + resolvedPartUri );133 part = ctm.getPart("/" + resolvedPartUri, rel); 134 134 135 135 -
trunk/docx4j/src/main/java/org/docx4j/openpackaging/io/LoadFromZipFile.java
r1274 r1302 351 351 String relationshipType = r.getType(); 352 352 353 Part part = getRawPart(zf, ctm, resolvedPartUri );353 Part part = getRawPart(zf, ctm, resolvedPartUri, r); 354 354 if (part instanceof BinaryPart 355 355 || part instanceof DefaultXmlPart) { … … 425 425 * @throws InvalidFormatException 426 426 */ 427 public static Part getRawPart(ZipFile zf, ContentTypeManager ctm, String resolvedPartUri )427 public static Part getRawPart(ZipFile zf, ContentTypeManager ctm, String resolvedPartUri, Relationship rel) 428 428 throws Docx4JException { 429 429 Part part = null; … … 439 439 // specific knowledge. Hence it is important to get the is 440 440 // first, as we do above. 441 part = ctm.getPart("/" + resolvedPartUri );441 part = ctm.getPart("/" + resolvedPartUri, rel); 442 442 443 443 if (part instanceof org.docx4j.openpackaging.parts.ThemePart) { -
trunk/docx4j/src/main/java/org/docx4j/openpackaging/io/LoadFromZipNG.java
r1274 r1302 372 372 */ 373 373 //private void getPart(ZipFile zf, Package pkg, RelationshipsPart rp, Relationship r) 374 private void getPart(HashMap<String, ByteArray> partByteArrays, OpcPackage pkg, RelationshipsPart rp, Relationship r) 374 private void getPart(HashMap<String, ByteArray> partByteArrays, OpcPackage pkg, RelationshipsPart rp, 375 Relationship r) 375 376 throws Docx4JException, InvalidFormatException, URISyntaxException { 376 377 … … 418 419 String relationshipType = r.getType(); 419 420 420 Part part = getRawPart(partByteArrays, ctm, resolvedPartUri );421 Part part = getRawPart(partByteArrays, ctm, resolvedPartUri, r); 421 422 if (part instanceof BinaryPart 422 423 || part instanceof DefaultXmlPart) { … … 495 496 //public static Part getRawPart(ZipFile zf, ContentTypeManager ctm, String resolvedPartUri) 496 497 public static Part getRawPart(HashMap<String, ByteArray> partByteArrays, 497 ContentTypeManager ctm, String resolvedPartUri )498 ContentTypeManager ctm, String resolvedPartUri, Relationship rel) 498 499 throws Docx4JException { 500 499 501 Part part = null; 500 502 … … 509 511 // specific knowledge. Hence it is important to get the is 510 512 // first, as we do above. 511 part = ctm.getPart("/" + resolvedPartUri );513 part = ctm.getPart("/" + resolvedPartUri, rel); 512 514 513 515 if (part instanceof org.docx4j.openpackaging.parts.ThemePart) { -
trunk/docx4j/src/main/java/org/docx4j/openpackaging/packages/WordprocessingMLPackage.java
r1277 r1302 271 271 ContentTypeManager ctm = new ContentTypeManager(); 272 272 273 Part tmpDocPart = xmlPackage.getRawPart(ctm, "/word/document.xml" );274 Part tmpStylesPart = xmlPackage.getRawPart(ctm, "/word/styles.xml" );273 Part tmpDocPart = xmlPackage.getRawPart(ctm, "/word/document.xml", null); 274 Part tmpStylesPart = xmlPackage.getRawPart(ctm, "/word/styles.xml", null); 275 275 276 276 // This code assumes all the existing rels etc of -
trunk/docx4j/src/main/java/org/docx4j/openpackaging/parts/WordprocessingML/BinaryPartAbstractImage.java
r1290 r1302 207 207 BinaryPartAbstractImage imagePart = 208 208 (BinaryPartAbstractImage)ctm.newPartForContentType( 209 info.getMimeType(), createImageName(sourcePart, proposedRelId, ext) 209 info.getMimeType(), createImageName(sourcePart, proposedRelId, ext), null 210 210 ); 211 211 … … 360 360 (BinaryPartAbstractImage)ctm.newPartForContentType( 361 361 info.getMimeType(), 362 createImageName(sourcePart, proposedRelId, ext ) );362 createImageName(sourcePart, proposedRelId, ext ), null ); 363 363 364 364 log.debug("created part " + imagePart.getClass().getName() -
trunk/docx4j/src/main/java/org/docx4j/openpackaging/parts/relationships/Namespaces.java
r1201 r1302 117 117 118 118 public final static String AF = 119 "http://schemas.openxmlformats.org/officeDocument/2006/relationships/a FChunk";119 "http://schemas.openxmlformats.org/officeDocument/2006/relationships/afChunk"; 120 120 121 121 -
trunk/docx4j/src/main/java/org/docx4j/samples/ImportForeignPart.java
r1044 r1302 73 73 74 74 75 Part foreignPart = Load.getRawPart(is, foreignCtm, resolvedPartUri); 75 Part foreignPart = Load.getRawPart(is, foreignCtm, resolvedPartUri, null); 76 // the null means this won't work for an AlternativeFormatInputPart 76 77 attachmentPoint.addTargetPart(foreignPart); 77 78 // Add content type
Note: See TracChangeset
for help on using the changeset viewer.
