Big RSS Expanded changelist -- thank you authors
[zxing.git] / core / src / com / google / zxing / client / result / EmailAddressParsedResult.java
index 9b8b708..425e766 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright 2007 Google Inc.
+ * Copyright 2007 ZXing authors
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
 
 package com.google.zxing.client.result;
 
-import com.google.zxing.Result;
-
-import java.util.Hashtable;
-
 /**
- * Represents a result that encodes an e-mail address, either as a plain address
- * like "joe@example.org" or a mailto: URL like "mailto:joe@example.org".
- *
- * @author srowen@google.com (Sean Owen)
+ * @author Sean Owen
  */
-public final class EmailAddressParsedResult extends AbstractDoCoMoParsedResult {
+public final class EmailAddressParsedResult extends ParsedResult {
 
   private final String emailAddress;
   private final String subject;
   private final String body;
   private final String mailtoURI;
 
-  private EmailAddressParsedResult(String emailAddress, String subject, String body, String mailtoURI) {
-    super(ParsedReaderResultType.EMAIL_ADDRESS);
+  EmailAddressParsedResult(String emailAddress, String subject, String body, String mailtoURI) {
+    super(ParsedResultType.EMAIL_ADDRESS);
     this.emailAddress = emailAddress;
     this.subject = subject;
     this.body = body;
     this.mailtoURI = mailtoURI;
   }
 
-  public static EmailAddressParsedResult parse(Result result) {
-    String rawText = result.getText();
-    if (rawText == null) {
-      return null;
-    }
-    String emailAddress;
-    if (rawText.startsWith("mailto:")) {
-      // If it starts with mailto:, assume it is definitely trying to be an email address
-      emailAddress = rawText.substring(7);
-      int queryStart = emailAddress.indexOf('?');
-      if (queryStart >= 0) {
-        emailAddress = emailAddress.substring(0, queryStart);
-      }
-      Hashtable nameValues = parseNameValuePairs(rawText);
-      String subject = null;
-      String body = null;
-      if (nameValues != null) {
-        if (emailAddress.length() == 0) {
-          emailAddress = (String) nameValues.get("to");
-        }
-        subject = (String) nameValues.get("subject");
-        body = (String) nameValues.get("body");
-      }
-      return new EmailAddressParsedResult(emailAddress, subject, body, rawText);
-    } else {
-      if (!EmailDoCoMoParsedResult.isBasicallyValidEmailAddress(rawText)) {
-        return null;
-      }
-      emailAddress = rawText;
-      return new EmailAddressParsedResult(emailAddress, null, null, "mailto:" + emailAddress);
-    }
-  }
-
   public String getEmailAddress() {
     return emailAddress;
   }
@@ -91,7 +51,11 @@ public final class EmailAddressParsedResult extends AbstractDoCoMoParsedResult {
   }
 
   public String getDisplayResult() {
-    return emailAddress;
+    StringBuffer result = new StringBuffer(30);
+    maybeAppend(emailAddress, result);
+    maybeAppend(subject, result);
+    maybeAppend(body, result);
+    return result.toString();
   }
 
 }
\ No newline at end of file