import os import re # inside_class = False file_class = None read = False #Make folder to run test path='class' file_uml = open("DotUML.txt","r") content= file_uml.readlines() if not os.path.exists(path): os.mkdir(path) def check_file(path_file): return os.path.exists(path_file) def modify(filepath, from_, to_): file = open(filepath,"r+") text = file.read() pattern = from_ splitted_text = re.split(pattern,text) modified_text = to_.join(splitted_text) with open(filepath,'r+') as file: file.write(modified_text) #Couper le fichier ligne par ligne for line in content: #skip first line if "ClassDiagram" in line: continue #print(line) split_line=line.split() read=False #Coupe la ligne par des morcreaux print(split_line) print(len(split_line)) #Check if it is a blank line if ( len(split_line)==0): continue else: # check "class X {" line if split_line[0]=='class' and len(split_line)==3 and split_line[2]=='{': class_name = split_line[1] class_java = class_name + '.java' read = True # Check if the Java file already exists if check_file(class_java): print(f"File {class_java} already exists.") else: # Create the Java file file_class=open(class_java,'x') file_class.write(f"public class {class_name} {{\n") inside_class = True #Check type of variables while (inside_class==True and read== False): file_class.write("\n") if(len(split_line)==3 and split_line[1]==":"): name_var =split_line[0] if (split_line[2]=="boolean"): type_var="Boolean" elif (split_line[2]=="int"): type_var="Integer" file_class.write("\t @Id \n") elif (split_line[2]=="void"): type_var="void" file_class.write("\t @Column \n") file_class.write(f"\t private {type_var} {name_var} \n") read = True if split_line[0]=='}' and len(split_line)==1: inside_class= False read = True file_class.write("} \n") file_class.close() #Check extends "X -g-> Y" while (inside_class==False and read==False): if(len(split_line)==3 and split_line[1]=='-g->'): class_name = split_line[0] class_java = class_name+'.java' class_heritage= split_line[2] if check_file(class_java): """ file_class=open(class_java,'r+') contents=file_class.readlines() #Check if it has line public class X for content in contents: if 'public class' in content: extends= "extends "+ class_heritage +" { \n" content= content.replace('', 'public class X for Z') file_class.write(content) file_class.close() break """ class_declaration= 'public class ' + class_name modify(class_java,class_declaration,class_declaration+ " extends "+ class_heritage) break