vpp_edit_class_model
Applies ordered, all-or-nothing edits to a Visual Paradigm class model and diagram, writing the result to a new file while leaving the original unchanged.
Instructions
Zmiany w modelu klas i na diagramie klas; wynik do NOWEGO pliku (oryginał bez zmian). Lista zmian wykonywanych po kolei, wszystkie albo żadna. Każda zmiana to obiekt z polem "op":
{"op":"add_class","name":"FabrykaZamowien","kind":"class|abstract class|interface|enumeration", "attributes":["-licznik : int"], "operations":["+utworz(klient : Klient) : Zamowienie"], "literals":["A","B"], "static_members":["licznik"], "abstract_operations":["utworz"], "x":100, "y":200, "diagram":""}
{"op":"add_attribute","class":"Klient","text":"-email : String [0..1]","static":false}
{"op":"add_operation","class":"Klient","text":"+zaloguj(email : String, haslo : String) : boolean","static":false,"abstract":false}
{"op":"change_operation","class":"Menu","name":"dodajDanie","text":"+dodajDanie(nazwa : String, cena : double) : Danie"} (zachowuje ID metody, więc komunikaty w diagramach sekwencji dalej na nią wskazują)
{"op":"change_attribute","class":"Danie","name":"cena","text":"-cena : double"}
{"op":"remove_member","class":"Klient","name":"dodajAdres"} (odmówi, jeśli metodę wywołuje komunikat)
{"op":"add_literal","class":"StatusZamowienia","literal":"REKLAMOWANE"}
{"op":"add_relationship","kind":"generalization|realization|dependency|association|directed|aggregation|composition", "source":"Klient","target":"Użytkownik", "source_multiplicity":"1","source_role":"klient", "target_multiplicity":"0..*","target_role":"zamowienia","stereotype":"use"} generalization: source=podklasa, target=nadklasa; realization: source=klasa, target=interfejs; dependency: source używa target (opcjonalny stereotype np. use/create); aggregation/composition: source=całość (romb przy source); directed: strzałka przy target.
{"op":"remove_relationship","id":""}
{"op":"move_class","class":"Koszyk","x":400,"y":120} (przelicza linie relacji tej klasy)
{"op":"fit_class","class":"Koszyk"} (dopasowuje rozmiar pudełka do treści) Typy: int, double, boolean, void, char, long, float, byte, short, nazwy klas z projektu, dowolny tekst (String, LocalDateTime), generyki np. List. Widoczność: + publiczna, - prywatna.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| changes | Yes | ||
| output_path | Yes | ||
| source_path | Yes | ||
| overwrite_output | No |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| result | Yes |