Package org.docx4j.openpackaging.parts
Class PartName
java.lang.Object
org.docx4j.openpackaging.parts.PartName
- All Implemented Interfaces:
Comparable<PartName>
An immutable Open Packaging Convention compliant part name.
[Docx4J comment: Note that in docx4J, part names should be resolved,
before being set, so that they are absolute
(ie start with '/'). In contrast, this class enforces the
OPC specification, which says that a part name can't be
absolute. For this reason, you'll see the leading '/'
being added and removed in various places :( ]
- Version:
- 0.1
- Author:
- Julien Chable
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionintCompare two part name following the rule M1.12 : Part name equivalence is determined by comparing part names as case-insensitive ASCII strings.booleanPart name equivalence is determined by comparing part names as case-insensitive ASCII strings.static StringgenerateUniqueName(Base sourcePart, String proposedRelId, String directoryPrefix, String after_, String ext) Retrieves the extension of the part name if any.getName()Get this part name.static StringgetRelationshipsPartName(String partName) getURI()Part name property getter.inthashCode()booleanTo know if this part name is a relationship part name.toString()
-
Constructor Details
-
PartName
Constructor. Makes a ValidPartName object from a java.net.URI- Parameters:
uri- The URI to validate and to transform into ValidPartName.checkConformance- Flag to specify if the contructor have to validate the OPC conformance. Must be alwaystrueexcept for special URI like '/' which is needed for internal use by OpenXML4J but is not valid.- Throws:
InvalidFormatException- Throw if the specified part name is not conform to Open Packaging Convention specifications.- See Also:
-
PartName
Constructor. Makes a ValidPartName object from a String part name, provided it validates against OPC conformance.- Parameters:
partName- Part name to valid and to create.- Throws:
InvalidFormatException- Throw if the specified part name is not conform to Open Packaging Convention specifications.
-
PartName
Constructor. Makes a ValidPartName object from a String part name.- Parameters:
partName- Part name to valid and to create.checkConformance- Flag to specify if the contructor have to validate the OPC conformance. Must be alwaystrueexcept for special URI like '/' which is needed for internal use by OpenXML4J but is not valid.- Throws:
InvalidFormatException- Throw if the specified part name is not conform to Open Packaging Convention specifications.
-
-
Method Details
-
isRelationshipPartURI
public boolean isRelationshipPartURI()To know if this part name is a relationship part name.- Returns:
trueif this part name respect the relationship part naming convention elsefalse.
-
compareTo
Compare two part name following the rule M1.12 : Part name equivalence is determined by comparing part names as case-insensitive ASCII strings. Packages shall not contain equivalent part names and package implementers shall neither create nor recognize packages with equivalent part names. [M1.12]- Specified by:
compareToin interfaceComparable<PartName>
-
getExtension
Retrieves the extension of the part name if any. If there is no extension returns an empty String. Example : '/document/content.xml' => 'xml'- Returns:
- The extension of the part name.
-
getName
Get this part name.- Returns:
- The name of this part name.
-
equals
Part name equivalence is determined by comparing part names as case-insensitive ASCII strings. Packages shall not contain equivalent part names and package implementers shall neither create nor recognize packages with equivalent part names. [M1.12] -
hashCode
public int hashCode() -
toString
-
getURI
Part name property getter.- Returns:
- This part name URI.
-
generateUniqueName
-
getRelationshipsPartName
- See Also:
-
for Wygwam's implementation which I only found after writing this
-