package org.limewire.util; import java.util.concurrent.atomic.AtomicReference; import org.jmock.api.Invocation; import org.jmock.lib.action.CustomAction; /** * JMock action that allows assignment of the ith parameter of an invocation * to an atomic reference. */ public class AssignParameterAction<T> extends CustomAction { private final AtomicReference<T> reference; private final int param; public AssignParameterAction(AtomicReference<T> reference, int param) { super("assign"); this.reference = reference; this.param = param; } @SuppressWarnings("unchecked") @Override public Object invoke(Invocation invocation) throws Throwable { reference.set((T)invocation.getParameter(param)); return null; } }