<div class="page"> <div class="cover text-center"> <img class="mx-auto" src=/itb/images/logo_mislata.png alt="logo"> # Documentació Xarxa Social <div class="text-end fit-content ms-auto my-3 mt-auto pt-3"> <p><strong>Autor:</strong> Joan Puigcerver Ibáñez</p> <p><strong>Correu electrònic:</strong> j.puigcerveribanez@edu.gva.es</p> <p><strong>Curs:</strong> 2024/2025</p> </div> <div> <p class="fw-bold mb-0">Llicència: BY-NC-SA</p> <p class="d-none d-md-block">(Reconeixement - No Comercial - Compartir Igual)</p> <a href="https://creativecommons.org/licenses/by-nc-sa/4.0/deed.ca" target="_blank"> <img class="mx-auto" src="/itb/images/license.png" alt="Licence"/> </a> </div><!--license--> </div><!--cover--> </div><!--page--> {:toc} ## Enunciat Se'ns ha proporcionat la implementació de la lògica d'una xarxa social. Aquesta xarxa social permetrà als usuaris publicar missatges de text, i comentar-los. ::: warning __NO HEU DE MODIFICAR EL CODI__, sols cal que el documenteu correctament. ::: ### Entrega Modifica el fitxer `README.md` de la vostra pràctica per incloure la documentació generada: ```md ... - Enllaç a la documentació generada: https://... ``` Cal indicar en la tasca d'Aules: - L'enllaç als fitxers de la vostra pràctica al repositori de GitHub. - _Exemple: https://github.com/fpmislata-dam1s-ed/PuigcerverJoan-ED-solutions/tree/master/src/main/java/ud6/practices_ - L'enllaç a la publicació de la documentació a GitHub Pages. - _Exemple: https://fpmislata-dam1s-ed.github.io/PuigcerverJoan-ED-solutions/_ ### Documentació Cal generar la documentació API de les classes implementades. ::: info També cal documentar els mètodes _getter_ i _setter_. ::: La documentació ha de ser clara i precisa, i cal incloure les següents etiquetes sempre que siga possible: - `@param` per a descriure els paràmetres dels mètodes - `@return` per a descriure el valor retornat pels mètodes - `@author` per a indicar l'autor de la classe (tu mateix) - `@version` per a indicar la versió de la classe (1.0) - `@see` per a indicar referències a altres classes o mètodes ### Generació La documentació generada ha d'incloure tots els elements, fins i tot aquells difinitis amb visibilitat `private`. ::: tip Vos recomane que genereu la documentació de tot el projecte. D'aquesta manera, podreu consultar la documentació de les classes realitzades en altres exercicis. ::: ### Publicació La documentació s'ha de generar en format HTML i s'ha de publicar a GitHub Pages. ## Implementació ### User ```java package ud6.practices; import java.util.ArrayList; import java.util.List; public class User { private final String username; private final List<Post> posts; public User(String username) { this.username = username; this.posts = new ArrayList<>(); } public String getUsername() { return username; } public List<Post> getPosts() { return posts; } public void addPost(Post post) { posts.add(post); } } ``` ### Commentable ```java package ud6.practices; import java.util.List; public interface Commentable { void addComment(Comment comment); List<Comment> getComments(); } ``` ### Comment ```java package ud6.practices; import java.util.List; import java.util.ArrayList; public class Comment implements Commentable { private final String content; private final List<Comment> comments; public Comment(String content) { this.content = content; this.comments = new ArrayList<>(); } public String getContent() { return content; } public void addComment(Comment comment) { comments.add(comment); } public List<Comment> getComments() { return comments; } } ``` ### Post ```java package ud6.practices; import java.util.ArrayList; import java.util.List; public class Post implements Commentable { private final String title; private final String content; private final List<Comment> comments; public Post(String title, String content) { this.title = title; this.content = content; this.comments = new ArrayList<>(); } public String getTitle() { return title; } public String getContent() { return content; } public List<Comment> getComments() { return comments; } public void addComment(Comment comment) { comments.add(comment); } } ```