![JAR search and dependency download from the Maven repository](/logo.png)
com.yiwowang.intellij.finding.base.util.Utils Maven / Gradle / Ivy
The newest version!
package com.yiwowang.intellij.finding.base.util;
import com.yiwowang.intellij.finding.base.bean.FindUsagesParams;
import com.yiwowang.intellij.finding.base.bean.RefResult;
import org.apache.commons.lang3.StringUtils;
import javax.swing.*;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
public class Utils {
private static final ExecutorService sExecutors = Executors.newCachedThreadPool();
public static void executeThread(Runnable runnable) {
sExecutors.submit(runnable);
}
public static void executeThread(AsyncTask task) {
sExecutors.submit(new Runnable() {
@Override
public void run() {
T t = task.doInBackground();
SwingUtilities.invokeLater(new Runnable() {
@Override
public void run() {
task.doUi(t);
}
});
}
});
}
public static boolean contains(String str, String searchStr, boolean ignoreCase) {
String keywords = searchStr.trim();
if (StringUtils.isEmpty(keywords)) {
return false;
}
String[] array = keywords.split(" ");
for (String word : array) {
boolean match = ignoreCase && StringUtils.containsIgnoreCase(str, word)
|| !ignoreCase && StringUtils.contains(str, word);
if (!match) {
return false;
}
}
return true;
}
public static Map> resultToMap(List data) {
Map> map = new HashMap<>();
for (RefResult result : data) {
List classList = map.get(result.clazz.component.name);
if (classList == null) {
classList = new ArrayList<>();
map.put(result.clazz.component.name, classList);
}
classList.add(result.clazz.name);
}
return map;
}
public static Map mergeResult(FindUsagesParams params, Map> map) {
Map data = new HashMap<>();
switch (params.searchType) {
case FindUsagesParams.TYPE_CLASS:
data.put("search_type", "class");
break;
case FindUsagesParams.TYPE_METHOD:
data.put("search_type", "method");
data.put("search_method", params.methodParamType);
break;
case FindUsagesParams.TYPE_FIELD:
data.put("search_type", "field");
data.put("search_field", params.fieldName);
break;
case FindUsagesParams.TYPE_CONSTANTS:
data.put("search_type", "constant");
data.put("search_constant", params.constant);
break;
case FindUsagesParams.TYPE_PACKAGE:
data.put("search_type", "package");
data.put("search_package", params.packageName);
break;
}
if (params != null && !StringUtils.isEmpty(params.className)) {
data.put("search_class", params.className);
}
data.put("ref", map);
return data;
}
public interface DoWork {
void run(Object params, List newList);
}
public interface AsyncTask {
T doInBackground();
void doUi(T data);
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy