from msprof_analyze.cluster_analyse.communication_group.communication_db_group import CommunicationDBGroup
from msprof_analyze.cluster_analyse.communication_group.communication_db_group import CommunicationDBGroupOptimized
from msprof_analyze.cluster_analyse.communication_group.communication_json_group import CommunicationJsonGroup
from msprof_analyze.prof_common.constant import Constant
SIMPLIFIED = "SIMPLIFIED"
ORIGINAL = "ORIGINAL"
class CommunicationGroupGenerator:
GROUP_MAP = {
ORIGINAL: {
Constant.DB: CommunicationDBGroup,
Constant.TEXT: CommunicationJsonGroup
},
SIMPLIFIED: {
Constant.DB: CommunicationDBGroupOptimized,
Constant.TEXT: CommunicationJsonGroup
}
}
def __init__(self, params: dict):
version = SIMPLIFIED if params.get(Constant.DATA_SIMPLIFICATION) else ORIGINAL
self.processor = self.GROUP_MAP.get(version).get(params.get(Constant.DATA_TYPE))(params)
def generate(self):
return self.processor.generate()