コード例 #1
0
def test2():
    ant_dir = "/home/ali/Desktop/code/TestProject/"
    res = main(
        source_filenames=symbol_table.get_filenames_in_dir(ant_dir),
        package_name="test_package",
        class_names=["AppChild1", "AppChild2"],
        method_keys=["printTest()"],
        interface_name="ExtractedInterface",
        interface_filename="/home/ali/Desktop/code/TestProject/src/test_package/ExtractedInterface.java",
        # lambda x: "tests/extract_interface_ant/" + x[len(ant_dir):]
    )
    print(res)
コード例 #2
0
ファイル: pullup_field.py プロジェクト: m-zakeri/CodART
def main(project_dir: str, package_name: str, children_class: str, field_name: str, *args, **kwargs):
    """


    """

    # print("Pull-up field")
    result = PullUpFieldRefactoring(
        symbol_table.get_filenames_in_dir(project_dir),
        package_name,
        children_class,
        field_name
        # lambda x: "tests/pullup_field_ant/" + x[len(ant_dir):]
    ).do_refactor()
    # print(f"Success pull-up field {field_name}" if result else f"Cannot  pull-up field {field_name}")
    return result
コード例 #3
0
def main(project_dir, source_package, source_class, field_name,
         target_classes: list, *args, **kwargs):
    """


    """
    res = PushDownField(
        symbol_table.get_filenames_in_dir(project_dir),
        package_name=source_package,
        superclass_name=source_class,
        field_name=field_name,
        class_names=target_classes,
    ).do_refactor()
    if not res:
        logger.error("Cannot push-down field")
        return False
    return True
コード例 #4
0
    def check(self):
        super_classes = []
        packages = self.program.packages
        for package_item in packages:
            package_item_dic = self.program.packages[package_item]
            for classes_item in package_item_dic.classes:
                class_item_dic = package_item_dic.classes[classes_item]
                if class_item_dic.modifiers[0] == 'abstract':
                    while class_item_dic.superclass_name:
                        super_class = self.find_super_type(
                            class_item_dic.superclass_name)
                        if super_class.modifiers[0] == 'abstract':
                            print("Find : cyclic dependent modularization...")
                            return
                        class_item_dic = super_class

    def find_super_type(self, class_name):
        for package_item in self.program.packages:
            package_item_dic = self.program.packages[package_item]
            for classes_item in package_item_dic.classes:
                class_item_dic = package_item_dic.classes[classes_item]
                if class_item_dic.name == class_name:
                    return class_item_dic


if __name__ == "__main__":
    mylist = get_filenames_in_dir('C:/Users/Qafari/Desktop/propagationTest')
    print("start ....")
    CyclicDependentModularization(mylist).check()
    print("finish ....")