@Override public boolean match(BugInstance bugInstance) { ClassAnnotation primaryClassAnnotation = bugInstance.getPrimaryClass(); if(primaryClassAnnotation == null){ return false; } String bugFileName = primaryClassAnnotation.getSourceFileName(); if(bugFileName == null || bugFileName.isEmpty()){ return false; } boolean result = fileName.match(bugFileName); if (DEBUG) { System.out.println("Matching " + bugFileName + " with " + fileName + ", result = " + result); } return result; }
@Override public boolean match(BugInstance bugInstance) { LocalVariableAnnotation localAnnotation = bugInstance.getPrimaryLocalVariableAnnotation(); if (localAnnotation == null) { return false; } if (!name.match(localAnnotation.getName())) { return false; } return true; }
@Override public boolean match(BugInstance bugInstance) { ClassAnnotation classAnnotation = bugInstance.getPrimaryClass(); if (role != null && !"".equals(role)) { for (BugAnnotation a : bugInstance.getAnnotations()) { if (a instanceof ClassAnnotation && role.equals(a.getDescription())) { classAnnotation = (ClassAnnotation) a; break; } } } String bugClassName = classAnnotation.getClassName(); boolean result = className.match(bugClassName); if (DEBUG) { System.out.println("Matching " + bugClassName + " with " + className + ", result = " + result); } return result; }
@Override public boolean match(BugInstance bugInstance) { FieldAnnotation fieldAnnotation = null; if (role == null || "".equals(role)) { fieldAnnotation = bugInstance.getPrimaryField(); } else { for (BugAnnotation a : bugInstance.getAnnotations()) { if (a instanceof FieldAnnotation && role.equals(a.getDescription())) { fieldAnnotation = (FieldAnnotation) a; break; } } } if (fieldAnnotation == null) { return false; } if (!name.match(fieldAnnotation.getFieldName())) { return false; } if (signature != null && !signature.match(fieldAnnotation.getFieldSignature())) { return false; } return true; }
@Override public boolean match(BugInstance bugInstance) { MethodAnnotation methodAnnotation = null; if (role == null || "".equals(role)) { methodAnnotation = bugInstance.getPrimaryMethod(); } else { for (BugAnnotation a : bugInstance.getAnnotations()) { if (a instanceof MethodAnnotation && role.equals(a.getDescription())) { methodAnnotation = (MethodAnnotation) a; break; } } } if (methodAnnotation == null) { return false; } if (!name.match(methodAnnotation.getMethodName())) { return false; } if (signature != null && !signature.match(methodAnnotation.getMethodSignature())) { return false; } return true; }
@Override public boolean match(BugInstance bugInstance) { TypeAnnotation typeAnnotation = bugInstance.getPrimaryType(); if (role != null && !"".equals(role)) { for (BugAnnotation a : bugInstance.getAnnotations()) { if (a instanceof TypeAnnotation && role.equals(a.getDescription())) { typeAnnotation = (TypeAnnotation) a; break; } } } if(typeAnnotation == null){ return false; } String typeDesctiptor = typeAnnotation.getTypeDescriptor(); if(!descriptor.match(typeDesctiptor)){ return false; } if (typeParameters != null && !typeParameters.equals(typeAnnotation.getTypeParameters())) { return false; } return true; }
@Test public void testReturnValuePatternMatch() { NameMatch anyParamReturnVoid = new NameMatch(SignatureUtil.createMethodSignature("", null)); assertTrue(anyParamReturnVoid.match("()V")); assertTrue(anyParamReturnVoid.match("()I")); assertTrue(anyParamReturnVoid.match("()Ljava/lang/String;")); assertFalse(anyParamReturnVoid.match("(B)J")); } }
@Test public void testParameterPatternMatch() { NameMatch anyParamReturnVoid = new NameMatch(SignatureUtil.createMethodSignature(null, "void")); assertTrue(anyParamReturnVoid.match("()V")); assertTrue(anyParamReturnVoid.match("(I)V")); assertTrue(anyParamReturnVoid.match("(Ljava/lang/String;)V")); assertFalse(anyParamReturnVoid.match("()J")); }
@Override public boolean match(BugInstance bugInstance) { ClassAnnotation primaryClassAnnotation = bugInstance.getPrimaryClass(); if(primaryClassAnnotation == null){ return false; } String bugFileName = primaryClassAnnotation.getSourceFileName(); if(bugFileName == null || bugFileName.isEmpty()){ return false; } boolean result = fileName.match(bugFileName); if (DEBUG) { System.out.println("Matching " + bugFileName + " with " + fileName + ", result = " + result); } return result; }
@Override public boolean match(BugInstance bugInstance) { LocalVariableAnnotation localAnnotation = bugInstance.getPrimaryLocalVariableAnnotation(); if (localAnnotation == null) { return false; } if (!name.match(localAnnotation.getName())) { return false; } return true; }
@Override public boolean match(BugInstance bugInstance) { MethodAnnotation methodAnnotation = null; if (role == null || "".equals(role)) { methodAnnotation = bugInstance.getPrimaryMethod(); } else { for (BugAnnotation a : bugInstance.getAnnotations()) { if (a instanceof MethodAnnotation && role.equals(a.getDescription())) { methodAnnotation = (MethodAnnotation) a; break; } } } if (methodAnnotation == null) { return false; } if (!name.match(methodAnnotation.getMethodName())) { return false; } if (signature != null && !signature.match(methodAnnotation.getMethodSignature())) { return false; } return true; }
@Override public boolean match(BugInstance bugInstance) { ClassAnnotation classAnnotation = bugInstance.getPrimaryClass(); if (role != null && !"".equals(role)) { for (BugAnnotation a : bugInstance.getAnnotations()) { if (a instanceof ClassAnnotation && role.equals(a.getDescription())) { classAnnotation = (ClassAnnotation) a; break; } } } String bugClassName = classAnnotation.getClassName(); boolean result = className.match(bugClassName); if (DEBUG) { System.out.println("Matching " + bugClassName + " with " + className + ", result = " + result); } return result; }
@Override public boolean match(BugInstance bugInstance) { FieldAnnotation fieldAnnotation = null; if (role == null || "".equals(role)) { fieldAnnotation = bugInstance.getPrimaryField(); } else { for (BugAnnotation a : bugInstance.getAnnotations()) { if (a instanceof FieldAnnotation && role.equals(a.getDescription())) { fieldAnnotation = (FieldAnnotation) a; break; } } } if (fieldAnnotation == null) { return false; } if (!name.match(fieldAnnotation.getFieldName())) { return false; } if (signature != null && !signature.match(fieldAnnotation.getFieldSignature())) { return false; } return true; }
@Override public boolean match(BugInstance bugInstance) { TypeAnnotation typeAnnotation = bugInstance.getPrimaryType(); if (role != null && !"".equals(role)) { for (BugAnnotation a : bugInstance.getAnnotations()) { if (a instanceof TypeAnnotation && role.equals(a.getDescription())) { typeAnnotation = (TypeAnnotation) a; break; } } } if(typeAnnotation == null){ return false; } String typeDesctiptor = typeAnnotation.getTypeDescriptor(); if(!descriptor.match(typeDesctiptor)){ return false; } if (typeParameters != null && !typeParameters.equals(typeAnnotation.getTypeParameters())) { return false; } return true; }