aboutsummaryrefslogtreecommitdiff
path: root/Foundation/GTMURLBuilder.h
diff options
context:
space:
mode:
authorGravatar gtm.daemon <gtm.daemon@7dc7ac4e-7543-0410-b95c-c1676fc8e2a3>2012-03-01 17:00:20 +0000
committerGravatar gtm.daemon <gtm.daemon@7dc7ac4e-7543-0410-b95c-c1676fc8e2a3>2012-03-01 17:00:20 +0000
commit32654998f055c85d9a70b6f415abf79dd81c601e (patch)
tree6d5ecf98880ccbd2c0ad55036f730eee4e6fa871 /Foundation/GTMURLBuilder.h
parent4f85e00accda833f7fd0ef1a40018818ae090495 (diff)
[Author: msenesi]
Flexible builder for URLs. R=altse,dmaclach,thomasvl APPROVED=dmaclach
Diffstat (limited to 'Foundation/GTMURLBuilder.h')
-rw-r--r--Foundation/GTMURLBuilder.h64
1 files changed, 64 insertions, 0 deletions
diff --git a/Foundation/GTMURLBuilder.h b/Foundation/GTMURLBuilder.h
new file mode 100644
index 0000000..e959fa7
--- /dev/null
+++ b/Foundation/GTMURLBuilder.h
@@ -0,0 +1,64 @@
+//
+// GTMURLBuilder.h
+//
+// Copyright 2012 Google Inc.
+//
+// Licensed under the Apache License, Version 2.0 (the "License"); you may not
+// use this file except in compliance with the License. You may obtain a copy
+// of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+// WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+// License for the specific language governing permissions and limitations
+// under the License.
+//
+
+//
+// Class for creating URLs. It handles URL encoding of parameters.
+//
+// Usage example:
+//
+// GTMURLBuilder *URLBuilder =
+// [GTMURLBuilder builderWithString:@"http://www.google.com"];
+// [URLBuilder setValue:@"abc" forParameter:@"q"];
+// NSURL *URL = [URLBuilder URL];
+//
+
+#import <Foundation/Foundation.h>
+#import "GTMDefines.h"
+
+@interface GTMURLBuilder : NSObject {
+ @private
+ NSMutableDictionary *params_;
+}
+
+@property(nonatomic, readonly) NSString *baseURLString;
+
+// Encodes URL by percent-encoding, except reserved characters:
+// ";" | "/" | "?" | ":" | "@" | "&" | "=" | "+" | "$" | ","
++ (NSURL *)URLWithString:(NSString *)URLString;
+// |URLString| is expected to be a valid URL with already escaped parameter
+// values.
++ (GTMURLBuilder *)builderWithString:(NSString *)URLString;
++ (GTMURLBuilder *)builderWithURL:(NSURL *)URL;
+
+// |URLString| The base URL to which parameters will be appended.
+// If the URL already contains parameters, they should already be encoded.
+- (id)initWithString:(NSString *)URLString;
+- (void)setValue:(NSString *)value forParameter:(NSString *)parameter;
+- (void)setIntegerValue:(NSInteger)value forParameter:(NSString *)parameter;
+- (NSString *)valueForParameter:(NSString *)parameter;
+- (void)removeParameter:(NSString *)parameter;
+- (void)setParameters:(NSDictionary *)parameters;
+- (NSDictionary *)parameters;
+- (NSURL *)URL;
+- (NSString *)URLString;
+
+// Case-sensitive comparison of the URL. Also protocol and host are compared
+// as case-sensitive strings. The order of URL parameters is ignored.
+- (BOOL)isEqual:(GTMURLBuilder *)URLBuilder;
+
+@end