Tidy up some duplicated code, now that openxml4j has RelationshipSource

git-svn-id: https://svn.apache.org/repos/asf/poi/branches/ooxml@614872 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
Nick Burch 2008-01-24 13:14:58 +00:00
parent eca9f853a3
commit 0caa21e82b

View File

@ -24,9 +24,7 @@ import java.util.ArrayList;
import org.apache.poi.POIXMLDocument; import org.apache.poi.POIXMLDocument;
import org.apache.poi.poifs.common.POIFSConstants; import org.apache.poi.poifs.common.POIFSConstants;
import org.apache.poi.poifs.storage.HeaderBlockConstants;
import org.apache.poi.util.IOUtils; import org.apache.poi.util.IOUtils;
import org.apache.poi.util.LongField;
import org.apache.xmlbeans.XmlException; import org.apache.xmlbeans.XmlException;
import org.dom4j.Document; import org.dom4j.Document;
import org.dom4j.DocumentException; import org.dom4j.DocumentException;
@ -40,6 +38,7 @@ import org.openxml4j.opc.PackagePartName;
import org.openxml4j.opc.PackageRelationship; import org.openxml4j.opc.PackageRelationship;
import org.openxml4j.opc.PackageRelationshipCollection; import org.openxml4j.opc.PackageRelationshipCollection;
import org.openxml4j.opc.PackagingURIHelper; import org.openxml4j.opc.PackagingURIHelper;
import org.openxml4j.opc.RelationshipSource;
import org.openxml4j.opc.internal.PackagePropertiesPart; import org.openxml4j.opc.internal.PackagePropertiesPart;
import org.openxmlformats.schemas.officeDocument.x2006.extendedProperties.CTProperties; import org.openxmlformats.schemas.officeDocument.x2006.extendedProperties.CTProperties;
import org.openxmlformats.schemas.officeDocument.x2006.extendedProperties.PropertiesDocument; import org.openxmlformats.schemas.officeDocument.x2006.extendedProperties.PropertiesDocument;
@ -147,9 +146,8 @@ public abstract class HXFDocument {
* or null if none found. * or null if none found.
* @param relationType The relation content type to search for * @param relationType The relation content type to search for
* @throws IllegalArgumentException If we find more than one part of that type * @throws IllegalArgumentException If we find more than one part of that type
* TODO: this sucks! Make Package and PackagePart implement common intf that defines getRelationshipsByType & friends
*/ */
protected PackagePart getSinglePartByRelationType(String relationType, PackagePart part) throws IllegalArgumentException, OpenXML4JException { protected PackagePart getSinglePartByRelationType(String relationType, RelationshipSource part) throws IllegalArgumentException, OpenXML4JException {
PackageRelationshipCollection rels = PackageRelationshipCollection rels =
part.getRelationshipsByType(relationType); part.getRelationshipsByType(relationType);
if(rels.size() == 0) { if(rels.size() == 0) {
@ -170,16 +168,7 @@ public abstract class HXFDocument {
* @throws IllegalArgumentException If we find more than one part of that type * @throws IllegalArgumentException If we find more than one part of that type
*/ */
protected PackagePart getSinglePartByRelationType(String relationType) throws IllegalArgumentException, OpenXML4JException { protected PackagePart getSinglePartByRelationType(String relationType) throws IllegalArgumentException, OpenXML4JException {
PackageRelationshipCollection rels = return getSinglePartByRelationType(relationType, container);
container.getRelationshipsByType(relationType);
if(rels.size() == 0) {
return null;
}
if(rels.size() > 1) {
throw new IllegalArgumentException("Found " + rels.size() + " relations for the type " + relationType + ", should only ever be one!");
}
PackageRelationship rel = rels.getRelationship(0);
return getPackagePart(rel);
} }
/** /**