package com.paypal.core; import com.paypal.core.credential.ICredential; /** * A Strategy pattern to retrieve {@link ICredential} as any conceivable * datatype as required by the application * * @param <T> * Return data type * @param <E> * Operated {@link ICredential} */ public interface AuthenticationStrategy<T, E extends ICredential> { /** * Generates Headers {@link ICredential} as any type as chosen by the * implementation * * @param e * {@link ICredential} instance * @return T * @throws Exception */ T generateHeaderStrategy(E e) throws Exception; }