Are encoders only ever called from a single thread?

I have a stateful utility class that I use to encode my objects. Is it safe
to only create a single instance? Something like this:

MyObjectEncoder

public class MyObjectEncoder implements Encoder<MyObject> {

    private final MyObjectEncoderHelper helper =
new MyObjectEncoderHelper();

    public MyObjectEncoder(VerifiableProperties props) {}

    @Override

    public byte[] toBytes(MyObject myObject) {

        // Stateful. So can't be called concurrently.

        helper.encode(myObject);

        return helper.bytes();

    }

}

I am wondering if this is legal or if I have to create a new helper object
every time toBytes is called.


Thanks!

Reply via email to