Curso Avanzado de Java SE

Curso Avanzado de Java SE

Anahí Salgado Díaz de la Vega

Anahí Salgado Díaz de la Vega

Implementando JavaDocs al proyecto

7/39
Recursos

Aportes 21

Preguntas 0

Ordenar por:

Los aportes, preguntas y respuestas son vitales para aprender en comunidad. Regístrate o inicia sesión para participar.

Hola Todos. Para que automáticamente se coloquen los parámetros del método, se coloca /** y se da ENTER antes de la firma.

Para Java existen diferentes tags que puedes utilizar para una correcta documentación les dejo el link de la documentación oficial https://www.tutorialspoint.com/java/java_documentation.htm

Me encantó la explicación, soy de los que comentan todo y tener una forma de presentar esas explicaciones como documentación me parece genial.

Iba a adicionar este comentario en la clase Movie, minuto 11:11

/**
 * Hereda de {@link Film}
 * Implementea de {@link IVisualizable}
 * */

Excelente clase de como documentar en Java.
Resumen:
En la clase Main:

/**
 * <h1>AmazonViewer</h1>
 * AmazonViewer es un programa que permite visualizar Movies, Series con sus respectivos Chapters, Books y Magazines.
 * Te permite generar reportes generales y con fecha del día.
 * <p>
 * Existen algunas reglas como todos los elementos pueden ser visualizados o leídos a excepción 
 * de las Magazines, estas sólo pueden ser vistas a modo de exposición sin ser leídas.
 * 
 * @author njmunoz
 * @version 1.1
 * @since 2019
 * */

En la clase Film

/**
 * <h1>Film</h1>
 * Film es una clase padre abstracta.
 * <p>
 * Es la clase base de la familia Films, como es abstracta no se puede instanciar y por ende contiene el método abstracto
 * {@code view()} que es obligatorio implementar para todo aquél que pertenezca a la familia.
 * 
 * @author njmunoz
 * @version 1.1
 * @since 2019
 * */

En el método abstract view de la clase Film:

/**
* {@code view()} es un método abstracto obligatorio de implementar.
 * */

En la clase IVisualizable:
Método startToSee:

/**
* Este método captura el tiempo exacto de inicio de visualización.
 * 
 * @param dateI Es un objeto {@code Date} con el tiempo de inicio exacto.
 * @return {@code Date} Devuelve la fecha y hora capturada.
 * */

Método stopToSee:

/**
* Este método captura el tiempo exacto de inicio y final de visualización.
* 
* @param dateI Es un objeto {@code Date} con el tiempo de inicio exacto.
* @param dateF Es un objeto {@code Date} con el tiempo final exacto.
* */

Excelente, solo me confundi un poco cuando vas a comentar el de Movie (hereda) pero ya vi que lo aclararas en la proxima clase.

Implemente mi propio código y clase.

/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package com.simple.pap.models;

import com.simple.pap.controllers.LeerPropiedad;
import java.sql.SQLException;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.sql.DataSource;
import java.sql.Connection;
import javax.naming.Context;
import javax.naming.InitialContext;
import javax.naming.NamingException;
import oracle.jdbc.pool.OracleDataSource;

/**
 * <h1>ConfigDb</h1>
 * <p>
 * Esta Clase abstracta extenderan todas las clases hija donde se quiera
 * realizar la conexcion a base datos. Ademas tienes un metodo
 * {@code systemIsWindows()} metodo que devuelve true si es sistemas y
 * {@code ruta()} metodo que devuelve la ruta donde esta desplegada la
 * aplicacion. windows.
 * </p>
 *
 * @author eforero
 * @version 1.0
 * @since 2018
 */
public abstract class ConfigDB {

    protected Connection conPosgress;
    protected Connection conMultiUsua;
    protected DataSource odsPosgrest;
    protected OracleDataSource ods;
    DataSource ds = null;

    /**
     * <h1>abrirConexionPG</h1>
     * <P>
     * Metodo que abre la conexion a base de datos de posgrest
     * </P>
     *
     * @author eforero
     * @version 1.0
     * @since 2018
     */
    public void abrirConexionPG() {

        try {
            Context ctx = new InitialContext();
            odsPosgrest = (DataSource) ctx.lookup(LeerPropiedad.leerPropiedades().getProperty("url.datasource.posgrest"));
            conPosgress = odsPosgrest.getConnection();
        } catch (SQLException | NamingException ex) {
            Logger.getLogger(ConfigDB.class.getName()).log(Level.SEVERE, null, ex);
        }
    }

