User Tools

Site Tools


educare:plantuml

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
educare:plantuml [2020/06/08 22:20] – external edit 127.0.0.1educare:plantuml [2022/11/18 16:46] (current) profpro
Line 10: Line 10:
 <code> <code>
 #!/bin/bash #!/bin/bash
- 
-# to do:  
-# rimuovere prima tutti i commenti perché potrebbero contenere nomi di classi esterne 
  
 echo "@startuml" > prova-plantuml.txt ; echo "@startuml" > prova-plantuml.txt ;
- 
 for i in *.java ; do  for i in *.java ; do 
   frase1=`grep 'class' "$i"`;   frase1=`grep 'class' "$i"`;
   if [ -n "$frase1"   if [ -n "$frase1"
  then echo "class ${i/.java}" >> prova-plantuml.txt ;  then echo "class ${i/.java}" >> prova-plantuml.txt ;
 +  fi
 +done
 +
 +for i in *.java ; do 
 +  frase1=`grep 'interface' "$i"`;
 +  if [ -n "$frase1"
 + then echo "interface ${i/.java}" >> prova-plantuml.txt ;
   fi   fi
 done done
Line 28: Line 31:
 # cerca extends dentro tutti i sorgenti # cerca extends dentro tutti i sorgenti
 # quando lo trova, deve prendere SOLO la parola dopo extends # quando lo trova, deve prendere SOLO la parola dopo extends
- 
-# to do: devo escludere la eventuale parentesi graffa dopo extends 
  
     frase2=`grep 'extends' "$i" | sed -e 's/.*\(extends\) \(\W*\w*\)/\2/g'`     frase2=`grep 'extends' "$i" | sed -e 's/.*\(extends\) \(\W*\w*\)/\2/g'`
     echo "$frase2 <|--  ${i/.java}" >> prova-plantuml.txt;     echo "$frase2 <|--  ${i/.java}" >> prova-plantuml.txt;
 done done
 +
  
 for i in *.java ; do for i in *.java ; do
     for j in *.java ; do      for j in *.java ; do 
-    # questo grep rilevava anche extends. Con SED si è rimossa la riga che conteneva extends.  +      frase3=`grep "${j/.java}" "$i" | sed -e 's/\(.*\)\(extends\) \(\W*\w*\)\(.*\)//g' | sed -e 's/\(.*\)\(implements\) \(\W*\w*\)\(.*\)//g'`;  
-      frase3=`grep "${j/.java}" "$i" | sed -e 's/\(.*\)\(extends\) \(\W*\w*\)\(.*\)//g'`;  + # questo grep rilevava anche extends e implements come CLASSE. Con SED si è rimossa la riga che conteneva extends.  
- + backquote `` command substitution 
- to do: +      echo "$i contiene $j ... $frase3";
- # errore da correggere: questo if cerca semplicemente la presenza di classi (iniziale maiuscola) +
-in qualsiasi punto del codice,  ma forse le classi andrebbero cercate solo tra i seguenti elementi: +
- # attributi +
- # valori restituiti dai metodi +
- # valori argomento di metodi +
- +
    if [ ! "$j" = "$i" -a -n "$frase3" ];     if [ ! "$j" = "$i" -a -n "$frase3" ]; 
      then      then
Line 53: Line 49:
     done     done
 done done
-  + 
 +for i in *.java ; do  
 + 
 +# cerca implements dentro tutti i sorgenti 
 +# quando lo trova, deve prendere SOLO la parola dopo implements 
 + 
 +    frase2=`grep 'implements' "$i" | sed -e 's/.*\(implements\) \(\W*\w*\)/\2/g'
 +    echo "$frase2 <|..  ${i/.java}" >> prova-plantuml.txt; 
 +done 
      
 echo  "@enduml" >> prova-plantuml.txt ; echo  "@enduml" >> prova-plantuml.txt ;
educare/plantuml.1591647601.txt.gz · Last modified: 2020/06/08 22:20 by 127.0.0.1