ReportManager


package com.neusoft.report.engine;

import com.neusoft.report.common.Logger;
import com.neusoft.report.common.ReportMessage;
import com.neusoft.report.common.entity.defaultt.DefaultPropertyLoader;
import com.neusoft.report.engine.core.MultiReportEngine;
import com.neusoft.report.engine.core.ReportCacheMgr;
import com.neusoft.report.engine.export.param.TempUploadManager;
import com.neusoft.report.engine.rao.tempmemo.TempMemoManager;
import com.neusoft.report.engine.security.licence.UtilProtection;
import com.neusoft.report.engine.util.PerformanceDebug;
import com.neusoft.report.engine.util.ReportManifestInfo;
import com.neusoft.unieap.rbc.license.LicenseManager;
import java.io.File;
import java.net.MalformedURLException;
import java.net.URL;
import java.util.HashSet;
import java.util.Iterator;
import java.util.Map;
import java.util.Set;
import javax.servlet.ServletContext;

public class ReportManager {
    public static final String PROJECT_PATH = "projectPath";
    public static final String PROJECT_BASE_URL = "baseURL";
    public static final String SERVLET_CONTEXT = "context";
    public static final String CONFIG_PATH = "configPath";
    public static final String CONFIG_BASE_URL = "configBaseURL";
    public static final String LICENSE_PATH = "licensePath";
    public static final String LICENSE_FILE_NAME = "licenseFileName";
    private static final String DEFAULT_LICENSE_NAME = "unieap.license";
    private static String projectPath;
    private static URL baseURL;
    private static URL configURL;
    private static ServletContext context;
    private static String configRoot;
    private static String webPath;
    private static String licensePath;
    private static String licenseFileName;

    public ReportManager() {
    }

    public static ReportEngine create() {
        if (PerformanceDebug.isDebugEnabled()) {
            PerformanceDebug.debug("Performance-Requist", true, 0L);
        }

        return new MultiReportEngine();
    }

    public static void initiate(Map var0) throws MalformedURLException {
        projectPath = (String)var0.get("projectPath");
        context = (ServletContext)var0.get("context");
        baseURL = (URL)var0.get("baseURL");
        configRoot = (String)var0.get("configPath");
        configURL = configRoot != null && configRoot.startsWith(File.separator) ? (new File(configRoot)).toURL() : (URL)var0.get("configBaseURL");
        licensePath = var0.containsKey("licensePath") ? (String)var0.get("licensePath") : (projectPath != null && !projectPath.equals("/") ? projectPath + "WEB-INF" + File.separator + "conf" + File.separator + "unieap" + File.separator + "license" + File.separator : (new URL(baseURL, "WEB-INF/conf/unieap/license/")).getFile());
        licenseFileName = var0.containsKey("licenseFileName") ? (String)var0.get("licenseFileName") : "unieap.license";
        Logger.getLogger(ReportManager.class).info(ReportMessage.createMessage("using_report_config_path", new String[]{configURL.toExternalForm()}));
        startLicenceCheck(licensePath);
        printProductInfo();
        startCleanTask();
        startCleanTemp();
        initCache();
        DefaultPropertyLoader.load();
    }

    public static String getProjectPath() {
        return projectPath;
    }

    public static URL getProjectBaseURL() {
        return baseURL;
    }

    public static URL getResourceURL(String var0) throws MalformedURLException {
        return context.getResource(var0);
    }

    public static Set getResourcePaths(String var0) {
        HashSet var1;
        if (context != null) {
            var1 = new HashSet();
            Set var8 = context.getResourcePaths(var0);
            if (var8 != null) {
                try {
                    Iterator var9 = var8.iterator();

                    while(var9.hasNext()) {
                        String var10 = (String)var9.next();
                        var1.add(context.getResource(var10));
                    }
                } catch (MalformedURLException var6) {
                    var6.printStackTrace();
                }
            }

            return var1;
        } else {
            var1 = new HashSet();
            File var2 = null;
            if (baseURL.getProtocol().equalsIgnoreCase("file")) {
                try {
                    var2 = new File((new URL(baseURL, var0.substring(1))).getFile());
                } catch (MalformedURLException var5) {
                    var5.printStackTrace();
                    return var1;
                }
            } else {
                var2 = new File(projectPath + File.separator + var0.substring(1));
            }

            if (var2.isDirectory()) {
                String[] var3 = var2.list();

                try {
                    for(int var4 = 0; var4 < var3.length; ++var4) {
                        var1.add(new URL(var2.toURL(), var3[var4]));
                    }
                } catch (MalformedURLException var7) {
                    var7.printStackTrace();
                }
            }

            return var1;
        }
    }

    public static Set getConfigPaths(String var0) {
        if (configRoot != null && configRoot.startsWith(File.separator)) {
            HashSet var1 = new HashSet();
            File var2 = new File(configRoot + File.separator + var0.replace('/', File.separatorChar));
            if (var2.isDirectory()) {
                String var3 = var2.getAbsolutePath();
                String[] var4 = var2.list();

                try {
                    for(int var5 = 0; var5 < var4.length; ++var5) {
                        var1.add((new File(var3 + File.separator + var4[var5])).toURL());
                    }
                } catch (MalformedURLException var6) {
                    var6.printStackTrace();
                    return var1;
                }
            }

            return var1;
        } else {
            return getResourcePaths("/" + getConfigRoot() + var0);
        }
    }

    private static String getConfigRoot() {
        return configRoot == null ? "WEB-INF/conf/unieap/report/" : configRoot;
    }

    public static URL getConfigURL() {
        return configURL;
    }

    public static String getConfigPath() {
        return configRoot == null ? projectPath + "WEB-INF" + File.separator + "conf" + File.separator + "unieap" + File.separator + "report" + File.separator : (configRoot.startsWith(File.separator) ? configRoot : projectPath + configRoot);
    }

    public static String getWebPath() {
        return webPath;
    }

    public static String getLicencePath() {
        return licensePath;
    }

    public static String getLicenceFileName() {
        return licenseFileName;
    }

    public static void setWebPath(String var0) {
        webPath = var0;
    }

    private static void printProductInfo() {
        ReportManifestInfo.paintMainfestInfo();
        if (LicenseManager.getInstance().getLicense() != null) {
            ReportManifestInfo.printLicenseInfo();
        }

    }

    private static void startLicenceCheck(String var0) {
        LicenseManager.getInstance().setLicensePath(var0);
        LicenseManager.getInstance().startLicenseListener(UtilProtection.getProtection(), (long)UtilProtection.CHECK_INTERVAL);
    }

    private static void startCleanTask() {
        TempMemoManager.getInstance().startCleanTask();
    }

    private static void startCleanTemp() {
        TempUploadManager.getInstance().cleanUploadTempFiles();
    }

    private static void initCache() {
        ReportCacheMgr.getCachePath();
    }
}
原文地址:https://www.cnblogs.com/Jeely/p/11404906.html