You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
70 lines
2.0 KiB
70 lines
2.0 KiB
package com.fr.env.detect.ui; |
|
|
|
import com.fr.env.detect.bean.DetectorResult; |
|
import com.fr.env.detect.bean.DetectorType; |
|
import com.fr.third.guava.collect.Lists; |
|
|
|
import java.util.Collection; |
|
import java.util.LinkedHashMap; |
|
import java.util.List; |
|
import java.util.Map; |
|
import java.util.stream.Collectors; |
|
import java.util.stream.Stream; |
|
|
|
/** |
|
* 环境检测数据格式 |
|
* |
|
* created by Harrison on 2022/05/27 |
|
**/ |
|
public class EnvDetectorModel { |
|
|
|
/** |
|
* 类型 -> list [{type-result}] |
|
*/ |
|
private final Map<DetectorType.Kind, List<EnvDetectorItem>> itemMap = new LinkedHashMap<>(); |
|
|
|
public EnvDetectorModel() { |
|
|
|
itemMap.put(DetectorType.Kind.JAR, Lists.newArrayList( |
|
new EnvDetectorItem(DetectorType.LACK_OF_JAR), |
|
new EnvDetectorItem(DetectorType.JAR_IN_CONSISTENCE), |
|
new EnvDetectorItem(DetectorType.JAR_CONFLICT))); |
|
|
|
itemMap.put(DetectorType.Kind.FINE_DB, Lists.newArrayList( |
|
new EnvDetectorItem(DetectorType.FINE_DB_LOCKED), |
|
new EnvDetectorItem(DetectorType.FINE_DB_PERMISSION), |
|
new EnvDetectorItem(DetectorType.FINE_DB_DIRTY))); |
|
} |
|
|
|
public void update(DetectorType type, DetectorResult result) { |
|
|
|
List<EnvDetectorItem> items = itemMap.get(type.getKind()); |
|
items.stream() |
|
.filter((e) -> e.getType() == type) |
|
.findFirst() |
|
.ifPresent((e) -> { |
|
e.setResult(result); |
|
}); |
|
} |
|
|
|
public Stream<DetectorResult> getResults() { |
|
|
|
return getItems().stream() |
|
.map(EnvDetectorItem::getResult); |
|
} |
|
|
|
public List<EnvDetectorItem> getItems() { |
|
|
|
return itemMap.values().stream() |
|
.flatMap(Collection::stream) |
|
.collect(Collectors.toList()); |
|
} |
|
|
|
public Map<DetectorType.Kind, List<EnvDetectorItem>> getItemMap() { |
|
|
|
return this.itemMap; |
|
} |
|
|
|
} |
|
|
|
|
|
|