Package com.dci.intellij.dbn.common.util

Source Code of com.dci.intellij.dbn.common.util.CommonUtil

package com.dci.intellij.dbn.common.util;

import org.jdom.Document;
import org.jdom.adapters.XML4JDOMAdapter;
import org.jdom.input.DOMBuilder;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;

import java.io.File;
import java.io.FileReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.Reader;
import java.math.BigDecimal;
import java.util.HashSet;
import java.util.Properties;
import java.util.Set;
import java.util.StringTokenizer;

public class CommonUtil {

    public static boolean isPluginCall() {
        for (StackTraceElement stackTraceElement : Thread.currentThread().getStackTrace()) {
            if (stackTraceElement.getClassName().contains(".dbn.")) {
                return true;
            }
        }
        return false;
    }

    public static boolean isCalledThrough(Class clazz) {
        StackTraceElement[] stackTraceElements = Thread.currentThread().getStackTrace();
        for (StackTraceElement stackTraceElement : stackTraceElements) {
            if (clazz.getName().equals(stackTraceElement.getClassName())) {
                return true;
            }
        }
        return false;
    }

    public static double getProgressPercentage(int is, int should) {
        BigDecimal fraction = new BigDecimal(is).divide(new BigDecimal(should), 6, BigDecimal.ROUND_HALF_UP);
        return fraction.doubleValue();
    }

    @NotNull
    public static <T> T nvl(@Nullable T value, @NotNull T defaultValue) {
        return value == null ? defaultValue : value;
    }

    public static <T> T nvln(@Nullable T value, T defaultValue) {
        return value == null ? defaultValue : value;
    }

    public static String nullIfEmpty(String string) {
        if (string != null) {
            string = string.trim();
            if (string.length() == 0) {
                string = null;
            }
        }
        return string;
    }

    private static final Object NULL_OBJECT = new Object();

    public static boolean safeEqual(@Nullable Object value1, @Nullable Object value2) {
        return nvl(value1, "").equals(nvl(value2, ""));
    }

    public static Document loadXmlFile(Class clazz, String name) {
        InputStream inputStream = clazz.getResourceAsStream(name);
        return createXMLDocument(inputStream);
    }

    public static Properties loadProperties(Class clazz, String name) {
        InputStream inputStream = clazz.getResourceAsStream(name);
        Properties properties = new Properties();
        try {
            properties.load(inputStream);
        } catch (Exception e) {
        }
        return properties;
    }

    public static Document createXMLDocument(InputStream inputStream) {
        try {
            return new DOMBuilder().build(new XML4JDOMAdapter().getDocument(inputStream, false));
        } catch (Exception e) {
            e.printStackTrace();
        }
        return null;
    }

    public static String readFile(File file) throws IOException {
        Reader in = new FileReader(file);
        StringBuilder buffer = new StringBuilder();
        int i;
        while ((i = in.read()) != -1) buffer.append((char) i);
        in.close();
        return buffer.toString();
    }

    public static String readInputStream(InputStream inputStream) throws IOException {
        Reader in = new InputStreamReader(inputStream);
        StringBuilder buffer = new StringBuilder();
        int i;
        while ((i = in.read()) != -1) buffer.append((char) i);
        in.close();
        return buffer.toString();
    }

    public static Set<String> commaSeparatedTokensToSet(String commaSeparated) {
        Set<String> set = new HashSet<String>();
        StringTokenizer stringTokenizer = new StringTokenizer(commaSeparated, ",");
        while (stringTokenizer.hasMoreTokens()) {
            set.add(stringTokenizer.nextToken());
        }
        return set;
    }
}
TOP

Related Classes of com.dci.intellij.dbn.common.util.CommonUtil

TOP
Copyright © 2018 www.massapi.com. 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.