ClassLoadingInfo.java 2.28 KB
/*
 * Decompiled with CFR 0_118.
 * 
 * Could not load the following classes:
 *  com.adobe.pdfg.logging.PDFGLogger
 */
package com.adobe.pdfg.common;

import com.adobe.pdfg.logging.PDFGLogger;
import java.net.URL;
import java.security.CodeSource;
import java.security.ProtectionDomain;

public class ClassLoadingInfo {
    private static final PDFGLogger pdfgLogger = PDFGLogger.getPDFGLogger(ClassLoadingInfo.class);
    private String errorMessage = null;
    private String classLocation = null;
    private String className = null;

    public String getClassLocation() {
        return this.classLocation;
    }

    public String getErrorMessage() {
        return this.errorMessage;
    }

    public ClassLoadingInfo(Class clazz) {
        if (clazz == null) {
            this.errorMessage = "ClassLoadingInfo got null class";
        } else {
            this.className = clazz.getName();
            try {
                CodeSource cs;
                ProtectionDomain pd = clazz.getProtectionDomain();
                if (pd != null && (cs = pd.getCodeSource()) != null) {
                    this.classLocation = cs.toString();
                }
                if (this.classLocation == null) {
                    URL url;
                    ClassLoader clsLoader = clazz.getClassLoader();
                    String clsAsResource = clazz.getName().replace('.', '/').concat(".class");
                    URL uRL = url = clsLoader != null ? clsLoader.getResource(clsAsResource) : ClassLoader.getSystemResource(clsAsResource);
                    if (url != null) {
                        this.classLocation = url.toString();
                    }
                }
                if (this.classLocation == null) {
                    this.errorMessage = "No CodeSource and no Resource found!";
                }
            }
            catch (Exception e) {
                pdfgLogger.debug(e.getMessage(), null, (Throwable)e);
            }
            catch (LinkageError le) {
                pdfgLogger.debug(le.getMessage(), null, (Throwable)le);
            }
        }
    }

    public String toString() {
        String result = null;
        result = this.errorMessage != null ? this.errorMessage : "Got class '" + this.className + "' from '" + this.classLocation + "'";
        return result;
    }
}