A mechanism for supplying attribution text -- mainly useful for external
walkers. git-svn-id: file:///humgen/gsa-scr1/gsa-engineering/svn_contents/trunk@4402 348d0f76-0448-11de-a6fe-93d51630548a
This commit is contained in:
parent
e920badcc4
commit
8d25a5f9f2
|
|
@ -95,7 +95,9 @@ public abstract class CommandLineProgram {
|
|||
*/
|
||||
protected ApplicationDetails getApplicationDetails() {
|
||||
return new ApplicationDetails(ApplicationDetails.createDefaultHeader(getClass()),
|
||||
ApplicationDetails.createDefaultRunningInstructions(getClass()));
|
||||
Collections.<String>emptyList(),
|
||||
ApplicationDetails.createDefaultRunningInstructions(getClass()),
|
||||
null);
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
|||
|
|
@ -26,6 +26,7 @@
|
|||
package org.broadinstitute.sting.gatk;
|
||||
|
||||
import org.broadinstitute.sting.gatk.arguments.GATKArgumentCollection;
|
||||
import org.broadinstitute.sting.gatk.walkers.Attribution;
|
||||
import org.broadinstitute.sting.utils.exceptions.UserException;
|
||||
import org.broadinstitute.sting.utils.text.TextFormattingUtils;
|
||||
import org.broadinstitute.sting.utils.help.ApplicationDetails;
|
||||
|
|
@ -61,6 +62,7 @@ public class CommandLineGATK extends CommandLineExecutable {
|
|||
@Override
|
||||
protected ApplicationDetails getApplicationDetails() {
|
||||
return new ApplicationDetails(createApplicationHeader(),
|
||||
getAttribution(),
|
||||
ApplicationDetails.createDefaultRunningInstructions(getClass()),
|
||||
getAdditionalHelp());
|
||||
}
|
||||
|
|
@ -98,7 +100,7 @@ public class CommandLineGATK extends CommandLineExecutable {
|
|||
public static List<String> createApplicationHeader() {
|
||||
List<String> header = new ArrayList<String>();
|
||||
header.add(String.format("The Genome Analysis Toolkit (GATK) v%s, Compiled %s",getVersionNumber(), getBuildTime()));
|
||||
header.add("Copyright (c) 2009 The Broad Institute");
|
||||
header.add("Copyright (c) 2010 The Broad Institute");
|
||||
header.add("Please view our documentation at http://www.broadinstitute.org/gsa/wiki");
|
||||
header.add("For support, please view our support site at http://getsatisfaction.com/gsa");
|
||||
return header;
|
||||
|
|
@ -114,6 +116,24 @@ public class CommandLineGATK extends CommandLineExecutable {
|
|||
return headerInfo.containsKey("build.timestamp") ? headerInfo.getString("build.timestamp") : "<unknown>";
|
||||
}
|
||||
|
||||
/**
|
||||
* If the user supplied any additional attribution, return it here.
|
||||
* @return Additional attribution if supplied by the user. Empty (non-null) list otherwise.
|
||||
*/
|
||||
private List<String> getAttribution() {
|
||||
List<String> attributionLines = new ArrayList<String>();
|
||||
|
||||
// If no analysis name is present, fill in extra help on the walkers.
|
||||
WalkerManager walkerManager = engine.getWalkerManager();
|
||||
String analysisName = getAnalysisName();
|
||||
if(analysisName != null && walkerManager.exists(analysisName)) {
|
||||
Class<? extends Walker> walkerType = walkerManager.getWalkerClassByName(analysisName);
|
||||
if(walkerType.isAnnotationPresent(Attribution.class))
|
||||
attributionLines.addAll(Arrays.asList(walkerType.getAnnotation(Attribution.class).value()));
|
||||
}
|
||||
return attributionLines;
|
||||
}
|
||||
|
||||
/**
|
||||
* Retrieves additional information about GATK walkers.
|
||||
* the code in HelpFormatter and supply it as a helper to this method.
|
||||
|
|
|
|||
|
|
@ -47,6 +47,11 @@ public class ApplicationDetails {
|
|||
*/
|
||||
final List<String> applicationHeader;
|
||||
|
||||
/**
|
||||
* Stores additional attribution for a given walker.
|
||||
*/
|
||||
final List<String> attribution;
|
||||
|
||||
/**
|
||||
* Extract details covering exactly how to run this executable.
|
||||
*/
|
||||
|
|
@ -57,12 +62,9 @@ public class ApplicationDetails {
|
|||
*/
|
||||
final String additionalHelp;
|
||||
|
||||
public ApplicationDetails( List<String> applicationHeader, String runningInstructions ) {
|
||||
this(applicationHeader,runningInstructions,null);
|
||||
}
|
||||
|
||||
public ApplicationDetails( List<String> applicationHeader, String runningInstructions, String additionalHelp ) {
|
||||
public ApplicationDetails( List<String> applicationHeader, List<String> attribution, String runningInstructions, String additionalHelp ) {
|
||||
this.applicationHeader = applicationHeader;
|
||||
this.attribution = attribution;
|
||||
this.runningInstructions = runningInstructions;
|
||||
this.additionalHelp = additionalHelp;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -65,6 +65,9 @@ public class HelpFormatter {
|
|||
for(String headerLine: header)
|
||||
System.out.printf("%s%n",headerLine);
|
||||
System.out.printf("%s%n",barrier);
|
||||
for(String attributionLine: applicationDetails.attribution)
|
||||
System.out.printf("%s%n",attributionLine);
|
||||
System.out.printf("%s%n",barrier);
|
||||
|
||||
String synopsis = getSynopsis(applicationDetails.runningInstructions,argumentGroups);
|
||||
String additionalDetails = applicationDetails.additionalHelp != null ? applicationDetails.additionalHelp : "";
|
||||
|
|
@ -293,6 +296,10 @@ public class HelpFormatter {
|
|||
logger.info("Program Args: " + output);
|
||||
logger.info("Date/Time: " + dateFormat.format(date));
|
||||
logger.info(barrier);
|
||||
|
||||
for(String attribution: applicationDetails.attribution)
|
||||
logger.info(attribution);
|
||||
logger.info(barrier);
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
|||
Loading…
Reference in New Issue