Class ConeErrorPolicy

java.lang.Object
uk.ac.starlink.ttools.cone.ConeErrorPolicy

public abstract class ConeErrorPolicy extends Object
Defines how errors are treated during a multiple cone search operation. It also makes sure that interruptions are checked for, which is important to stop threads continuing to submit requests to remote services after the client no longer has any need for them.
Since:
24 Jan 2007
Author:
Mark Taylor
  • Field Details

    • ABORT

      public static final ConeErrorPolicy ABORT
      An error during a cone search results in a failure of the task.
    • IGNORE

      public static final ConeErrorPolicy IGNORE
      Errors during cone searches are treated as if the search had returned with no results.
    • RETRY

      public static final ConeErrorPolicy RETRY
      If an error occurs during a cone search it is retried until a non-error result is obtained. Use with care.
  • Constructor Details

    • ConeErrorPolicy

      protected ConeErrorPolicy(String name)
      Constructor.
      Parameters:
      name - policy name
  • Method Details

    • toString

      public String toString()
      Returns this object's name.
      Overrides:
      toString in class Object
    • performConeSearch

      public abstract uk.ac.starlink.table.StarTable performConeSearch(ConeSearcher cs, double ra, double dec, double sr) throws IOException, InterruptedException
      Uses the given cone searcher object to perform an actual cone search. This may result in more than one call to the given cone searcher's performSearch method.

      Implementations are expected to check for thread interruption status and throw an InterruptedException if interruption has happened. They should do this in such a way that the cone search query is not performed (especially multiple times) following an interruption.

      Parameters:
      cs - cone searcher providing basic cone search capabilities
      ra - right ascension in degrees of search region centre
      dec - declination in degrees of search region centre
      sr - search radius in degrees
      Returns:
      table containing records in the given cone, or possibly null if no records are found
      Throws:
      IOException - if an IO error occurs
      InterruptedException - if the thread was interrupted
      See Also:
    • createRetryPolicy

      public static ConeErrorPolicy createRetryPolicy(String name, int nTry)
      Constructs an error policy which will retry the search a fixed number of times. A backing-off policy applies so that progressively longer delays are introduced between successive attempts following failure.
      Parameters:
      name - policy name
      nTry - maximum number of attempts; if <=0 will retry indefinitely
      Returns:
      new error policy
    • createAdviceAbortPolicy

      public static ConeErrorPolicy createAdviceAbortPolicy(String name, String extraAdvice)
      Returns a policy like ABORT, except that if an error occurs, the IOException thrown is populated with some custom text.
      Parameters:
      name - policy name
      extraAdvice - advice to user in case of cone search failure
      Returns:
      new abort-like policy