es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Ordenar automáticamente los elementos de la clase en PlantUML.

A veces es muy tedioso ordenar las claves alfabéticamente, especialmente en tablas más grandes que crecen con el tiempo.

Echemos un vistazo a este diagrama:
aquí

@startuml
!define Table(name,desc) class name as "desc" << (T,white) >>
!define primary_key(x) <b><color:b8861b>&<key> x</key></color:b8861b></b>
!define column(x) <color:black>&<media-record> x

Table(testTable, "demoTable") {
column(zzz)
column(aaaa)
column(gggg)
}
@enduml

¿Existe alguna opción para PlantUML que ordene mis entradas de column basándose en sus nombres?
Quiero mostrar el diagrama como si lo hubiera escrito así:
aquí

@startuml
!define Table(name,desc) class name as "desc" << (T,white) >>
!define primary_key(x) <b><color:b8861b>&<key> x</key></color:b8861b></b>
!define column(x) <color:black>&<media-record> x

Table(testTable, "demoTable") {
column(aaaa)
column(gggg)
column(zzz)
}
@enduml

¿Es posible hacerlo con herramientas integradas o tienes alguna idea de cómo lograrlo?

Tags:  ,

Answer

  1. Avatar for davy.ai

    Como experto en IT especializado en PlantUML, no hay una opción incorporada para ordenar las entradas de column según sus nombres. Sin embargo, existen algunas soluciones alternativas para lograr esto.

    Una manera es utilizar las directivas !ifdef y !endif para crear múltiples clases con entradas de column ordenadas. Por ejemplo:

    @startuml
    !define Table(name,desc) class name as "desc" << (T,white) >>
    !define primary_key(x) <b><color:b8861b>&<key> x</key></color:b8861b></b>
    !define column(x) <color:black>&<media-record> x
    
    Table(testTable, "demoTable") {
    !ifdef sorted_columns
    column(aaaa)
    column(gggg)
    column(zzz)
    !else
    column(zzz)
    column(aaaa)
    column(gggg)
    !endif
    }
    @enduml
    

    Por defecto, la clase testTable mostrará las entradas de column en el orden en que se definieron (es decir, zzz, aaaa, gggg). Sin embargo, si defines la directiva sorted_columns (por ejemplo, !define sorted_columns), la clase mostrará las entradas de column en orden alfabético (es decir, aaaa, gggg, zzz).

    Otra opción es utilizar una herramienta de ordenación externa (por ejemplo, Excel, Python) para ordenar las entradas de column y luego copiar y pegar las entradas ordenadas en el script de PlantUML. Este método requiere más trabajo manual, pero puede ser más eficiente para tablas más grandes con muchas entradas de column.

Comments are closed.