public static final @AnalysisFeature int ACCURATE_EXCEPTIONS = 0; public static final @AnalysisFeature int CONSERVE_SPACE = 1; public static final @AnalysisFeature int MODEL_INSTANCEOF = 2; public static final @AnalysisFeature int SKIP_HUGE_METHODS = 3; public static final @Deprecated @AnalysisFeature int INTERATIVE_OPCODE_STACK_ANALYSIS = 4; public static final @AnalysisFeature int TRACK_GUARANTEED_VALUE_DEREFS_IN_NULL_POINTER_ANALYSIS = 5; public static final @AnalysisFeature int TRACK_VALUE_NUMBERS_IN_NULL_POINTER_ANALYSIS = 6; public static final @AnalysisFeature int MERGE_SIMILAR_WARNINGS = 7; public static final @AnalysisFeature int NUM_BOOLEAN_ANALYSIS_PROPERTIES = 128;
public static final @AnalysisFeature int ACCURATE_EXCEPTIONS = 0; public static final @AnalysisFeature int CONSERVE_SPACE = 1; public static final @AnalysisFeature int MODEL_INSTANCEOF = 2; public static final @AnalysisFeature int SKIP_HUGE_METHODS = 3; public static final @Deprecated @AnalysisFeature int INTERATIVE_OPCODE_STACK_ANALYSIS = 4; public static final @AnalysisFeature int TRACK_GUARANTEED_VALUE_DEREFS_IN_NULL_POINTER_ANALYSIS = 5; public static final @AnalysisFeature int TRACK_VALUE_NUMBERS_IN_NULL_POINTER_ANALYSIS = 6; public static final @AnalysisFeature int MERGE_SIMILAR_WARNINGS = 7; public static final @AnalysisFeature int NUM_BOOLEAN_ANALYSIS_PROPERTIES = 128;
public static final @AnalysisFeature int RELAXED_REPORTING_MODE = AnalysisFeatures.Builder.build("RELAXED_REPORTING_MODE"); public static final @AnalysisFeature int INTERPROCEDURAL_ANALYSIS = AnalysisFeatures.Builder.build("INTERPROCEDURAL_ANALYSIS"); public static final @AnalysisFeature int INTERPROCEDURAL_ANALYSIS_OF_REFERENCED_CLASSES = AnalysisFeatures.Builder.build("INTERPROCEDURAL_ANALYSIS_OF_REFERENCED_CLASSES");
private @AnalysisFeature final int property;
private static @AnalysisFeature int asFeatureNum(int num) { return num; } static @AnalysisFeature
static boolean getProperty(@AnalysisFeature int property) { return AnalysisContext.currentAnalysisContext().getBoolProperty(property); }
static void setProperty(@AnalysisFeature int property, boolean value) { AnalysisContext.currentAnalysisContext().setBoolProperty(property, value); }
/** * Set a boolean property. * * @param prop * the property to set * @param value * the value of the property */ public final void setBoolProperty(@AnalysisFeature int prop, boolean value) { boolPropertySet.set(prop, value); }
/** * Constructor. * * @param property * the analysis property to configure * @param enabled * true if the property is enabled, false if not */ public AnalysisFeatureSetting(@AnalysisFeature int property, boolean enabled) { this.property = property; this.enabled = enabled; }
/** * Get a boolean property. * * @param prop * the property * @return value of the property; defaults to false if the property has not * had a value assigned explicitly */ public final boolean getBoolProperty(@AnalysisFeature int prop) { return boolPropertySet.get(prop); }
static @AnalysisFeature public int build(String name) { int num = next++; return asFeatureNum(num); }
public static final @AnalysisFeature int RELAXED_REPORTING_MODE = AnalysisFeatures.Builder.build("RELAXED_REPORTING_MODE"); public static final @AnalysisFeature int INTERPROCEDURAL_ANALYSIS = AnalysisFeatures.Builder.build("INTERPROCEDURAL_ANALYSIS"); public static final @AnalysisFeature int INTERPROCEDURAL_ANALYSIS_OF_REFERENCED_CLASSES = AnalysisFeatures.Builder.build("INTERPROCEDURAL_ANALYSIS_OF_REFERENCED_CLASSES");
private @AnalysisFeature final int property;
static boolean getProperty(@AnalysisFeature int property) { return AnalysisContext.currentAnalysisContext().getBoolProperty(property); }
static void setProperty(@AnalysisFeature int property, boolean value) { AnalysisContext.currentAnalysisContext().setBoolProperty(property, value); }
private static @AnalysisFeature int asFeatureNum(int num) { return num; } static @AnalysisFeature
static @AnalysisFeature public int build(String name) { int num = next++; return asFeatureNum(num); }
/** * Constructor. * * @param property * the analysis property to configure * @param enabled * true if the property is enabled, false if not */ public AnalysisFeatureSetting(@AnalysisFeature int property, boolean enabled) { this.property = property; this.enabled = enabled; }
/** * Get a boolean property. * * @param prop * the property * @return value of the property; defaults to false if the property has not * had a value assigned explicitly */ public final boolean getBoolProperty(@AnalysisFeature int prop) { return boolPropertySet.get(prop); }
/** * Set a boolean property. * * @param prop * the property to set * @param value * the value of the property */ public final void setBoolProperty(@AnalysisFeature int prop, boolean value) { boolPropertySet.set(prop, value); }