Check class diagram text
check_class_diagramUse this when the user wants class diagram text checked without a drawing, for example "check my class diagram for errors" or "are there inheritance cycles in this model". Takes the same text as make_class_diagram. Returns the syntax problems with their line numbers, relations to classes that are not declared, duplicate classes and members, inheritance cycles named class by class, and model warnings (abstract members in a concrete class, a class that inherits from an interface, realization of a class that is not an interface, repeated relations). Draws nothing and makes no files. Does not read source code files.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| source | Yes | The class diagram text in this grammar, up to 100,000 characters. One item per line. Classes: "class Name {", "interface Name {", "abstract class Name {" or "enum Name {", then one member per line, then "}" on its own line ("class Name" alone declares an empty class; a stereotype may follow the name, e.g. "class Name <<entity>> {"). Fields: "+name: Type". Methods: "+name(arg: Type, other: Type): ReturnType". Visibility + public, - private, # protected, ~ package (optional). "{static}" or "{abstract}" before the name marks static or abstract members. Enum constants: one NAME per line. Relations: "Animal <|-- Dog" (inheritance), "Shape <|.. Circle" (realization), "Car *-- Wheel" (composition), "Team o-- Player" (aggregation), "Customer --> Order" (association), "Report ..> Printer" (dependency), "A -- B" (link); arrows may point either way (Dog --|> Animal). Optional multiplicities in quotes next to each class and a label after a colon: Customer "1" --> "0..*" Order : places. "%%" starts a comment line. Example: "class Customer {\n+name: String\n+orders(): List<Order>\n}\nclass Order {\n-total: Decimal\n}\nCustomer \"1\" --> \"*\" Order : places". |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| ready | Yes | ||
| shown | No | ||
| counts | Yes | ||
| errors | Yes | ||
| limits | Yes | ||
| relation_lines | Yes | ||
| warnings_found | Yes | ||
| unknown_classes | Yes | ||
| duplicate_members | Yes | ||
| relations_by_kind | Yes | ||
| inheritance_cycles | Yes |