2 * Copyright 2007 ZXing authors
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
8 * http://www.apache.org/licenses/LICENSE-2.0
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
17 package com.google.zxing.client.result;
19 import com.google.zxing.Result;
22 * Implements the "MATMSG" email message entry format.
24 * Supported keys: TO, SUB, BODY
28 final class EmailDoCoMoResultParser extends AbstractDoCoMoResultParser {
30 public static EmailAddressParsedResult parse(Result result) {
31 String rawText = result.getText();
32 if (rawText == null || !rawText.startsWith("MATMSG:")) {
35 String[] rawTo = matchDoCoMoPrefixedField("TO:", rawText, true);
40 if (!isBasicallyValidEmailAddress(to)) {
43 String subject = matchSingleDoCoMoPrefixedField("SUB:", rawText, false);
44 String body = matchSingleDoCoMoPrefixedField("BODY:", rawText, false);
45 return new EmailAddressParsedResult(to, subject, body, "mailto:" + to);
49 * This implements only the most basic checking for an email address's validity -- that it contains
50 * an '@' and a '.' somewhere after that, and that it contains no space.
51 * We want to generally be lenient here since this class is only intended to encapsulate what's
52 * in a barcode, not "judge" it.
54 static boolean isBasicallyValidEmailAddress(String email) {
58 int atIndex = email.indexOf('@');
59 return atIndex >= 0 && email.indexOf('.') > atIndex && email.indexOf(' ') < 0;