if (mode != ANY) { boolean isStatic = (inv.getOpcode() == Constants.INVOKESTATIC); boolean wantStatic = (mode == STATIC); if (isStatic != wantStatic) return null; }
String methodName = inv.getMethodName(cpg); boolean isStatic = inv.getOpcode() == Constants.INVOKESTATIC; boolean isCtor = methodName.equals("<init>");  int actualMode = 0;  if (isStatic) actualMode |= STATIC; if (isCtor) actualMode |= CONSTRUCTOR; if (!isStatic && !isCtor) actualMode |= INSTANCE;   if ((actualMode & mode) == 0) return null;
	public MatchResult match(InstructionHandle handle, ConstantPoolGen cpg,		ValueNumberFrame before, ValueNumberFrame after, BindingSet bindingSet) throws DataflowAnalysisException {		// See if the instruction is an InvokeInstruction		Instruction ins = handle.getInstruction();		if (!(ins instanceof InvokeInstruction))			return null;		InvokeInstruction inv = (InvokeInstruction) ins;		// Check that it's static or non-static, as appropriate		if (mode != ANY) {			boolean isStatic = (inv.getOpcode() == Constants.INVOKESTATIC);			boolean wantStatic = (mode == STATIC);			if (isStatic != wantStatic)				return null;		}		// Check class name, method name, and method signature.		if (!classNameMatcher.match(inv.getClassName(cpg)) ||			!methodNameMatcher.match(inv.getMethodName(cpg)) ||			!methodSigMatcher.match(inv.getSignature(cpg)))			return null;		// It's a match!		return new MatchResult(this, bindingSet);	}