001package eu.cqse.check.framework.core;
002
003import eu.cqse.check.framework.core.phase.ECodeViewOption;
004import eu.cqse.check.framework.core.phase.IGlobalExtractionPhase;
005
006/**
007 * An enumeration of all parameters that can be passed to a custom check or a
008 * custom check phase.
009 * 
010 * Custom checks specify which parameters they need in their {@link Check}
011 * annotation.
012 * 
013 * Custom check phases ({@link IGlobalExtractionPhase}) specify the required
014 * parameters in {@link IGlobalExtractionPhase#getRequiredContextParameters()}.
015 */
016public enum ECheckParameter {
017
018        /**
019         * Custom checks and custom check phases must require this parameter if they use
020         * tokens ({@link ICheckContext#getTokens(ECodeViewOption)}) or an abstract
021         * syntax tree ({@link ICheckContext#getAbstractSyntaxTree(ECodeViewOption)}) of
022         * the token element that is currently analyzed.
023         * 
024         * If this parameter is missing, the token/shallow entity list is not
025         * initialized.
026         */
027        ABSTRACT_SYNTAX_TREE,
028
029        /**
030         * Parameter for type resolution that can be applied to shallow entities.
031         */
032        TYPE_RESOLUTION,
033
034        /**
035         * Parameter for using the Clang parser infrastructure.
036         */
037        CLANG
038
039}