Write a Serializable object with a presence flag into the Parcel . - Android android.os

Android examples for android.os:Parcel

Description

Write a Serializable object with a presence flag into the Parcel .

Demo Code

/*//from   w w w .j av  a 2 s  . co  m
 * Copyright (C) 2014 Neo Visionaries Inc.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
//package com.java2s;
import java.io.Serializable;
import android.os.Parcel;

public class Main {
    /**
     * Write a {@code Serializable} object with a presence flag into the {@code Parcel}.
     *
     * <p>
     * First, this method checks whether {@code value} is {@code null} or not.
     * When {@code null}, this method writes {@code false} into the {@code Parcel}
     * by calling {@link #writeBoolean(Parcel, boolean) writeBoolean(false)} and
     * does nothing any more. Otherwise, when not {@code null}, this method writes
     * {@code true} by calling {@link #writeBoolean(Parcel, boolean)
     * writeBoolean(true)} and then writes the {@code Serializable} object by calling
     * {@link Parcel#writeSerializable(Serializable) out.writeSerializable(value)}.
     * </p>
     *
     * @param out
     *         {@code Parcel} to write into.
     *
     * @param value
     *         A {@code String} object to write.
     */
    public static void writeSerializableWithPresenceFlag(Parcel out,
            Serializable value) {
        if (value == null) {
            // Not present.
            writeBoolean(out, false);
        } else {
            // Present.
            writeBoolean(out, true);

            // The value.
            out.writeSerializable(value);
        }
    }

    /**
     * Write a {@code boolean} value into the {@code Parcel}.
     *
     * <p>
     * This method writes {@code (byte)1} when {@code value} is {@code true}
     * and writes {@code (byte)0} when {@code value} is {@code false}.
     * </p>
     *
     * @param out
     *         {@code Parcel} to write into.
     *
     * @param value
     *         A boolean value to write.
     */
    public static void writeBoolean(Parcel out, boolean value) {
        out.writeByte(value ? (byte) 1 : (byte) 0);
    }
}

Related Tutorials