Commit eec7f1fa authored by Thiwanka K.A.T's avatar Thiwanka K.A.T 🎯

Merge branch 'IT19076362' into 'master'

UPDATE: code refactoring

See merge request !75
parents f690acbf 504bb9ce
......@@ -37,7 +37,6 @@ def split_actions(sentence):
def get_actions(splitted_action):
# print('splitted_action',splitted_action)
temp_array = []
if splitted_action is not None and '|' in splitted_action[1]:
res = splitted_action[1].split(' | ')
......
......@@ -44,34 +44,39 @@ def get_include_extend_relationships(splitted_actions_array):
relationship_array.append(dictionary)
return relationship_array
def clean_use_case_strings(use_case):
if 'Extend' in use_case:
return use_case.replace('Extend','').lstrip(' ')
return use_case.replace('Extend', '').lstrip(' ')
elif 'Include' in use_case:
return use_case.replace('Include', '').lstrip(' ')
else:
return use_case.lstrip(' ')
def generate_dot_file_actors_string(actors):
actors_string_content = []
for actor in actors:
single_actor_string = 'subgraph ' + actor + ' {label="' + actor + '"; ' + actor.lower() + '};\n\t' + actor.lower() + ' [image="'+APP_ROOT+'/stick.png";peripheries=0;];\n'
single_actor_string = 'subgraph ' + actor + ' {label="' + actor + '"; ' + actor.lower() + '};\n\t' + actor.lower() + ' [image="' + APP_ROOT + '/stick.png";peripheries=0;];\n'
actors_string_content.append(single_actor_string)
return actors_string_content
def generate_use_case_nodes(actors_and_use_cases_array):
use_case_nodes_array = []
for element in actors_and_use_cases_array:
cleaned_use_case_string = clean_use_case_strings(element[1])
use_case_string = cleaned_use_case_string.lower().replace(' ','_') + ' [label="' + cleaned_use_case_string + '"];\n'
use_case_string = cleaned_use_case_string.lower().replace(' ',
'_') + ' [label="' + cleaned_use_case_string + '"];\n'
use_case_nodes_array.append(use_case_string)
return use_case_nodes_array
def generate_edges(actors_and_use_cases_array):
edges_array = []
for element in actors_and_use_cases_array:
cleaned_string = clean_use_case_strings(element[1])
edge_string = element[0].replace(' ','').lower() + '->' + cleaned_string.lower().replace(' ','_') + ';\n'
edge_string = element[0].replace(' ', '').lower() + '->' + cleaned_string.lower().replace(' ', '_') + ';\n'
edges_array.append(edge_string)
return edges_array
......@@ -81,25 +86,32 @@ def generate_extend_relationships_string(extracted_relationships):
for element in extracted_relationships:
if element['extend']:
for ele in element['extend']:
extend_string = element['use_case'].lstrip(' ').rstrip(' ').replace(' ','_').lower() + '->' + ele.lstrip(' ').rstrip(' ').replace(' ','_').lower() + ';\n'
extend_string = element['use_case'].lstrip(' ').rstrip(' ').replace(' ',
'_').lower() + '->' + ele.lstrip(
' ').rstrip(' ').replace(' ', '_').lower() + ';\n'
extend_array.append(extend_string)
return extend_array
def generate_include_relationships_string(extracted_relationships):
include_array = []
for element in extracted_relationships:
if element['include']:
for ele in element['include']:
include_string = element['use_case'].lstrip(' ').rstrip(' ').replace(' ','_').lower() + "->" + ele.lstrip(' ').rstrip(' ').replace(' ','_').lower() + ';\n'
include_string = element['use_case'].lstrip(' ').rstrip(' ').replace(' ',
'_').lower() + "->" + ele.lstrip(
' ').rstrip(' ').replace(' ', '_').lower() + ';\n'
include_array.append(include_string)
return include_array
def generate_random_string():
letters = string.ascii_lowercase
random_string = ''.join(random.choice(letters) for i in range(10))
return random_string
def generate_use_case_diagram(actors,extracted_relationships,actors_and_use_cases_array):
def generate_use_case_diagram(actors, extracted_relationships, actors_and_use_cases_array):
generated_actors_string = generate_dot_file_actors_string(actors)
generated_use_case_nodes_string = generate_use_case_nodes(actors_and_use_cases_array)
generated_edges_string = generate_edges(actors_and_use_cases_array)
......@@ -138,6 +150,8 @@ def generate_use_case_diagram(actors,extracted_relationships,actors_and_use_case
generate_diagram(dot_file_name)
return '/generated_use_case_diagrams/' + dot_file_name + '.png'
def generate_diagram(filename):
subprocess.run(["dot", "-Tpng", OUTPUTS_GENERATED_DOT_FILES_PATH+"/use_cases_"+filename+".dot", "-o", OUTPUTS_GENERATED_USE_CASE_DIAGRAMS_PATH+"/"+filename+".png"])
return True
\ No newline at end of file
subprocess.run(["dot", "-Tpng", OUTPUTS_GENERATED_DOT_FILES_PATH + "/use_cases_" + filename + ".dot", "-o",
OUTPUTS_GENERATED_USE_CASE_DIAGRAMS_PATH + "/" + filename + ".png"])
return True
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment