package husacct.define.task.report;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import husacct.ServiceProvider;
import husacct.common.dto.RuleDTO;
import husacct.define.domain.appliedrule.AppliedRuleStrategy;
import husacct.define.domain.module.ModuleStrategy;
import husacct.define.domain.services.AppliedRuleDomainService;
import husacct.define.domain.services.ModuleDomainService;
public abstract class ReportArchitectureAbstract {
private ModuleDomainService moduleService;
private AppliedRuleDomainService ruleService;
public ReportArchitectureAbstract() {
moduleService = new ModuleDomainService();
ruleService = new AppliedRuleDomainService();
}
protected RuleDTO[] getAllRulesWithExceptions() {
return ServiceProvider.getInstance().getDefineService().getDefinedRules();
}
protected List<ModuleStrategy> getRootModules() {
ModuleStrategy[] rootModules = moduleService.getRootModules();
List<ModuleStrategy> rootModuleList = new ArrayList<ModuleStrategy>();
for(int i = 0; i < rootModules.length; i++) {
rootModuleList.add(rootModules[i]);
}
return rootModuleList;
}
protected HashMap<String, Boolean> getAppliedRules(long moduleId){
HashMap<String, Boolean> appliedRules = new HashMap<String, Boolean>();
for(AppliedRuleStrategy rule : ruleService.getAllEnabledMainRules()){
if(rule.getModuleFrom().getId() == moduleId){
appliedRules.put(rule.getRuleTypeKey(), rule.isEnabled());
}
}
return appliedRules;
}
protected String convertIsIndirectBooleanToString(boolean isIndirect) {
if (isIndirect) {
return "direct";
} else {
return "indirect";
}
}
public abstract void write(String path);
protected String translate(String key) {
return ServiceProvider.getInstance().getLocaleService().getTranslatedString(key);
}
}