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