package org.talend.esb.auxiliary.storage.examples; import org.talend.esb.auxiliary.storage.common.AuxiliaryObjectFactory; public class CallContextFactoryImpl<E> implements AuxiliaryObjectFactory<E> { @Override public String marshalObject(E ctx) { if(ctx instanceof CallContext){ return ((CallContext) ctx).getCallbackId(); } else { throw new IllegalArgumentException("Marshalled object should be an instance of " + " org.talend.esb.auxiliary.storage.examples.CallContext class"); } } @SuppressWarnings("unchecked") @Override public E unmarshallObject(String marshalledData) { CallContext ctx = new CallContext(); ctx.setCallbackId(marshalledData); return (E)ctx ; } @Override public String createObjectKey(E ctx) { if(ctx instanceof CallContext){ return ((CallContext) ctx).getCallbackId(); } return null; } }