[iphone]Reorganized ZXingWidget with directories for categories of source files
[zxing.git] / iphone / ZXingWidget / Classes / resultParsers / URLTOResultParser.m
diff --git a/iphone/ZXingWidget/Classes/resultParsers/URLTOResultParser.m b/iphone/ZXingWidget/Classes/resultParsers/URLTOResultParser.m
new file mode 100644 (file)
index 0000000..73f2fc0
--- /dev/null
@@ -0,0 +1,54 @@
+//
+//  URLTOResultParser.m
+//  ZXing
+//
+//  Created by Christian Brunschen on 25/06/2008.
+/*
+ * Copyright 2008 ZXing authors
+ *
+ * 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.
+ */
+
+#import "URLTOResultParser.h"
+#import "URIParsedResult.h"
+
+#define PREFIX @"URLTO:"
+
+@implementation URLTOResultParser
+
++ (void)load {
+  [ResultParser registerResultParserClass:self];
+}
+
++ (ParsedResult *)parsedResultForString:(NSString *)s {
+  NSRange prefixRange = [s rangeOfString:PREFIX options:NSCaseInsensitiveSearch];
+  if (prefixRange.location == 0) {
+    int max = [s length];
+    int titleStart = prefixRange.location + prefixRange.length;
+    NSRange searchRange = NSMakeRange(titleStart, max - titleStart);
+    NSRange colonRange = [s rangeOfString:@":" options:0 range:searchRange];
+    if (colonRange.location != NSNotFound) {
+      NSRange titleRange = NSMakeRange(titleStart,
+                                       colonRange.location - titleStart);
+      int linkStart = colonRange.location + colonRange.length;
+      NSRange linkRange = NSMakeRange(linkStart, max - linkStart);
+      return [[[URIParsedResult alloc] initWithURLString:[s substringWithRange:linkRange]
+                                                   title:[s substringWithRange:titleRange]]
+              autorelease];
+    }
+  }
+  return nil;
+}
+
+
+@end