Criador de Diagrama de Classes Mermaid para Java
Esta em desenvolvimento!
Porque usar - Como usar - Quando usar - Aonde usar - Testado
classDiagram
class DemoApplicationTests {
void contextLoads();
}
class ProductController {
-com.foodminder.FoodMinder.domain.product.ProductRepository repository;
+com.foodminder.FoodMinder.controllers.ProductController();
+getAllProducts();
+registerProduct(com.foodminder.FoodMinder.domain.product.RequestProduct);
+updateProduct(com.foodminder.FoodMinder.domain.product.RequestProduct);
+deleteProduct(String);
}
class DemoApplication {
+com.foodminder.FoodMinder.DemoApplication();
+static void main(String[]);
}
class Product {
-String id;
-String name;
-Integer price_in_cents;
-Boolean active;
+com.foodminder.FoodMinder.domain.product.Product(com.foodminder.FoodMinder.domain.product.RequestProduct);
+String getId();
+String getName();
+Integer getPrice_in_cents();
+Boolean getActive();
+void setId(String);
+void setName(String);
+void setPrice_in_cents(Integer);
+void setActive(Boolean);
+com.foodminder.FoodMinder.domain.product.Product(String, String, Integer, Boolean);
+com.foodminder.FoodMinder.domain.product.Product();
+boolean equals(Object);
#boolean canEqual(Object);
+int hashCode();
}
class RequestProduct {
-final String id;
-final String name;
-final Integer price_in_cents;
+com.foodminder.FoodMinder.domain.product.RequestProduct(String, String, Integer);
+final String toString();
+final int hashCode();
+final boolean equals(Object);
+String id();
+String name();
+Integer price_in_cents();
}
class ProductRepository {
<<interface>>
}
ProductRepository ..|> Product : Realization
- Para fins de documentação do projeto, além de outros beneficios de um diagrama de classes.
- Clone o repositório
git clone https://github.com/renatonunes74/mermagic
- Entre na pasta
cd mermagic
- Execute
- CLI / via Terminal:
chmod +x mermagic.sh
(Para deixar executável)./mermagic.sh diretório/do/projeto/java
- CLI / via Terminal:
- Agora é só colar a saída num arquivo Mermaid!
- Pacotes Linux básicos, como: cat, grep, find, sed...
- Javap (Para encontrar as classes e métodos)
- xclip (Para copiar a saída gerada)
- Complementares:
- VHS (Criação de GIF do terminal via código)
- Quando necessitar documentar, verificar ou até mesmo demonstrar o relacionamento das classes.
- Via terminal que suporte SHELL Script e as ferramentas (Dependências necessárias)
Estou aberto a contribuições, feedback e opiniões da comunidade! Se você tiver alguma ideia para melhorar o projeto, correções de bugs ou sugestões de novos recursos, ficarei feliz em receber sua contribuição! Basta enviar um Pull Request no repositório do projeto.