/** * Constructor. * * @param annotationClass * JVM signature of the annotation class */ public AnnotationValue(String annotationClass) { this.annotationClass = DescriptorFactory.createClassDescriptorFromSignature(annotationClass); }
public EnumValue(String desc, String value) { this.desc = DescriptorFactory.createClassDescriptorFromSignature(desc); this.value = value; }
/** * @deprecated Use * {@link DescriptorFactory#createClassDescriptorFromSignature(String)} * instead */ @Deprecated public static ClassDescriptor createClassDescriptorFromSignature(String signature) { return DescriptorFactory.createClassDescriptorFromSignature(signature); }
public void addAnnotation(String name, AnnotationValue value) { ClassDescriptor annotationClass = DescriptorFactory.createClassDescriptorFromSignature(name); classAnnotations.put(annotationClass, value); }
public void addAnnotation(String name, AnnotationValue value) { ClassDescriptor annotationClass = DescriptorFactory.createClassDescriptorFromSignature(name); methodAnnotations.put(annotationClass, value); }
public void addAnnotation(String name, AnnotationValue value) { ClassDescriptor annotationClass = DescriptorFactory.createClassDescriptorFromSignature(name); fieldAnnotations.put(annotationClass, value); }
public void addParameterAnnotation(int parameter, String name, AnnotationValue value) { ClassDescriptor annotationClass = DescriptorFactory.createClassDescriptorFromSignature(name); Map<ClassDescriptor, AnnotationValue> map = methodParameterAnnotations.get(parameter); if (map == null) { map = new HashMap<>(); methodParameterAnnotations.put(parameter, map); } map.put(annotationClass, value); }
public static ClassDescriptor createClassOrObjectDescriptorFromSignature(String signature) { if (signature.charAt(0) == '[') { return createClassDescriptor("java/lang/Object"); } return createClassDescriptorFromSignature(signature); }
private boolean checkForWeirdEquals(String lhsSig, String rhsSig, Set<XMethod> targets) { boolean allOk = false; try { ClassSummary classSummary = AnalysisContext.currentAnalysisContext().getClassSummary(); ClassDescriptor expectedClassDescriptor = DescriptorFactory.createClassDescriptorFromSignature(lhsSig); ClassDescriptor actualClassDescriptor = DescriptorFactory.createClassDescriptorFromSignature(rhsSig); targets.addAll(Hierarchy2.resolveVirtualMethodCallTargets(expectedClassDescriptor, "equals", "(Ljava/lang/Object;)Z", false, false)); allOk = targets.size() > 0; for (XMethod m2 : targets) { if (!classSummary.mightBeEqualTo(m2.getClassDescriptor(), actualClassDescriptor)) { allOk = false; } } } catch (ClassNotFoundException e) { AnalysisContext.reportMissingClass(e); } return allOk; }
@Override public void sawOpcode(int seen) { if (seen == Const.INVOKEVIRTUAL) { if ("equals".equals(getNameConstantOperand()) && "(Ljava/lang/Object;)Z".equals(getSigConstantOperand())) { OpcodeStack.Item item = stack.getStackItem(1); ClassDescriptor c = DescriptorFactory.createClassDescriptorFromSignature(item.getSignature()); check(c); } else if ("java/lang/Class".equals(getClassConstantOperand()) && ("isInstance".equals(getNameConstantOperand()) || "cast".equals(getNameConstantOperand()))) { OpcodeStack.Item item = stack.getStackItem(1); if ("Ljava/lang/Class;".equals(item.getSignature())) { Object value = item.getConstant(); if (value instanceof String) { ClassDescriptor c = DescriptorFactory.createClassDescriptor((String) value); check(c); } } } } else if (seen == Const.INSTANCEOF || seen == Const.CHECKCAST) { check(getClassDescriptorOperand()); } }
ClassDescriptor classDescriptor = DescriptorFactory.createClassDescriptorFromSignature(type .getSignature()); if (classDescriptor.equals(classContext.getClassDescriptor())) {
.addClassAndMethod(methodGen, sourceFile).addFoundAndExpectedType(rhsType_, lhsType_) .addSomeSourceForTopTwoStackValues(classContext, method, location) .addEqualsMethodUsed(DescriptorFactory.createClassDescriptorFromSignature(lhsType_.getSignature())) .addOptionalAnnotation(calledMethodAnnotation, MethodAnnotation.METHOD_CALLED), SourceLineAnnotation.fromVisitedInstruction(this.classContext, methodGen, sourceFile, location.getHandle())); .addClassAndMethod(methodGen, sourceFile).addFoundAndExpectedType(rhsType_, lhsType_) .addSomeSourceForTopTwoStackValues(classContext, method, location) .addEqualsMethodUsed(DescriptorFactory.createClassDescriptorFromSignature(lhsType_.getSignature())) .addOptionalAnnotation(calledMethodAnnotation, MethodAnnotation.METHOD_CALLED), SourceLineAnnotation.fromVisitedInstruction(this.classContext, methodGen, sourceFile, location.getHandle()));
.getAnalysisCache() .getClassAnalysis(XClass.class, DescriptorFactory.createClassDescriptorFromSignature(type.getSignature())) .findMatchingMethod(m); } catch (CheckedAnalysisException e) {
/** * Constructor. * * @param annotationClass * JVM signature of the annotation class */ public AnnotationValue(String annotationClass) { this.annotationClass = DescriptorFactory.createClassDescriptorFromSignature(annotationClass); }
public EnumValue(String desc, String value) { this.desc = DescriptorFactory.createClassDescriptorFromSignature(desc); this.value = value; }
public void addAnnotation(String name, AnnotationValue value) { ClassDescriptor annotationClass = DescriptorFactory.createClassDescriptorFromSignature(name); classAnnotations.put(annotationClass, value); }
/** * @deprecated Use * {@link DescriptorFactory#createClassDescriptorFromSignature(String)} * instead */ @Deprecated public static ClassDescriptor createClassDescriptorFromSignature(String signature) { return DescriptorFactory.createClassDescriptorFromSignature(signature); }
public void addAnnotation(String name, AnnotationValue value) { ClassDescriptor annotationClass = DescriptorFactory.createClassDescriptorFromSignature(name); fieldAnnotations.put(annotationClass, value); }
public void addParameterAnnotation(int parameter, String name, AnnotationValue value) { ClassDescriptor annotationClass = DescriptorFactory.createClassDescriptorFromSignature(name); Map<ClassDescriptor, AnnotationValue> map = methodParameterAnnotations.get(parameter); if (map == null) { map = new HashMap<ClassDescriptor, AnnotationValue>(); methodParameterAnnotations.put(parameter, map); } map.put(annotationClass, value); }
public static ClassDescriptor createClassOrObjectDescriptorFromSignature(String signature) { if (signature.charAt(0) == '[') { return createClassDescriptor("java/lang/Object"); } return createClassDescriptorFromSignature(signature); }