package edu.umd.cs.findbugs.detect;
import edu.umd.cs.findbugs.props.AbstractWarningProperty;
import edu.umd.cs.findbugs.props.PriorityAdjustment;
/**
* Warning property for FindDeadLocalStores.
*
* @author David Hovemeyer
*/
public class DeadLocalStoreProperty extends AbstractWarningProperty {
private DeadLocalStoreProperty(String name, PriorityAdjustment priorityAdjustment) {
super(name, priorityAdjustment);
}
/** A store in a JSP page */
public static final DeadLocalStoreProperty IN_JSP_PAGE = new DeadLocalStoreProperty("IN_JSP_PAGE",
PriorityAdjustment.FALSE_POSITIVE);
/** A store in non Java page */
public static final DeadLocalStoreProperty NOT_JAVA = new DeadLocalStoreProperty("IN_JSP_PAGE",
PriorityAdjustment.AT_MOST_LOW);
/**
* A store that seemed to have been cloned (an inlined finally block or JSR?
*/
public static final DeadLocalStoreProperty CLONED_STORE = new DeadLocalStoreProperty("CLONED_STORE",
PriorityAdjustment.FALSE_POSITIVE);
/** Store is killed by a subsequent store. */
public static final DeadLocalStoreProperty KILLED_BY_SUBSEQUENT_STORE = new DeadLocalStoreProperty(
"KILLED_BY_SUBSEQUENT_STORE", PriorityAdjustment.LOWER_PRIORITY);
/** Store of database operation */
public static final DeadLocalStoreProperty STORE_OF_DATABASE_VALUE = new DeadLocalStoreProperty("STORE_OF_DATABASE_VALUE",
PriorityAdjustment.RAISE_PRIORITY_TO_AT_LEAST_NORMAL);
/** Dead store is of a defense programming constant value. */
public static final DeadLocalStoreProperty DEFENSIVE_CONSTANT_OPCODE = new DeadLocalStoreProperty(
"DEFENSIVE_CONSTANT_OPCODE", PriorityAdjustment.A_LITTLE_BIT_LOWER_PRIORITY);
/** Dead store is likely to be the exception object in an exception handler. */
public static final DeadLocalStoreProperty EXCEPTION_HANDLER = new DeadLocalStoreProperty("EXCEPTION_HANDLER",
PriorityAdjustment.FALSE_POSITIVE);
/** The dead store is an increment. */
public static final DeadLocalStoreProperty DEAD_INCREMENT = new DeadLocalStoreProperty("DEAD_INCREMENT",
PriorityAdjustment.LOWER_PRIORITY);
public static final DeadLocalStoreProperty DEAD_INCREMENT_IN_MAIN = new DeadLocalStoreProperty("DEAD_INCREMENT",
PriorityAdjustment.AT_MOST_LOW);
public static final DeadLocalStoreProperty METHOD_RESULT = new DeadLocalStoreProperty("METHOD_RESULT",
PriorityAdjustment.A_LITTLE_BIT_HIGHER_PRIORITY);
/** The dead store is an increment: the only one in the method. */
public static final DeadLocalStoreProperty SINGLE_DEAD_INCREMENT = new DeadLocalStoreProperty("SINGLE_DEAD_INCREMENT",
PriorityAdjustment.RAISE_PRIORITY);
/** Dead store is of a newly allocated object. */
public static final DeadLocalStoreProperty DEAD_OBJECT_STORE = new DeadLocalStoreProperty("DEAD_OBJECT_STORE",
PriorityAdjustment.RAISE_PRIORITY);
/** Method contains two stores and multiple loads of this local. */
public static final DeadLocalStoreProperty TWO_STORES_MULTIPLE_LOADS = new DeadLocalStoreProperty(
"TWO_STORES_MULTIPLE_LOADS", PriorityAdjustment.NO_ADJUSTMENT);
/** There is only one store of this local. (Maybe it's final?) */
public static final DeadLocalStoreProperty SINGLE_STORE = new DeadLocalStoreProperty("SINGLE_STORE",
PriorityAdjustment.FALSE_POSITIVE);
/** There is a dup immediately before the store; perhaps a ++ operation */
public static final DeadLocalStoreProperty DUP_THEN_STORE = new DeadLocalStoreProperty("DUP_THEN_STORE",
PriorityAdjustment.FALSE_POSITIVE);
/** There are no loads of this local. (Maybe it's final?). */
public static final DeadLocalStoreProperty NO_LOADS = new DeadLocalStoreProperty("NO_LOADS",
PriorityAdjustment.A_LITTLE_BIT_LOWER_PRIORITY);
/** Variable shadows a fields with the same name */
public static final DeadLocalStoreProperty SHADOWS_FIELD = new DeadLocalStoreProperty("SHADOWS_FIELD",
PriorityAdjustment.RAISE_PRIORITY);
public static final DeadLocalStoreProperty SYNTHETIC_NAME = new DeadLocalStoreProperty("SYNTHETIC_NAME",
PriorityAdjustment.AT_MOST_LOW);
/** This local is a parameter which is dead on entry to the method. */
public static final DeadLocalStoreProperty PARAM_DEAD_ON_ENTRY = new DeadLocalStoreProperty("PARAM_DEAD_ON_ENTRY",
PriorityAdjustment.RAISE_PRIORITY_TO_HIGH);
/** Name of the local variable. */
public static final DeadLocalStoreProperty LOCAL_NAME = new DeadLocalStoreProperty("LOCAL_NAME",
PriorityAdjustment.NO_ADJUSTMENT);
/** Caching value */
public static final DeadLocalStoreProperty CACHING_VALUE = new DeadLocalStoreProperty("CACHING_VALUE",
PriorityAdjustment.LOWER_PRIORITY);
/** copy value */
public static final DeadLocalStoreProperty COPY_VALUE = new DeadLocalStoreProperty("COPY_VALUE",
PriorityAdjustment.A_LITTLE_BIT_LOWER_PRIORITY);
/** primitive or string */
public static final DeadLocalStoreProperty BASE_VALUE = new DeadLocalStoreProperty("BASE_VALUE",
PriorityAdjustment.A_LITTLE_BIT_LOWER_PRIORITY);
/** many stores */
public static final DeadLocalStoreProperty MANY_STORES = new DeadLocalStoreProperty("MANY_STORES",
PriorityAdjustment.LOWER_PRIORITY);
public static final DeadLocalStoreProperty STORE_OF_NULL = new DeadLocalStoreProperty("STORE_OF_NULL",
PriorityAdjustment.AT_MOST_LOW);
public static final DeadLocalStoreProperty STORE_OF_CONSTANT = new DeadLocalStoreProperty("STORE_OF_CONSTANT",
PriorityAdjustment.LOWER_PRIORITY);
public static final DeadLocalStoreProperty IS_PARAMETER = new DeadLocalStoreProperty("IS_PARAMETER",
PriorityAdjustment.RAISE_PRIORITY);
}