Package org.docx4j.openpackaging.parts
Class PartName
java.lang.Object
org.docx4j.openpackaging.parts.PartName
- All Implemented Interfaces:
java.lang.Comparable<PartName>
public final class PartName extends java.lang.Object implements java.lang.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
-
Method Summary
Modifier and Type Method Description intcompareTo(PartName otherPartName)Compare two part name following the rule M1.12 : Part name equivalence is determined by comparing part names as case-insensitive ASCII strings.booleanequals(java.lang.Object otherPartName)Part name equivalence is determined by comparing part names as case-insensitive ASCII strings.static java.lang.StringgenerateUniqueName(Base sourcePart, java.lang.String proposedRelId, java.lang.String directoryPrefix, java.lang.String after_, java.lang.String ext)java.lang.StringgetExtension()Retrieves the extension of the part name if any.java.lang.StringgetName()Get this part name.static java.lang.StringgetRelationshipsPartName(java.lang.String partName)java.net.URIgetURI()Part name property getter.inthashCode()booleanisRelationshipPartURI()To know if this part name is a relationship part name.java.lang.StringtoString()
-
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:
URI
-
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 interfacejava.lang.Comparable<PartName>
-
getExtension
public java.lang.String 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
public java.lang.String getName()Get this part name.- Returns:
- The name of this part name.
-
equals
public boolean equals(java.lang.Object otherPartName)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]- Overrides:
equalsin classjava.lang.Object
-
hashCode
public int hashCode()- Overrides:
hashCodein classjava.lang.Object
-
toString
public java.lang.String toString()- Overrides:
toStringin classjava.lang.Object
-
getURI
public java.net.URI getURI()Part name property getter.- Returns:
- This part name URI.
-
generateUniqueName
public static java.lang.String generateUniqueName(Base sourcePart, java.lang.String proposedRelId, java.lang.String directoryPrefix, java.lang.String after_, java.lang.String ext) -
getRelationshipsPartName
public static java.lang.String getRelationshipsPartName(java.lang.String partName)- See Also:
for Wygwam's implementation which I only found after writing this
-