class SMSTOMMSTOResultParser extends ResultParser {

  @Override
  public SMSParsedResult parse(Result result) {<FILL_FUNCTION_BODY>}

}

    String rawText = getMassagedText(result);
    if (!(rawText.startsWith("smsto:") || rawText.startsWith("SMSTO:") ||
          rawText.startsWith("mmsto:") || rawText.startsWith("MMSTO:"))) {
      return null;
    }
    // Thanks to dominik.wild for suggesting this enhancement to support
    // smsto:number:body URIs
    String number = rawText.substring(6);
    String body = null;
    int bodyStart = number.indexOf(':');
    if (bodyStart >= 0) {
      body = number.substring(bodyStart + 1);
      number = number.substring(0, bodyStart);
    }
    return new SMSParsedResult(number, null, null, body);
  
<methods>public non-sealed void <init>() ,public abstract com.google.zxing.client.result.ParsedResult parse(com.google.zxing.Result) ,public static com.google.zxing.client.result.ParsedResult parseResult(com.google.zxing.Result) <variables>private static final java.util.regex.Pattern AMPERSAND,private static final java.lang.String BYTE_ORDER_MARK,private static final java.util.regex.Pattern DIGITS,static final java.lang.String[] EMPTY_STR_ARRAY,private static final java.util.regex.Pattern EQUALS,private static final com.google.zxing.client.result.ResultParser[] PARSERS