    /**
     * <h1>cerrarConexionPG</h1>
     * <P>
     * Metodo que cierra la conexion a base de datos de posgrest
     * </P>
     *
     * @author eforero
     * @version 1.0
     * @since 2018
     * @author juan.barcinilla
     * @version 2.0
     * @since 2019-05-27
     */
    public void cerrarConexionPG() {
        try {
            if (!conPosgress.isClosed()) {
                conPosgress.close();
            }
        } catch (SQLException ex) {
            Logger.getLogger(ConfigDB.class.getName()).log(Level.SEVERE, null, ex);
        }
    }

    /**
     * <h1>conectarMultiusua</h1>
     * <P>
     * Metodo que abre la conexion a base de datos de Oracle
     * </P>
     *
     * @author eforero
     * @version 1.0
     * @since 2018
     * @author juan.barcinilla
     * @version 2.0
     * @since 2019-05-27
     */
    public void conectarMultiusua() {
        try {
            Context ctx = new InitialContext();
            ods = (OracleDataSource) ctx.lookup(LeerPropiedad.leerPropiedades().getProperty("url.datasource.oracle"));
            conMultiUsua = ods.getConnection();
        } catch (NamingException | SQLException ex) {
            Logger.getLogger(ConfigDB.class.getName()).log(Level.SEVERE, null, ex);
        }
    }

    /**
     * <h1>cerrarConexionMultisua</h1>
     * <P>
     * Metodo que cierra la conexion a base de datos de Oracle
     * </P>
     *
     * @author eforero
     * @version 1.0
     * @since 2018
     */
    public void cerrarConexionMultisua() {
        try {
            if (!conMultiUsua.isClosed()) {
                conMultiUsua.close();
            }
        } catch (SQLException ex) {
            Logger.getLogger(ConfigDB.class.getName()).log(Level.SEVERE, null, ex);
        }
    }

    /**
     * <h1>systemIsWindows()</h1>
     * <P>
     * Metodo que devuelve verdadero si el sistema operativo windows
     * </P>
     *
     * @author juan.barcinilla
     * @version 1.0
     * @since 2018
     * @return {@code boolean }
     */
    private boolean systemIsWindows() {
        return System.getProperty("os.name").startsWith("Windows");
    }

    /**
     * <h1>ruta()</h1>
     * <P>
     * Metodo que devuelve la ruta donde esta desplegada la aplicacion.
     * </P>
     *
     * @author juan.barcinilla
     * @version 1.0
     * @since 2018
     * @return {@code boolean }
     * @see {@code systemIsWindows()}
     */
    public String ruta() {
        String ruta;
        if (systemIsWindows()) {
            ruta = "C:\\Data\\archivo-pap";//PRUEBA LOCAL
        } else {
            ruta = "/media/archivo-pap";//PRODUCCION
        }
        return ruta;
    }

}

En IDEs como IntelliJ y sus Derivados solo con poner /** y presionar enter les crea el JavaDocs

muy buena explicacion de como se impletementa java docs

¿Porque la etiqueta de párrafo <p> no se cierra como la etiqueta <h1>?
Muchas gracias por sus respuestas

excelente explicación!!!

Pregunta, ¿Es necesario implementar el javadoc en absolutamente todos los métodos, incluso en los getters y setters?, Lo pregunto por que he visto algunos proyectos que lo hacen pero en lo personal creo que eso puede se exagerado.

Cambia muy rapido de pestaña, un poco más de tiempo para ver como queda el comentario seria fenomenal. :P

Muy buena clase sobre como usar los JavaDocs

quedo muy claro como usar javadocs

Muy interesante las etiquetas de documentación de java docs

Javadoc Entendido 😃

Genial.

Muy buen practica, casí nadie la lleva a cabo

Muchas gracias por explicar la forma adecuada de documentar los elementos en Java por medio de varias demostraciones y detallando las palabras reservadas o especiales instructora Anahí.

En el minuto 11:11, iba a adicionar este comentario en la case Movie

/**
 * Hereda de {@link Film}
 * Implementea de {@link IVisualizable}
 * */