package com.github.ltsopensource.remoting.codec;
import com.github.ltsopensource.core.constant.Constants;
import com.github.ltsopensource.core.spi.ServiceLoader;
import com.github.ltsopensource.remoting.serialize.AdaptiveSerializable;
import com.github.ltsopensource.remoting.serialize.RemotingSerializable;
/**
* @author Robert HG (254963746@qq.com) on 11/6/15.
*/
public abstract class AbstractCodec implements Codec {
protected RemotingSerializable getRemotingSerializable(int serializableTypeId) {
RemotingSerializable serializable = null;
if (serializableTypeId > 0) {
serializable = AdaptiveSerializable.getSerializableById(serializableTypeId);
if (serializable == null) {
throw new IllegalArgumentException("Can not support RemotingSerializable that serializableTypeId=" + serializableTypeId);
}
} else {
serializable = ServiceLoader.load(RemotingSerializable.class, Constants.ADAPTIVE);
}
return serializable;
}
}