public class UnreadFields extends OpcodeStackDetector
OpcodeStackDetector.WithCustomJumpInfostackcodeBytes, lineNumberTable, M_BR, M_CP, M_INT, M_PAD, M_R, M_UINTEXP_PRIORITY, HIGH_PRIORITY, IGNORE_PRIORITY, LOW_PRIORITY, NORMAL_PRIORITYAALOAD, AASTORE, ACC_ABSTRACT, ACC_ANNOTATION, ACC_BRIDGE, ACC_ENUM, ACC_FINAL, ACC_INTERFACE, ACC_NATIVE, ACC_PRIVATE, ACC_PROTECTED, ACC_PUBLIC, ACC_STATIC, ACC_STRICT, ACC_SUPER, ACC_SYNCHRONIZED, ACC_SYNTHETIC, ACC_SYPER, ACC_TRANSIENT, ACC_VARARGS, ACC_VOLATILE, ACCESS_NAMES, ACONST_NULL, ALOAD, ALOAD_0, ALOAD_1, ALOAD_2, ALOAD_3, ANEWARRAY, ANEWARRAY_QUICK, APPEND_FRAME, APPEND_FRAME_MAX, ARETURN, ARRAYLENGTH, ASTORE, ASTORE_0, ASTORE_1, ASTORE_2, ASTORE_3, ATHROW, ATTR_ANNOTATION_DEFAULT, ATTR_CODE, ATTR_CONSTANT_VALUE, ATTR_DEPRECATED, ATTR_ENCLOSING_METHOD, ATTR_EXCEPTIONS, ATTR_INNER_CLASSES, ATTR_LINE_NUMBER_TABLE, ATTR_LOCAL_VARIABLE_TABLE, ATTR_LOCAL_VARIABLE_TYPE_TABLE, ATTR_PMG, ATTR_RUNTIME_VISIBLE_ANNOTATIONS, ATTR_RUNTIME_VISIBLE_PARAMETER_ANNOTATIONS, ATTR_RUNTIMEIN_VISIBLE_ANNOTATIONS, ATTR_RUNTIMEIN_VISIBLE_PARAMETER_ANNOTATIONS, ATTR_SIGNATURE, ATTR_SOURCE_FILE, ATTR_STACK_MAP, ATTR_STACK_MAP_TABLE, ATTR_SYNTHETIC, ATTR_UNKNOWN, ATTRIBUTE_NAMES, BALOAD, BASTORE, BIPUSH, BREAKPOINT, CALOAD, CASTORE, CHECKCAST, CHECKCAST_QUICK, CHOP_FRAME, CHOP_FRAME_MAX, CLASS_TYPE_NAMES, CONSTANT_Class, CONSTANT_Double, CONSTANT_Fieldref, CONSTANT_Float, CONSTANT_Integer, CONSTANT_InterfaceMethodref, CONSTANT_InvokeDynamic, CONSTANT_Long, CONSTANT_MethodHandle, CONSTANT_Methodref, CONSTANT_MethodType, CONSTANT_NameAndType, CONSTANT_NAMES, CONSTANT_String, CONSTANT_Utf8, CONSTRUCTOR_NAME, CONSUME_STACK, D2F, D2I, D2L, DADD, DALOAD, DASTORE, DCMPG, DCMPL, DCONST_0, DCONST_1, DDIV, DLOAD, DLOAD_0, DLOAD_1, DLOAD_2, DLOAD_3, DMUL, DNEG, DREM, DRETURN, DSTORE, DSTORE_0, DSTORE_1, DSTORE_2, DSTORE_3, DSUB, DUP, DUP_X1, DUP_X2, DUP2, DUP2_X1, DUP2_X2, F2D, F2I, F2L, FADD, FALOAD, FASTORE, FCMPG, FCMPL, FCONST_0, FCONST_1, FCONST_2, FDIV, FLOAD, FLOAD_0, FLOAD_1, FLOAD_2, FLOAD_3, FMUL, FNEG, FREM, FRETURN, FSTORE, FSTORE_0, FSTORE_1, FSTORE_2, FSTORE_3, FSUB, FULL_FRAME, GETFIELD, GETFIELD_QUICK, GETFIELD_QUICK_W, GETFIELD2_QUICK, GETSTATIC, GETSTATIC_QUICK, GETSTATIC2_QUICK, GOTO, GOTO_W, I2B, I2C, I2D, I2F, I2L, I2S, IADD, IALOAD, IAND, IASTORE, ICONST_0, ICONST_1, ICONST_2, ICONST_3, ICONST_4, ICONST_5, ICONST_M1, IDIV, IF_ACMPEQ, IF_ACMPNE, IF_ICMPEQ, IF_ICMPGE, IF_ICMPGT, IF_ICMPLE, IF_ICMPLT, IF_ICMPNE, IFEQ, IFGE, IFGT, IFLE, IFLT, IFNE, IFNONNULL, IFNULL, IINC, ILLEGAL_OPCODE, ILLEGAL_TYPE, ILOAD, ILOAD_0, ILOAD_1, ILOAD_2, ILOAD_3, IMPDEP1, IMPDEP2, IMUL, INEG, INSTANCEOF, INSTANCEOF_QUICK, INT2BYTE, INT2CHAR, INT2SHORT, INTERFACES_IMPLEMENTED_BY_ARRAYS, INVOKEDYNAMIC, INVOKEINTERFACE, INVOKEINTERFACE_QUICK, INVOKENONVIRTUAL, INVOKENONVIRTUAL_QUICK, INVOKESPECIAL, INVOKESTATIC, INVOKESTATIC_QUICK, INVOKESUPER_QUICK, INVOKEVIRTUAL, INVOKEVIRTUAL_QUICK, INVOKEVIRTUAL_QUICK_W, INVOKEVIRTUALOBJECT_QUICK, IOR, IREM, IRETURN, ISHL, ISHR, ISTORE, ISTORE_0, ISTORE_1, ISTORE_2, ISTORE_3, ISUB, ITEM_Bogus, ITEM_Double, ITEM_Float, ITEM_InitObject, ITEM_Integer, ITEM_Long, ITEM_NAMES, ITEM_NewObject, ITEM_Null, ITEM_Object, IUSHR, IXOR, JSR, JSR_W, KNOWN_ATTRIBUTES, L2D, L2F, L2I, LADD, LALOAD, LAND, LASTORE, LCMP, LCONST_0, LCONST_1, LDC, LDC_QUICK, LDC_W, LDC_W_QUICK, LDC2_W, LDC2_W_QUICK, LDIV, LLOAD, LLOAD_0, LLOAD_1, LLOAD_2, LLOAD_3, LMUL, LNEG, LOOKUPSWITCH, LOR, LREM, LRETURN, LSHL, LSHR, LSTORE, LSTORE_0, LSTORE_1, LSTORE_2, LSTORE_3, LSUB, LUSHR, LXOR, MAJOR, MAJOR_1_1, MAJOR_1_2, MAJOR_1_3, MAJOR_1_4, MAJOR_1_5, MAJOR_1_6, MAJOR_1_7, MAJOR_1_8, MAX_ACC_FLAG, MAX_BYTE, MAX_CODE_SIZE, MAX_CP_ENTRIES, MAX_SHORT, MINOR, MINOR_1_1, MINOR_1_2, MINOR_1_3, MINOR_1_4, MINOR_1_5, MINOR_1_6, MINOR_1_7, MINOR_1_8, MONITORENTER, MONITOREXIT, MULTIANEWARRAY, MULTIANEWARRAY_QUICK, NEW, NEW_QUICK, NEWARRAY, NO_OF_OPERANDS, NOP, OPCODE_NAMES, POP, POP2, PRODUCE_STACK, PUSH, PUTFIELD, PUTFIELD_QUICK, PUTFIELD_QUICK_W, PUTFIELD2_QUICK, PUTSTATIC, PUTSTATIC_QUICK, PUTSTATIC2_QUICK, RESERVED, RET, RETURN, SALOAD, SAME_FRAME, SAME_FRAME_EXTENDED, SAME_FRAME_MAX, SAME_LOCALS_1_STACK_ITEM_FRAME, SAME_LOCALS_1_STACK_ITEM_FRAME_EXTENDED, SAME_LOCALS_1_STACK_ITEM_FRAME_MAX, SASTORE, SHORT_TYPE_NAMES, SIPUSH, STATIC_INITIALIZER_NAME, SWAP, SWITCH, T_ADDRESS, T_ARRAY, T_BOOLEAN, T_BYTE, T_CHAR, T_DOUBLE, T_FLOAT, T_INT, T_LONG, T_OBJECT, T_REFERENCE, T_SHORT, T_UNKNOWN, T_VOID, TABLESWITCH, TYPE_NAMES, TYPE_OF_OPERANDS, UNDEFINED, UNPREDICTABLE, WIDE| Constructor and Description |
|---|
UnreadFields(BugReporter bugReporter) |
| Modifier and Type | Method and Description |
|---|---|
static boolean |
classHasParameter(org.apache.bcel.classfile.JavaClass obj) |
boolean |
existsStrongEvidenceForIntendedSerialization(ClassDescriptor c)
Deprecated.
|
java.util.Set<? extends XField> |
getReadFields()
Deprecated.
Use
UnreadFieldsData.getReadFields() instead |
java.util.Set<? extends XField> |
getWrittenFields()
Deprecated.
Use
UnreadFieldsData.getWrittenFields() instead |
boolean |
isContainerField(XField f)
Deprecated.
Use
UnreadFieldsData.isContainerField(XField) instead |
static boolean |
isInjectionAttribute(java.lang.String annotationClass) |
boolean |
isReflexive(XField f)
Deprecated.
Use
UnreadFieldsData.isReflexive(XField) instead |
static boolean |
isSeleniumWebElement(java.lang.String signature) |
boolean |
isWrittenDuringInitialization(XField f)
Deprecated.
|
boolean |
isWrittenInConstructor(XField f)
Deprecated.
Use
UnreadFieldsData.isWrittenInConstructor(XField) instead |
boolean |
isWrittenOutsideOfInitialization(XField f)
Deprecated.
|
void |
report()
This method is called after all classes to be visited.
|
void |
sawOpcode(int seen)
By default, this method will not be called when
stack is TOP.
|
void |
strongEvidenceForIntendedSerialization(ClassDescriptor c)
Deprecated.
|
void |
visit(org.apache.bcel.classfile.Code obj) |
void |
visit(org.apache.bcel.classfile.ConstantValue obj) |
void |
visit(org.apache.bcel.classfile.Field obj) |
void |
visit(org.apache.bcel.classfile.JavaClass obj) |
void |
visit(org.apache.bcel.classfile.Method obj) |
void |
visitAfter(org.apache.bcel.classfile.JavaClass obj) |
void |
visitAnnotation(java.lang.String annotationClass,
java.util.Map<java.lang.String,org.apache.bcel.classfile.ElementValue> map,
boolean runtimeVisible)
Visit annotation on a class, field or method
|
afterOpcode, beforeOpcode, getStack, isUsingCustomUserValue, visitCodegetClassContext, shouldVisitCode, visitClassContextareOppositeBranches, atCatchBlock, getBranchFallThrough, getBranchOffset, getBranchTarget, getClassConstantOperand, getClassDescriptorOperand, getCodeByte, getConstantRefOperand, getDefaultSwitchOffset, getDottedClassConstantOperand, getFieldDescriptorOperand, getIntConstant, getLongConstant, getMaxPC, getMethodDescriptorOperand, getNameConstantOperand, getNextCodeByte, getNextOpcode, getNextPC, getOpcode, getPC, getPrevOpcode, getRefConstantOperand, getRefFieldIsStatic, getRegisterOperand, getSigConstantOperand, getStringConstantOperand, getSwitchLabels, getSwitchOffsets, getXClassOperand, getXFieldOperand, getXMethodOperand, isBranch, isMethodCall, isRegisterLoad, isRegisterStore, isRegisterStore, isReturn, isShift, isSwitch, isWideOpcode, printOpCode, sawBranchTo, sawClass, sawDouble, sawField, sawFloat, sawIMethod, sawInt, sawLong, sawMethod, sawRegister, sawStringgetAnnotationParameterAsString, getAnnotationParameterAsStringArray, visitAnnotation, visitParameterAnnotation, visitParameterAnnotation, visitSyntheticParameterAnnotationamVisitingMainMethod, asUnsignedByte, doVisitMethod, getClassDescriptor, getClassName, getCode, getConstantPool, getDottedClassName, getDottedFieldSig, getDottedMethodSig, getDottedSuperclassName, getField, getFieldDescriptor, getFieldIsStatic, getFieldName, getFieldSig, getFullyQualifiedFieldName, getFullyQualifiedMethodName, getMethod, getMethodDescriptor, getMethodName, getMethodSig, getMethodVisitOrder, getNumberArguments, getNumberMethodArguments, getPackageName, getSizeOfSurroundingTryBlock, getSizeOfSurroundingTryBlock, getSourceFile, getStringFromIndex, getSuperclassName, getSurroundingCaughtExceptions, getSurroundingCaughtExceptions, getSurroundingTryBlock, getSurroundingTryBlock, getThisClass, getXClass, getXField, getXMethod, hasInterestingClass, hasInterestingMethod, isVisitMethodsInCallOrder, setupVisitorForClass, setVisitMethodsInCallOrder, shouldVisit, toString, visitAfter, visitAnnotationDefault, visitAnnotationEntry, visitConstantPool, visitEnclosingMethod, visitingField, visitingMethod, visitInnerClasses, visitJavaClass, visitLineNumberTable, visitLocalVariableTable, visitStackMapTable, visitStackMapTableEntryclone, report, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visitCodeException, visitConstantClass, visitConstantDouble, visitConstantFieldref, visitConstantFloat, visitConstantInteger, visitConstantInterfaceMethodref, visitConstantLong, visitConstantMethodref, visitConstantNameAndType, visitConstantString, visitConstantUtf8, visitConstantValue, visitDeprecated, visitExceptionTable, visitField, visitInnerClass, visitLineNumber, visitLocalVariable, visitLocalVariableTypeTable, visitMethod, visitSignature, visitSourceFile, visitStackMap, visitStackMapEntry, visitSynthetic, visitUnknownpublic UnreadFields(BugReporter bugReporter)
@Deprecated public boolean isContainerField(XField f)
UnreadFieldsData.isContainerField(XField) instead@Deprecated public java.util.Set<? extends XField> getReadFields()
UnreadFieldsData.getReadFields() instead@Deprecated public java.util.Set<? extends XField> getWrittenFields()
UnreadFieldsData.getWrittenFields() instead@Deprecated public boolean isWrittenOutsideOfInitialization(XField f)
UnreadFieldsData.isWrittenOutsideOfInitialization(XField) instead@Deprecated public boolean isWrittenDuringInitialization(XField f)
UnreadFieldsData.isWrittenDuringInitialization(XField) instead@Deprecated public boolean isWrittenInConstructor(XField f)
UnreadFieldsData.isWrittenInConstructor(XField) instead@Deprecated public void strongEvidenceForIntendedSerialization(ClassDescriptor c)
UnreadFieldsData.strongEvidenceForIntendedSerialization(ClassDescriptor) instead@Deprecated public boolean existsStrongEvidenceForIntendedSerialization(ClassDescriptor c)
UnreadFieldsData.existsStrongEvidenceForIntendedSerialization(ClassDescriptor) insteadpublic void visit(org.apache.bcel.classfile.JavaClass obj)
visit in class BetterVisitorpublic static boolean classHasParameter(org.apache.bcel.classfile.JavaClass obj)
public void visitAfter(org.apache.bcel.classfile.JavaClass obj)
visitAfter in class PreorderVisitorpublic void visit(org.apache.bcel.classfile.Field obj)
visit in class BetterVisitorpublic static boolean isSeleniumWebElement(java.lang.String signature)
public void visitAnnotation(java.lang.String annotationClass,
java.util.Map<java.lang.String,org.apache.bcel.classfile.ElementValue> map,
boolean runtimeVisible)
AnnotationVisitorvisitAnnotation in class AnnotationVisitorannotationClass - class of annotationmap - map from names to valuesruntimeVisible - true if annotation is runtime visiblepublic static boolean isInjectionAttribute(@DottedClassName java.lang.String annotationClass)
public void visit(org.apache.bcel.classfile.ConstantValue obj)
visit in class BetterVisitorpublic void visit(org.apache.bcel.classfile.Code obj)
visit in class DismantleBytecodepublic void visit(org.apache.bcel.classfile.Method obj)
visit in class BetterVisitorpublic void sawOpcode(int seen)
OpcodeStackDetectorBy default, this method will not be called when
stack is TOP. To change this behavior, override #beforeOpcode(int)
and change to return true even if stack is TOP.
see Using FindBugs for Research to learn lattice and what TOP means.
sawOpcode in class OpcodeStackDetectorOpcodeStackDetector.beforeOpcode(int)@Deprecated public boolean isReflexive(XField f)
UnreadFieldsData.isReflexive(XField) insteadpublic void report()
Detectorreport in interface Detectorreport in class BytecodeScanningDetectorFindBugs™ is licenced under the LGPL. Copyright © 2006 University of Maryland.