
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