Package edu.umd.cs.findbugs.classfile

Examples of edu.umd.cs.findbugs.classfile.ClassDescriptor


        }
        constantString = null;
    }

    private void process(@SlashedClassName String className) {
        ClassDescriptor d = DescriptorFactory.createClassDescriptor(className);
        AnalysisContext.currentXFactory().addReflectiveClasses(d);
    }
View Full Code Here


         */
        while (!workList.isEmpty()) {
            if (Thread.interrupted()) {
                throw new InterruptedException();
            }
            ClassDescriptor classDesc = workList.removeFirst();

            if (seen.contains(classDesc)) {
                continue;
            }
            seen.add(classDesc);

            if (!knownDescriptors.contains(classDesc)) {
                count++;
                if (PROGRESS && count % 5000 == 0) {
                    System.out.println("Adding referenced class " + classDesc);
                }
            }

            referencedPackageSet.add(classDesc.getPackageName());

            // Get list of referenced classes and add them to set.
            // Add superclasses and superinterfaces to worklist.
            try {
                XClass classNameAndInfo = Global.getAnalysisCache().getClassAnalysis(XClass.class, classDesc);

                ClassDescriptor superclassDescriptor = classNameAndInfo.getSuperclassDescriptor();
                if (superclassDescriptor != null && addedToWorkList.add(superclassDescriptor)) {
                    workList.addLast(superclassDescriptor);
                }

                for (ClassDescriptor ifaceDesc : classNameAndInfo.getInterfaceDescriptorList()) {
                    if (addedToWorkList.add(ifaceDesc)) {
                        workList.addLast(ifaceDesc);
                    }
                }

                ClassDescriptor enclosingClass = classNameAndInfo.getImmediateEnclosingClass();
                if (enclosingClass != null && addedToWorkList.add(enclosingClass)) {
                    workList.addLast(enclosingClass);
                }

            } catch (RuntimeException e) {
View Full Code Here

                ICodeBaseEntry entry = i.next();
                if (!DescriptorFactory.isClassResource(entry.getResourceName())) {
                    continue;
                }

                ClassDescriptor classDescriptor = entry.getClassDescriptor();
                if (classDescriptor == null) {
                    throw new IllegalStateException();
                }

                if (appClassSet.contains(classDescriptor)) {
View Full Code Here

            throw ise;
        }
    }

    private <Analysis> Analysis getClassAnalysis(Class<Analysis> analysisClass) throws CheckedAnalysisException {
        ClassDescriptor classDescriptor = BCELUtil.getClassDescriptor(jclass);
        return Global.getAnalysisCache().getClassAnalysis(analysisClass, classDescriptor);
    }
View Full Code Here

    }

    public static XClass findSuperImplementor(XClass clazz, String name, String signature, boolean isStatic)
            throws CheckedAnalysisException {

        ClassDescriptor superclassDescriptor = clazz.getSuperclassDescriptor();
        if (superclassDescriptor == null) {
            return clazz;
        }
        return findImplementor(getXClass(superclassDescriptor), name, signature, isStatic);
    }
View Full Code Here

        }
        if (y.getClassName().equals("java.lang.Object")) {
            return 1.0;
        }
        Subtypes2 subtypes2 = AnalysisContext.currentAnalysisContext().getSubtypes2();
        ClassDescriptor xDesc = DescriptorFactory.createClassDescriptor(x);
        ClassDescriptor yDesc = DescriptorFactory.createClassDescriptor(y);

        boolean xIsSubtypeOfY = Repository.instanceOf(x, y);
        if (xIsSubtypeOfY) {
            return 1.0;
        }
View Full Code Here

            if (visitMethodsInCallOrder) {
                try {
                    IAnalysisCache analysisCache = Global.getAnalysisCache();

                    ClassDescriptor c = DescriptorFactory.createClassDescriptor(obj);

                    ClassContext classContext = analysisCache.getClassAnalysis(ClassContext.class, c);
                    didInCallOrder = true;
                    for (Method m : classContext.getMethodsInCallOrder()) {
                        doVisitMethod(m);
View Full Code Here

        packageName = obj.getPackageName();
        sourceFile = obj.getSourceFileName();
        dottedSuperclassName = obj.getSuperclassName();
        superclassName = dottedSuperclassName.replace('.', '/');

        ClassDescriptor cDesc = DescriptorFactory.createClassDescriptor(className);
        if (!FindBugs.isNoAnalysis()) {
            try {
                thisClassInfo = (ClassInfo) Global.getAnalysisCache().getClassAnalysis(XClass.class, cDesc);
            } catch (CheckedAnalysisException e) {
                throw new AssertionError("Can't find ClassInfo for " + cDesc);
View Full Code Here

     */
    @Override
    public JavaClass findClass(String className) {
        @SlashedClassName
        String slashedClassName = ClassName.toSlashedClassName(className);
        ClassDescriptor classDescriptor = DescriptorFactory.instance().getClassDescriptor(slashedClassName);
        return Global.getAnalysisCache().probeClassAnalysis(JavaClass.class, classDescriptor);
    }
View Full Code Here

    public JavaClass loadClass(String className) throws ClassNotFoundException {
        if (className.length() == 0) {
            throw new IllegalArgumentException("Request to load empty class");
        }
        className = ClassName.toSlashedClassName(className);
        ClassDescriptor classDescriptor = DescriptorFactory.instance().getClassDescriptor(className);
        try {
            return Global.getAnalysisCache().getClassAnalysis(JavaClass.class, classDescriptor);
        } catch (CheckedAnalysisException e) {
            throw new ClassNotFoundException("Exception while looking for class " + className, e);
        }
View Full Code Here

TOP

Related Classes of edu.umd.cs.findbugs.classfile.ClassDescriptor

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.