class HazelcastOffloadableEntryProcessorSerializer implements StreamSerializer<HazelcastOffloadableEntryProcessor>, TypedStreamDeserializer<HazelcastOffloadableEntryProcessor> {

    private final int typeId;

    public HazelcastOffloadableEntryProcessorSerializer(int typeId) {
        this.typeId = typeId;
    }
    public HazelcastOffloadableEntryProcessorSerializer() {
        this.typeId = SerializationUtilities.getSerializerTypeId(this.getClass());
    }

    public Class<HazelcastOffloadableEntryProcessor> getSerializableType() {
        return HazelcastOffloadableEntryProcessor.class;
    }

    @Override
    public int getTypeId() {
        return typeId;
    }

    @Override
    public void destroy() {

    }

    @Override
    public void write(ObjectDataOutput out, HazelcastOffloadableEntryProcessor serializable) throws IOException {
        out.writeByteArray(serializable.getRequestBytes());
        out.writeString(serializable.getExecutorName());
    }

    @Override
    public HazelcastOffloadableEntryProcessor read(ObjectDataInput in) throws IOException {
        return read0(in);
    }

    @Override
    public HazelcastOffloadableEntryProcessor read(ObjectDataInput in, Class aClass) throws IOException {
        return read0(in);
    }

    private HazelcastOffloadableEntryProcessor read0(ObjectDataInput in) throws IOException {<FILL_FUNCTION_BODY>}

}

        byte[] commandBytes = in.readByteArray();
        String executorName = in.readString();
        return new HazelcastOffloadableEntryProcessor(commandBytes, executorName);
    
<no_super_class>