ObjFW
OFMutableIRI.h
1 /*
2  * Copyright (c) 2008-2023 Jonathan Schleifer <js@nil.im>
3  *
4  * All rights reserved.
5  *
6  * This file is part of ObjFW. It may be distributed under the terms of the
7  * Q Public License 1.0, which can be found in the file LICENSE.QPL included in
8  * the packaging of this file.
9  *
10  * Alternatively, it may be distributed under the terms of the GNU General
11  * Public License, either version 2 or 3, which can be found in the file
12  * LICENSE.GPLv2 or LICENSE.GPLv3 respectively included in the packaging of this
13  * file.
14  */
15 
16 #import "OFIRI.h"
17 
18 OF_ASSUME_NONNULL_BEGIN
19 
28 @interface OFMutableIRI: OFIRI
29 {
30  OF_RESERVE_IVARS(OFMutableIRI, 4)
31 }
32 
39 @property (readwrite, copy, nonatomic) OFString *scheme;
40 
44 @property OF_NULLABLE_PROPERTY (readwrite, copy, nonatomic) OFString *host;
45 
55 @property OF_NULLABLE_PROPERTY (readwrite, copy, nonatomic)
56  OFString *percentEncodedHost;
57 
64 @property OF_NULLABLE_PROPERTY (readwrite, copy, nonatomic) OFNumber *port;
65 
69 @property OF_NULLABLE_PROPERTY (readwrite, copy, nonatomic) OFString *user;
70 
80 @property OF_NULLABLE_PROPERTY (readwrite, copy, nonatomic)
81  OFString *percentEncodedUser;
82 
86 @property OF_NULLABLE_PROPERTY (readwrite, copy, nonatomic) OFString *password;
87 
97 @property OF_NULLABLE_PROPERTY (readwrite, copy, nonatomic)
98  OFString *percentEncodedPassword;
99 
103 @property (readwrite, copy, nonatomic) OFString *path;
104 
114 @property (readwrite, copy, nonatomic) OFString *percentEncodedPath;
115 
124 @property (readwrite, copy, nonatomic)
125  OFArray OF_GENERIC(OFString *) *pathComponents;
126 
130 @property OF_NULLABLE_PROPERTY (readwrite, copy, nonatomic) OFString *query;
131 
141 @property OF_NULLABLE_PROPERTY (readwrite, copy, nonatomic)
142  OFString *percentEncodedQuery;
143 
157 @property OF_NULLABLE_PROPERTY (readwrite, copy, nonatomic)
158  OFArray OF_GENERIC(OFPair OF_GENERIC(OFString *, OFString *) *) *queryItems;
159 
163 @property OF_NULLABLE_PROPERTY (readwrite, copy, nonatomic) OFString *fragment;
164 
174 @property OF_NULLABLE_PROPERTY (readwrite, copy, nonatomic)
175  OFString *percentEncodedFragment;
176 
183 + (instancetype)IRIWithScheme: (OFString *)scheme;
184 
192 - (instancetype)initWithScheme: (OFString *)scheme;
193 
199 - (void)appendPathComponent: (OFString *)component;
200 
208 - (void)appendPathComponent: (OFString *)component
209  isDirectory: (bool)isDirectory;
210 
214 - (void)standardizePath;
215 
219 - (void)makeImmutable;
220 @end
221 
222 OF_ASSUME_NONNULL_END
An abstract class for storing objects in an array.
Definition: OFArray.h:103
A class for representing IRIs, URIs, URLs and URNs, for parsing them, accessing parts of them as well...
Definition: OFMutableIRI.h:28
A class for storing a pair of two objects.
Definition: OFPair.h:25
A class for handling strings.
Definition: OFString.h:134
OFString * host
The host part of the IRI.
Definition: OFMutableIRI.h:44
Provides a way to store a number in an object.
Definition: OFNumber.h:42
A class for representing IRIs, URIs, URLs and URNs, for parsing them as well as accessing parts of th...
Definition: OFIRI.h:35