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