generateThreats function
Parsing ':Global:threats' Node This nodes defined by Cloud
Implementation
Future generateThreats() async {
try {
var globalThreats = await Storage.controller.get(':Global:threats');
var nodesCsv = await globalThreats.getChildNodesCsv();
if(nodesCsv.isNotEmpty) {
///get all threat nodes
var getChildren = await globalThreats.getChildren();
var threatsIterator = getChildren.entries.iterator;
///To makes threat uuid list
///this uuid use on map as key
var uuidThreats = nodesCsv.toString().split(',');
logger.d('uuidThreats => ${uuidThreats.toString()}');
var uuidIterator = uuidThreats.iterator;
CoreValues.uuidThreats = uuidThreats;
///loop threats
while (threatsIterator.moveNext()) {
uuidIterator.moveNext();
var threatNameNode = await threatsIterator.current.value.getValue('name');
var threatName = threatNameNode!.getValue('en');
var geigerThreatNameNode = await threatsIterator.current.value.getValue('GEIGER_threat'); //geigerThreat
var geigerThreatName = geigerThreatNameNode!.getValue('en');
///Making the threat maps
CoreValues.threatUUIDThreatName[uuidIterator.current] = threatName;
CoreValues.threatNameThreatUUID[threatName] = uuidIterator.current;
CoreValues.threatUUIDGeigerName[uuidIterator.current] = geigerThreatName;
if(!CoreValues.geigerNameThreatUUID.containsKey(geigerThreatName)){
CoreValues.geigerNameThreatUUID[geigerThreatName] = [];
CoreValues.geigerNameThreatUUID[geigerThreatName].add(uuidIterator.current);
}else{
CoreValues.geigerNameThreatUUID[geigerThreatName].add(uuidIterator.current);
}
}
}
//이름 같은 것 끼리 묶어야함 - 프로파일은 12개로 고정되어있음, 맵핑안되는 위협들은 점수를 못가짐
//UUID -> NAME ->
//기준 UUID를 찾고
//기준 UUID의 NAME알고
//기준 NAME과 같은 모든 Threat에 같은 값을 넣는다
}catch(e) {
logger.e('generateThreats ${e.toString()}');
}
}