Oops fixed invalid use of java.net classes
authorsrowen <srowen@59b500cc-1b3d-0410-9834-0bbf25fbcc57>
Thu, 30 Apr 2009 20:19:20 +0000 (20:19 +0000)
committersrowen <srowen@59b500cc-1b3d-0410-9834-0bbf25fbcc57>
Thu, 30 Apr 2009 20:19:20 +0000 (20:19 +0000)
git-svn-id: http://zxing.googlecode.com/svn/trunk@922 59b500cc-1b3d-0410-9834-0bbf25fbcc57

zxing.appspot.com/generator/src/com/google/zxing/web/generator/client/ContactInfoGenerator.java
zxing.appspot.com/generator/src/com/google/zxing/web/generator/client/Validators.java

index 2eeca40..d5caba2 100644 (file)
@@ -21,8 +21,6 @@ import com.google.gwt.user.client.ui.Grid;
 import com.google.gwt.user.client.ui.TextBox;
 import com.google.gwt.user.client.ui.Widget;
 
-import java.net.URI;
-
 /**
  * A Generator for contact informations, output is in MeCard format.
  * 
index 4f14324..ef6c629 100644 (file)
@@ -16,9 +16,6 @@
 
 package com.google.zxing.web.generator.client;
 
-import java.net.URL;
-import java.net.MalformedURLException;
-
 /**
  * Helpers methods to check for phone numbers, email addresses, and URL. Other
  * general purpose check methods should go here as well.
@@ -37,12 +34,22 @@ public final class Validators {
   }
   
   public static void validateUrl(String url) throws GeneratorException {
-    try {
-      new URL(url);
-    } catch (MalformedURLException mue) {
+    if (!isBasicallyValidURI(url)) {
       throw new GeneratorException("URL is not valid.");
     }
   }
+
+  private static boolean isBasicallyValidURI(String uri) {
+    if (uri == null || uri.indexOf(' ') >= 0 || uri.indexOf('\n') >= 0) {
+      return false;
+    }
+    int period = uri.indexOf('.');
+    // Look for period in a domain but followed by at least a two-char TLD
+    if (period >= uri.length() - 2) {
+      return false;
+    }
+    return period >= 0 || uri.indexOf(':') >= 0;
+  }
   
   public static void validateEmail(String email) throws GeneratorException {
     //FIXME: we can have a better check for email here.