From 56f8afab971d4c67c4d07c8a270e9d2b697cb731 Mon Sep 17 00:00:00 2001 From: Eric Banks Date: Wed, 1 Aug 2012 09:50:00 -0400 Subject: [PATCH] Requested by Geraldine: adding a utility to register deprecated walkers (and the major version of the first release since they were removed) so that the User Error printed out for e.g. CountCovariates now states: Walker CountCovariates is no longer available in the GATK; it has been deprecated since version 2.0. --- .../sting/gatk/GenomeAnalysisEngine.java | 35 +++++++++++++++++++ .../sting/utils/exceptions/UserException.java | 6 ++-- 2 files changed, 38 insertions(+), 3 deletions(-) diff --git a/public/java/src/org/broadinstitute/sting/gatk/GenomeAnalysisEngine.java b/public/java/src/org/broadinstitute/sting/gatk/GenomeAnalysisEngine.java index eab9fde79..5d6fb75ed 100755 --- a/public/java/src/org/broadinstitute/sting/gatk/GenomeAnalysisEngine.java +++ b/public/java/src/org/broadinstitute/sting/gatk/GenomeAnalysisEngine.java @@ -274,6 +274,38 @@ public class GenomeAnalysisEngine { //return result; } + // TODO -- Let's move this to a utility class in unstable - but which one? + // ************************************************************************************** + // * Handle Deprecated Walkers * + // ************************************************************************************** + + // Mapping from walker name to major version number where the walker first disappeared + private static Map deprecatedGATKWalkers = new HashMap(); + static { + deprecatedGATKWalkers.put("CountCovariates", "2.0"); + deprecatedGATKWalkers.put("TableRecalibration", "2.0"); + } + + /** + * Utility method to check whether a given walker has been deprecated in a previous GATK release + * + * @param walkerName the walker class name (not the full package) to check + */ + public static boolean isDeprecatedWalker(final String walkerName) { + return deprecatedGATKWalkers.containsKey(walkerName); + } + + /** + * Utility method to check whether a given walker has been deprecated in a previous GATK release + * + * @param walkerName the walker class name (not the full package) to check + */ + public static String getDeprecatedMajorVersionNumber(final String walkerName) { + return deprecatedGATKWalkers.get(walkerName); + } + + // ************************************************************************************** + /** * Retrieves an instance of the walker based on the walker name. * @@ -287,6 +319,9 @@ public class GenomeAnalysisEngine { if ( isGATKLite() && GATKLiteUtils.isAvailableOnlyInFullGATK(walkerName) ) { e = new UserException.NotSupportedInGATKLite("the " + walkerName + " walker is available only in the full version of the GATK"); } + else if ( isDeprecatedWalker(walkerName) ) { + e = new UserException.DeprecatedWalker(walkerName, getDeprecatedMajorVersionNumber(walkerName)); + } throw e; } } diff --git a/public/java/src/org/broadinstitute/sting/utils/exceptions/UserException.java b/public/java/src/org/broadinstitute/sting/utils/exceptions/UserException.java index 9ce4e82a1..52da31362 100755 --- a/public/java/src/org/broadinstitute/sting/utils/exceptions/UserException.java +++ b/public/java/src/org/broadinstitute/sting/utils/exceptions/UserException.java @@ -316,9 +316,9 @@ public class UserException extends ReviewedStingException { - public static class MissingWalker extends UserException { - public MissingWalker(String walkerName, String message) { - super(String.format("Walker %s is not available: %s", walkerName, message)); + public static class DeprecatedWalker extends UserException { + public DeprecatedWalker(String walkerName, String version) { + super(String.format("Walker %s is no longer available in the GATK; it has been deprecated since version %s", walkerName, version)); } }