(self, params)
| 37 | return True |
| 38 | |
| 39 | def analyze(self, params): |
| 40 | source_dir = params["source_dir"] |
| 41 | work_dir = params["work_dir"] |
| 42 | |
| 43 | rules = RuleParamer.java_param_formart(params["rule_list"]) |
| 44 | with open("rules.json", "w") as f1: |
| 45 | f1.write(json.dumps(rules)) |
| 46 | f1.close() |
| 47 | |
| 48 | self.js = JavaScaner(source_dir, work_dir, jar_mode=True) |
| 49 | need_ast = False |
| 50 | need_field = False |
| 51 | for rule_info in rules: |
| 52 | if "up_exist_method" in rule_info or "up_no_exist_method" in rule_info or "need_method_chain" in rule_info: |
| 53 | LogPrinter.info("条件符合,执行ast解析.") |
| 54 | need_ast = True |
| 55 | if "field" in rule_info: |
| 56 | LogPrinter.info("条件符合,执行字节码遍历解析.") |
| 57 | need_field = True |
| 58 | self.js.parser(need_bc=True, need_ast=need_ast, need_field=need_field) |
| 59 | |
| 60 | loong = Loong( |
| 61 | config=os.path.join(work_dir, "rules.json"), |
| 62 | dbdir=work_dir, |
| 63 | project_root=source_dir, |
| 64 | jar_mode=True, |
| 65 | ) |
| 66 | result = loong.scan() |
| 67 | |
| 68 | return result |
| 69 | |
| 70 | def set_blame_type(self): |
| 71 | return FILE_LAST_CHANGE_BLAME |
nothing calls this directly
no test coverage detected