All Downloads are FREE. Search and download functionalities are using the official Maven repository.

hprose.io.unserialize.AtomicReferenceUnserializer Maven / Gradle / Ivy

/**********************************************************\
|                                                          |
|                          hprose                          |
|                                                          |
| Official WebSite: http://www.hprose.com/                 |
|                   http://www.hprose.org/                 |
|                                                          |
\**********************************************************/
/**********************************************************\
 *                                                        *
 * AtomicReferenceUnserializer.java                       *
 *                                                        *
 * AtomicReference unserializer class for Java.           *
 *                                                        *
 * LastModified: Apr 17, 2016                             *
 * Author: Ma Bingyao                   *
 *                                                        *
\**********************************************************/

package hprose.io.unserialize;

import java.io.IOException;
import java.io.InputStream;
import java.lang.reflect.ParameterizedType;
import java.lang.reflect.Type;
import java.nio.ByteBuffer;
import java.util.concurrent.atomic.AtomicReference;

final class AtomicReferenceUnserializer implements Unserializer {

    public final static AtomicReferenceUnserializer instance = new AtomicReferenceUnserializer();

    @SuppressWarnings({"unchecked"})
    public final Object read(Reader reader, ByteBuffer buffer, Class cls, Type type) throws IOException {
        if (type instanceof ParameterizedType) {
            return new AtomicReference(reader.unserialize(buffer, ((ParameterizedType)type).getActualTypeArguments()[0]));
        }
        else {
            return new AtomicReference(reader.unserialize(buffer, Object.class));
        }
    }

    @SuppressWarnings({"unchecked"})
    public final Object read(Reader reader, InputStream stream, Class cls, Type type) throws IOException {
        if (type instanceof ParameterizedType) {
            return new AtomicReference(reader.unserialize(stream, ((ParameterizedType)type).getActualTypeArguments()[0]));
        }
        else {
            return new AtomicReference(reader.unserialize(stream, Object.class));
        }
    }

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy