1d5e47f6da5b08b13ecdfa7f1edc7e12aeb83fab9Eric Erfanian/*
2d5e47f6da5b08b13ecdfa7f1edc7e12aeb83fab9Eric Erfanian * Copyright (C) 2015 The Android Open Source Project
3d5e47f6da5b08b13ecdfa7f1edc7e12aeb83fab9Eric Erfanian *
4d5e47f6da5b08b13ecdfa7f1edc7e12aeb83fab9Eric Erfanian * Licensed under the Apache License, Version 2.0 (the "License");
5d5e47f6da5b08b13ecdfa7f1edc7e12aeb83fab9Eric Erfanian * you may not use this file except in compliance with the License.
6d5e47f6da5b08b13ecdfa7f1edc7e12aeb83fab9Eric Erfanian * You may obtain a copy of the License at
7d5e47f6da5b08b13ecdfa7f1edc7e12aeb83fab9Eric Erfanian *
8d5e47f6da5b08b13ecdfa7f1edc7e12aeb83fab9Eric Erfanian *      http://www.apache.org/licenses/LICENSE-2.0
9d5e47f6da5b08b13ecdfa7f1edc7e12aeb83fab9Eric Erfanian *
10d5e47f6da5b08b13ecdfa7f1edc7e12aeb83fab9Eric Erfanian * Unless required by applicable law or agreed to in writing, software
11d5e47f6da5b08b13ecdfa7f1edc7e12aeb83fab9Eric Erfanian * distributed under the License is distributed on an "AS IS" BASIS,
12d5e47f6da5b08b13ecdfa7f1edc7e12aeb83fab9Eric Erfanian * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13d5e47f6da5b08b13ecdfa7f1edc7e12aeb83fab9Eric Erfanian * See the License for the specific language governing permissions and
14d5e47f6da5b08b13ecdfa7f1edc7e12aeb83fab9Eric Erfanian * limitations under the License.
15d5e47f6da5b08b13ecdfa7f1edc7e12aeb83fab9Eric Erfanian */
16d5e47f6da5b08b13ecdfa7f1edc7e12aeb83fab9Eric Erfanian
17d5e47f6da5b08b13ecdfa7f1edc7e12aeb83fab9Eric Erfanianpackage com.android.voicemail.impl.mail.store.imap;
18d5e47f6da5b08b13ecdfa7f1edc7e12aeb83fab9Eric Erfanian
19d5e47f6da5b08b13ecdfa7f1edc7e12aeb83fab9Eric Erfanianimport com.android.voicemail.impl.VvmLog;
20d5e47f6da5b08b13ecdfa7f1edc7e12aeb83fab9Eric Erfanianimport java.io.ByteArrayInputStream;
21d5e47f6da5b08b13ecdfa7f1edc7e12aeb83fab9Eric Erfanianimport java.io.InputStream;
22d5e47f6da5b08b13ecdfa7f1edc7e12aeb83fab9Eric Erfanianimport java.io.UnsupportedEncodingException;
23d5e47f6da5b08b13ecdfa7f1edc7e12aeb83fab9Eric Erfanian
24d5e47f6da5b08b13ecdfa7f1edc7e12aeb83fab9Eric Erfanian/** Subclass of {@link ImapString} used for non literals. */
25d5e47f6da5b08b13ecdfa7f1edc7e12aeb83fab9Eric Erfanianpublic class ImapSimpleString extends ImapString {
26d5e47f6da5b08b13ecdfa7f1edc7e12aeb83fab9Eric Erfanian  private final String TAG = "ImapSimpleString";
27d5e47f6da5b08b13ecdfa7f1edc7e12aeb83fab9Eric Erfanian  private String mString;
28d5e47f6da5b08b13ecdfa7f1edc7e12aeb83fab9Eric Erfanian
29d5e47f6da5b08b13ecdfa7f1edc7e12aeb83fab9Eric Erfanian  /* package */ ImapSimpleString(String string) {
30d5e47f6da5b08b13ecdfa7f1edc7e12aeb83fab9Eric Erfanian    mString = (string != null) ? string : "";
31d5e47f6da5b08b13ecdfa7f1edc7e12aeb83fab9Eric Erfanian  }
32d5e47f6da5b08b13ecdfa7f1edc7e12aeb83fab9Eric Erfanian
33d5e47f6da5b08b13ecdfa7f1edc7e12aeb83fab9Eric Erfanian  @Override
34d5e47f6da5b08b13ecdfa7f1edc7e12aeb83fab9Eric Erfanian  public void destroy() {
35d5e47f6da5b08b13ecdfa7f1edc7e12aeb83fab9Eric Erfanian    mString = null;
36d5e47f6da5b08b13ecdfa7f1edc7e12aeb83fab9Eric Erfanian    super.destroy();
37d5e47f6da5b08b13ecdfa7f1edc7e12aeb83fab9Eric Erfanian  }
38d5e47f6da5b08b13ecdfa7f1edc7e12aeb83fab9Eric Erfanian
39d5e47f6da5b08b13ecdfa7f1edc7e12aeb83fab9Eric Erfanian  @Override
40d5e47f6da5b08b13ecdfa7f1edc7e12aeb83fab9Eric Erfanian  public String getString() {
41d5e47f6da5b08b13ecdfa7f1edc7e12aeb83fab9Eric Erfanian    return mString;
42d5e47f6da5b08b13ecdfa7f1edc7e12aeb83fab9Eric Erfanian  }
43d5e47f6da5b08b13ecdfa7f1edc7e12aeb83fab9Eric Erfanian
44d5e47f6da5b08b13ecdfa7f1edc7e12aeb83fab9Eric Erfanian  @Override
45d5e47f6da5b08b13ecdfa7f1edc7e12aeb83fab9Eric Erfanian  public InputStream getAsStream() {
46d5e47f6da5b08b13ecdfa7f1edc7e12aeb83fab9Eric Erfanian    try {
47d5e47f6da5b08b13ecdfa7f1edc7e12aeb83fab9Eric Erfanian      return new ByteArrayInputStream(mString.getBytes("US-ASCII"));
48d5e47f6da5b08b13ecdfa7f1edc7e12aeb83fab9Eric Erfanian    } catch (UnsupportedEncodingException e) {
49d5e47f6da5b08b13ecdfa7f1edc7e12aeb83fab9Eric Erfanian      VvmLog.e(TAG, "Unsupported encoding: ", e);
50d5e47f6da5b08b13ecdfa7f1edc7e12aeb83fab9Eric Erfanian    }
51d5e47f6da5b08b13ecdfa7f1edc7e12aeb83fab9Eric Erfanian    return null;
52d5e47f6da5b08b13ecdfa7f1edc7e12aeb83fab9Eric Erfanian  }
53d5e47f6da5b08b13ecdfa7f1edc7e12aeb83fab9Eric Erfanian
54d5e47f6da5b08b13ecdfa7f1edc7e12aeb83fab9Eric Erfanian  @Override
55d5e47f6da5b08b13ecdfa7f1edc7e12aeb83fab9Eric Erfanian  public String toString() {
56d5e47f6da5b08b13ecdfa7f1edc7e12aeb83fab9Eric Erfanian    // Purposefully not return just mString, in order to prevent using it instead of getString.
57d5e47f6da5b08b13ecdfa7f1edc7e12aeb83fab9Eric Erfanian    return "\"" + mString + "\"";
58d5e47f6da5b08b13ecdfa7f1edc7e12aeb83fab9Eric Erfanian  }
59d5e47f6da5b08b13ecdfa7f1edc7e12aeb83fab9Eric Erfanian}
60