1 /** 2 * Copyright 2005 Steve Molloy 3 * 4 * This file is part of OV4J. 5 * 6 * OV4J is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as 7 * published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. 8 * 9 * OV4J is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty 10 * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. 11 * 12 * You should have received a copy of the GNU General Public License along with OV4J; if not, write to the Free Software 13 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA 14 * 15 */ 16 package org.ov4j.retry; 17 18 /** 19 * Interface to implement to be able to have methods retried. 20 * 21 * @author smolloy 22 * 23 */ 24 public interface IRetryable { 25 /** Stop retrying the call. */ 26 public static final int STOP_TRYING = 0; 27 28 /** Keep retrying the call. */ 29 public static final int KEEP_TRYING = 1; 30 31 /** Stop retrying the call for now, but retry next time the VM is started. */ 32 public static final int TRY_NEXT_RUN = 2; 33 34 /** 35 * The maximum number of retries has been reached. 36 * 37 * @param result 38 * Information about the call. 39 * @return One of STOP_TRYING, KEEP_TRYING or TRY_NEXT_RUN. 40 */ 41 public int maxRetriesReached(RetryableCallResult result); 42 43 /** 44 * The call is done. 45 * 46 * @param result 47 * Result of the call. 48 */ 49 public void retryCallback(RetryableCallResult result); 50 }