@@ -111,10 +111,15 @@ * * Returns the empty string if the path is the root. */ @property (readonly, copy, nonatomic) OFString *lastPathComponent; +/** + * @brief The path extension of the IRI. + */ +@property (readonly, copy, nonatomic) OFString *pathExtension; + /** * @brief The query part of the IRI. */ @property OF_NULLABLE_PROPERTY (readonly, copy, nonatomic) OFString *query; @@ -164,10 +169,15 @@ /** * @brief The IRI with the last path component deleted. */ @property (readonly, nonatomic) OFIRI *IRIByDeletingLastPathComponent; +/** + * @brief The IRI with the path extension deleted. + */ +@property (readonly, nonatomic) OFIRI *IRIByDeletingPathExtension; + /** * @brief The IRI with percent-encoding added for all Unicode characters. */ @property (readonly, nonatomic) OFIRI *IRIByAddingPercentEncodingForUnicodeCharacters; @@ -304,10 +314,18 @@ * that the IRI path should have a trailing slash * @return A new IRI with the specified path component appended */ - (OFIRI *)IRIByAppendingPathComponent: (OFString *)component isDirectory: (bool)isDirectory; + +/** + * @brief Returns a new IRI with the specified path extension appended. + * + * @param extension The path extension to append + * @return A new IRI with the specified path extension appended. + */ +- (OFIRI *)IRIByAppendingPathExtension: (OFString *)extension; @end @interface OFCharacterSet (IRICharacterSets) #ifdef OF_HAVE_CLASS_PROPERTIES @property (class, readonly, nonatomic)