private static List<AssertionData> analyzeMember(MemberReference md) { List<AssertionData> assertions = new ArrayList<>(); if(md instanceof MethodDefinition && ((MethodDefinition) md).isSynthetic()) return assertions; for(CustomAnnotation anno : md.getAnnotations()) { if(anno.getAnnotationType().getFullName().equals(AssertWarning.class.getName())) { String type = ""; int minScore = 0, maxScore = 100; for(AnnotationParameter param : anno.getParameters()) { if(param.getMember().equals("value")) type = (String) ((ConstantAnnotationElement)param.getValue()).getConstantValue(); else if(param.getMember().equals("minScore")) minScore = (int) ((ConstantAnnotationElement)param.getValue()).getConstantValue(); else if(param.getMember().equals("maxScore")) maxScore = (int) ((ConstantAnnotationElement)param.getValue()).getConstantValue(); } assertions.add(new AssertionData(true, type, minScore, maxScore)); } else if(anno.getAnnotationType().getFullName().equals(AssertNoWarning.class.getName())) { String type = ""; for(AnnotationParameter param : anno.getParameters()) { if(param.getMember().equals("value")) type = (String) ((ConstantAnnotationElement)param.getValue()).getConstantValue(); } assertions.add(new AssertionData(false, type, Warning.MIN_SCORE, Warning.MAX_SCORE)); } } return assertions; }
private static void readParameters( final AnnotationParameter[] parameters, final IMetadataScope scope, final Buffer input, final boolean namedParameter) { for (int i = 0; i < parameters.length; i++) { parameters[i] = new AnnotationParameter( namedParameter ? scope.<String>lookupConstant(input.readUnsignedShort()) : "value", readElement(scope, input) ); } }
private static Set<String> getSuppressed(List<CustomAnnotation> annos) { Set<String> filters = null; for (CustomAnnotation ca : annos) { String name = ca.getAnnotationType().getSimpleName(); if (!(name.startsWith("Suppress") && name.endsWith("Warning"))) continue; for (AnnotationParameter par : ca.getParameters()) { if (par.getMember().equals("value")) { AnnotationElement ae = par.getValue(); AnnotationElement[] elements = ae instanceof ArrayAnnotationElement ? ((ArrayAnnotationElement) ae) .getElements() : new AnnotationElement[] { ae }; for (AnnotationElement child : elements) { if (child instanceof ConstantAnnotationElement) { Object value = ((ConstantAnnotationElement) child).getConstantValue(); if (value instanceof String) { if (filters == null) filters = new HashSet<>(); filters.add((String) value); } } } } } } return filters == null ? Collections.emptySet() : filters; }
private static void readParameters( final AnnotationParameter[] parameters, final IMetadataScope scope, final Buffer input, final boolean namedParameter) { for (int i = 0; i < parameters.length; i++) { parameters[i] = new AnnotationParameter( namedParameter ? scope.<String>lookupConstant(input.readUnsignedShort()) : "value", readElement(scope, input) ); } }
@Override protected void visitType(TypeDefinition td) { if (!td.isAnnotation()) return; DeclaredAnnotation da = getOrCreate(td); for (CustomAnnotation ca : td.getAnnotations()) { if (Types.is(ca.getAnnotationType(), Retention.class)) { for (AnnotationParameter ap : ca.getParameters()) { if (ap.getMember().equals("value")) { AnnotationElement value = ap.getValue(); if (value instanceof EnumAnnotationElement) { EnumAnnotationElement enumValue = (EnumAnnotationElement) value; if (Types.is(enumValue.getEnumType(), RetentionPolicy.class)) { da.policy = RetentionPolicy.valueOf(enumValue.getEnumConstantName()); } } } } } } }
private static void readParameters( final AnnotationParameter[] parameters, final IMetadataScope scope, final Buffer input, final boolean namedParameter) { for (int i = 0; i < parameters.length; i++) { parameters[i] = new AnnotationParameter( namedParameter ? scope.<String>lookupConstant(input.readUnsignedShort()) : "value", readElement(scope, input) ); } }
public Annotation createAnnotation(final CustomAnnotation annotation) { final Annotation a = new Annotation(); final AstNodeCollection<Expression> arguments = a.getArguments(); a.setType(convertType(annotation.getAnnotationType())); final List<AnnotationParameter> parameters = annotation.getParameters(); for (final AnnotationParameter p : parameters) { final String member = p.getMember(); final Expression value = createAnnotationElement(p.getValue()); if (StringUtilities.isNullOrEmpty(member) || parameters.size() == 1 && "value".equals(member)) { arguments.add(value); } else { arguments.add(new AssignmentExpression(new IdentifierExpression(value.getOffset(), member), value)); } } return a; }
private static void readParameters( final AnnotationParameter[] parameters, final IMetadataScope scope, final Buffer input, final boolean namedParameter) { for (int i = 0; i < parameters.length; i++) { parameters[i] = new AnnotationParameter( namedParameter ? scope.<String>lookupConstant(input.readUnsignedShort()) : "value", readElement(scope, input) ); } }
public Annotation createAnnotation(final CustomAnnotation annotation) { final Annotation a = new Annotation(); final AstNodeCollection<Expression> arguments = a.getArguments(); a.setType(convertType(annotation.getAnnotationType())); final List<AnnotationParameter> parameters = annotation.getParameters(); for (final AnnotationParameter p : parameters) { final String member = p.getMember(); final Expression value = createAnnotationElement(p.getValue()); if (StringUtilities.isNullOrEmpty(member) || parameters.size() == 1 && "value".equals(member)) { arguments.add(value); } else { arguments.add(new AssignmentExpression(new IdentifierExpression(value.getOffset(), member), value)); } } return a; }
private static void readParameters( final AnnotationParameter[] parameters, final IMetadataScope scope, final Buffer input, final boolean namedParameter) { for (int i = 0; i < parameters.length; i++) { parameters[i] = new AnnotationParameter( namedParameter ? scope.<String>lookupConstant(input.readUnsignedShort()) : "value", readElement(scope, input) ); } }
public Annotation createAnnotation(final CustomAnnotation annotation) { final Annotation a = new Annotation(); final AstNodeCollection<Expression> arguments = a.getArguments(); a.setType(convertType(annotation.getAnnotationType())); final List<AnnotationParameter> parameters = annotation.getParameters(); for (final AnnotationParameter p : parameters) { final String member = p.getMember(); final Expression value = createAnnotationElement(p.getValue()); if (StringUtilities.isNullOrEmpty(member) || parameters.size() == 1 && "value".equals(member)) { arguments.add(value); } else { arguments.add(new AssignmentExpression(new IdentifierExpression(value.getOffset(), member), value)); } } return a; }
private static void readParameters( final AnnotationParameter[] parameters, final IMetadataScope scope, final Buffer input, final boolean namedParameter) { for (int i = 0; i < parameters.length; i++) { parameters[i] = new AnnotationParameter( namedParameter ? scope.<String>lookupConstant(input.readUnsignedShort()) : "value", readElement(scope, input) ); } }