17e5ba0e1eaee76ab6e6c7ea9362348f660796596Makoto Onuki/* 27e5ba0e1eaee76ab6e6c7ea9362348f660796596Makoto Onuki * Copyright (C) 2010 The Android Open Source Project 37e5ba0e1eaee76ab6e6c7ea9362348f660796596Makoto Onuki * 47e5ba0e1eaee76ab6e6c7ea9362348f660796596Makoto Onuki * Licensed under the Apache License, Version 2.0 (the "License"); 57e5ba0e1eaee76ab6e6c7ea9362348f660796596Makoto Onuki * you may not use this file except in compliance with the License. 67e5ba0e1eaee76ab6e6c7ea9362348f660796596Makoto Onuki * You may obtain a copy of the License at 77e5ba0e1eaee76ab6e6c7ea9362348f660796596Makoto Onuki * 87e5ba0e1eaee76ab6e6c7ea9362348f660796596Makoto Onuki * http://www.apache.org/licenses/LICENSE-2.0 97e5ba0e1eaee76ab6e6c7ea9362348f660796596Makoto Onuki * 107e5ba0e1eaee76ab6e6c7ea9362348f660796596Makoto Onuki * Unless required by applicable law or agreed to in writing, software 117e5ba0e1eaee76ab6e6c7ea9362348f660796596Makoto Onuki * distributed under the License is distributed on an "AS IS" BASIS, 127e5ba0e1eaee76ab6e6c7ea9362348f660796596Makoto Onuki * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 137e5ba0e1eaee76ab6e6c7ea9362348f660796596Makoto Onuki * See the License for the specific language governing permissions and 147e5ba0e1eaee76ab6e6c7ea9362348f660796596Makoto Onuki * limitations under the License. 157e5ba0e1eaee76ab6e6c7ea9362348f660796596Makoto Onuki */ 167e5ba0e1eaee76ab6e6c7ea9362348f660796596Makoto Onuki 177e5ba0e1eaee76ab6e6c7ea9362348f660796596Makoto Onukipackage com.android.email.mail.store.imap; 187e5ba0e1eaee76ab6e6c7ea9362348f660796596Makoto Onuki 1931d9acbf0623872f9d4a2b3210b5970854b654c7Marc Blankimport com.android.emailcommon.utility.Utility; 207e5ba0e1eaee76ab6e6c7ea9362348f660796596Makoto Onuki 217e5ba0e1eaee76ab6e6c7ea9362348f660796596Makoto Onukiimport java.io.ByteArrayInputStream; 227e5ba0e1eaee76ab6e6c7ea9362348f660796596Makoto Onukiimport java.io.InputStream; 237e5ba0e1eaee76ab6e6c7ea9362348f660796596Makoto Onuki 247e5ba0e1eaee76ab6e6c7ea9362348f660796596Makoto Onuki/** 257e5ba0e1eaee76ab6e6c7ea9362348f660796596Makoto Onuki * Subclass of {@link ImapString} used for non literals. 267e5ba0e1eaee76ab6e6c7ea9362348f660796596Makoto Onuki */ 277e5ba0e1eaee76ab6e6c7ea9362348f660796596Makoto Onukipublic class ImapSimpleString extends ImapString { 280fd444b0b4c07ac1545e0edc64b54fd738edfc94Makoto Onuki private String mString; 297e5ba0e1eaee76ab6e6c7ea9362348f660796596Makoto Onuki 307e5ba0e1eaee76ab6e6c7ea9362348f660796596Makoto Onuki /* package */ ImapSimpleString(String string) { 317e5ba0e1eaee76ab6e6c7ea9362348f660796596Makoto Onuki mString = (string != null) ? string : ""; 327e5ba0e1eaee76ab6e6c7ea9362348f660796596Makoto Onuki } 337e5ba0e1eaee76ab6e6c7ea9362348f660796596Makoto Onuki 347e5ba0e1eaee76ab6e6c7ea9362348f660796596Makoto Onuki @Override 350fd444b0b4c07ac1545e0edc64b54fd738edfc94Makoto Onuki public void destroy() { 360fd444b0b4c07ac1545e0edc64b54fd738edfc94Makoto Onuki mString = null; 370fd444b0b4c07ac1545e0edc64b54fd738edfc94Makoto Onuki super.destroy(); 380fd444b0b4c07ac1545e0edc64b54fd738edfc94Makoto Onuki } 390fd444b0b4c07ac1545e0edc64b54fd738edfc94Makoto Onuki 400fd444b0b4c07ac1545e0edc64b54fd738edfc94Makoto Onuki @Override 417e5ba0e1eaee76ab6e6c7ea9362348f660796596Makoto Onuki public String getString() { 427e5ba0e1eaee76ab6e6c7ea9362348f660796596Makoto Onuki return mString; 437e5ba0e1eaee76ab6e6c7ea9362348f660796596Makoto Onuki } 447e5ba0e1eaee76ab6e6c7ea9362348f660796596Makoto Onuki 457e5ba0e1eaee76ab6e6c7ea9362348f660796596Makoto Onuki @Override 467e5ba0e1eaee76ab6e6c7ea9362348f660796596Makoto Onuki public InputStream getAsStream() { 477e5ba0e1eaee76ab6e6c7ea9362348f660796596Makoto Onuki return new ByteArrayInputStream(Utility.toAscii(mString)); 487e5ba0e1eaee76ab6e6c7ea9362348f660796596Makoto Onuki } 497e5ba0e1eaee76ab6e6c7ea9362348f660796596Makoto Onuki 507e5ba0e1eaee76ab6e6c7ea9362348f660796596Makoto Onuki @Override 517e5ba0e1eaee76ab6e6c7ea9362348f660796596Makoto Onuki public String toString() { 527e5ba0e1eaee76ab6e6c7ea9362348f660796596Makoto Onuki // Purposefully not return just mString, in order to prevent using it instead of getString. 537e5ba0e1eaee76ab6e6c7ea9362348f660796596Makoto Onuki return "\"" + mString + "\""; 547e5ba0e1eaee76ab6e6c7ea9362348f660796596Makoto Onuki } 557e5ba0e1eaee76ab6e6c7ea9362348f660796596Makoto Onuki} 56