com.utiles.files.MetodosFiles.java Source code

Java tutorial

Introduction

Here is the source code for com.utiles.files.MetodosFiles.java

Source

/*
 * 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.utiles.files;

import static com.bytesw.util.program.Logger.printException;
import static com.utiles.constantes.UtilesFilesConstantes.*;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import static org.apache.commons.io.FileUtils.*;

/**
 *
 * @author Mijail Aymara
 */
public class MetodosFiles {

    public final static String FILE_PRUEBA = "D:\\MIJAIL\\MAT\\FILES PRUEBA\\prueba2.txt";
    public final static String FILE_PRUEBA_TEMPORAL = "D:\\MIJAIL\\MAT\\FILES PRUEBA\\tmp_prueba2.txt";
    public final static String CADENA_SYSTEM_OUT_PRINT = "System.out.print";

    public void eliminarSystemOuts(String rutaFile) {
        // Open the file
        boolean existeSystemOut = false;
        try {

            FileInputStream fstream = new FileInputStream(rutaFile);
            BufferedReader br = new BufferedReader(new InputStreamReader(fstream));

            String strLine;
            while ((strLine = br.readLine()) != null) {
                existeSystemOut = strLine.toLowerCase().contains(CADENA_SYSTEM_OUT_PRINT.toLowerCase());
                if (!existeSystemOut) {
                }
                if (strLine.trim().startsWith("//")) {
                }
            }
            br.close();
        } catch (Exception e) {
            printException("[ MetodosFiles ]", e);
        }
    }

    public void eliminarComentariosClase(String directorio) {
        File fileDirectorio = null;
        //        FileUtils fileUtils;
        try {

            fileDirectorio = new File(directorio);
            if (fileDirectorio.isDirectory()) {
                listFiles(fileDirectorio, null, null);
            }

        } catch (Exception e) {
            printException("[ MetodosFiles ]", e);
        }
    }

    /**
     *
     * @param directorio
     */
    public void listarArchivosDeDirectorio(final File directorio) {

        try {

            for (final File archivo : directorio.listFiles()) {
                if (archivo.isDirectory()) {
                    listarArchivosDeDirectorio(archivo);
                } else {
                    //TODO
                    String rutaArchivoJava = archivo.getAbsolutePath();
                    if (validarExtensionJava(rutaArchivoJava)) {

                        //                      agregarPrintException(archivo.getAbsolutePath());
                        eliminarSystemOuts(rutaArchivoJava);
                    }
                }
            }
        } catch (Exception e) {
            printException("[ MetodosFiles ]", e);
        }

    }

    public void agregarPrintException(String rutaClaseJava) {
        //        String rutaClaseJava = FILE_PRUEBA;
        String tmpFileName = FILE_PRUEBA_TEMPORAL;

        BufferedReader br = null;
        BufferedWriter bw = null;
        String nombreClase = null;
        boolean existePrintException;
        boolean existeSystemOut;
        boolean existeLineaComentada;
        boolean existePrintStack;
        boolean existeCatch;
        boolean existenEspaciosEnBlanco;
        try {
            br = new BufferedReader(new FileReader(rutaClaseJava));
            bw = new BufferedWriter(new FileWriter(tmpFileName));
            String line;
            while ((line = br.readLine()) != null) {

                if (nombreClase == null) {
                    nombreClase = detectarNombreClase(line);
                }

                existePrintException = validarExistenciaEnInicioDeLinea(line, IDENTIFICADOR_PRINT_EXCEPTION);
                existeSystemOut = validarExistenciaEnInicioDeLinea(line, IDENTIFICADOR_SYSTEM_OUT);
                existeLineaComentada = validarLineaSinComentario(line);
                existenEspaciosEnBlanco = validarExistenciaLineaEnBlanco(line);
                existePrintStack = validarExistenciaPrintStack(line);
                existeCatch = validarExisteCatch(line);

                if (existeCatch) {
                    bw.write(line + armarCadenaPrintException(nombreClase) + "\n");
                } else {
                    if (!existePrintStack && !existePrintException && !existeSystemOut && !existeLineaComentada
                            && !existenEspaciosEnBlanco) {
                        bw.write(line + "\n");
                        System.out.println(line + " " + existeLineaComentada + "\n");
                    }
                }
            }
        } catch (Exception e) {
            printException("[ MetodosFiles ]", e);
            return;
        } finally {
            try {
                if (br != null) {
                    br.close();
                }
            } catch (IOException e) {
                printException("[ MetodosFiles ]", e);
            }
            try {
                if (bw != null) {
                    bw.close();
                }
            } catch (IOException e) {
                printException("[ MetodosFiles ]", e);
                //
            }
        }
        // Once everything is complete, delete old file..
        File oldFile = new File(rutaClaseJava);
        oldFile.delete();

        // And rename tmp file's name to old file name
        File newFile = new File(tmpFileName);
        newFile.renameTo(oldFile);

    }

    public boolean validarExisteCatch(String linea) {
        boolean existeCatch = false;
        String lineaSinEspacio = null;
        try {
            linea = linea.replaceAll(" ", "");
            lineaSinEspacio = linea;
            if (!validarLineaSinComentario(linea)) {
                if (lineaSinEspacio.startsWith(IDENTIFICADOR_CATCH)) {
                    existeCatch = true;
                }
            }
        } catch (Exception e) {
            printException("[ MetodosFiles ]", e);
        }
        return existeCatch;
    }

    //    }
    //    public boolean ingresarPrintException(String adjuntoPrintException) {
    //        boolean printExIngresado = false;
    //        boolean existeCatch;
    //        try {
    //            if (validarExisteCatch(linea)) {
    //
    //            }
    //        } catch (Exception e) {
    //            e.printStackTrace();
    //        }
    //        return printExIngresado;
    //    }
    public String armarCadenaPrintException(String nombreClase) {
        String cadenaPrintException = null;
        try {
            //            cadenaPrintException = "printException( [ " + nombreClase + " ]" + "," + " "[ obtenerLibroReportePorServicio ] " , e);";
            cadenaPrintException = "printException( \"[ " + nombreClase + " ]\" , e);";
        } catch (Exception e) {
            printException("[ MetodosFiles ]", e);

        }
        return cadenaPrintException;
    }

    public String detectarNombreClase(String lineaCodigo) {
        String lineaSinEspacio = null;
        String nombreClase = null;
        int ultimoIndiceNombreClase;
        try {
            lineaCodigo = lineaCodigo.replaceAll(" ", "");
            lineaSinEspacio = lineaCodigo;
            if (!validarLineaSinComentario(lineaCodigo)) {
                if (lineaSinEspacio.startsWith(IDENTIFICADOR_PREFIJO_NOMBRE_CLASE_SIN_ESPACIO)) {
                    if (lineaCodigo.contains(IDENTIFICADOR_LLAVE_CIERRE)) {
                        ultimoIndiceNombreClase = lineaSinEspacio.indexOf(IDENTIFICADOR_LLAVE_CIERRE);
                    } else {
                        ultimoIndiceNombreClase = lineaSinEspacio.length();
                    }
                    nombreClase = lineaCodigo.substring(LONGITUD_PREFIJO_CLASE, ultimoIndiceNombreClase);
                }
            }

        } catch (Exception e) {
            printException("[ MetodosFiles ]", e);

        }
        return nombreClase;
    }

    public void eliminarPrintStack() {

    }

    public boolean validarExistenciaPrintStack(String linea) {
        boolean existePrintStack = false;
        String lineaSinEspacio = null;
        try {
            linea = linea.replaceAll(" ", "");
            lineaSinEspacio = linea;
            if (!validarLineaSinComentario(linea)) {
                if (lineaSinEspacio.startsWith(IDENTIFICADOR_PRINT_STACK)) {
                    existePrintStack = true;
                }
            }
        } catch (Exception e) {
            printException("[ MetodosFiles ]", e);

        }
        return existePrintStack;
    }

    public boolean validarExistenciaLineaEnBlanco(String linea) {
        boolean esLineaBlanca = false;
        try {
            if (linea != null) {
                if (linea.isEmpty()) {
                    esLineaBlanca = true;
                }
            }
        } catch (Exception e) {
        }
        return esLineaBlanca;
    }

    public boolean validarExistenciaValorEnLinea(String linea, String valor) {
        boolean existeValor = false;
        String lineaSinEspacio = null;
        try {
            linea = linea.replaceAll(" ", "");
            lineaSinEspacio = linea;
            if (!validarLineaSinComentario(linea)) {
                if (lineaSinEspacio.contains(valor)) {
                    existeValor = true;
                }
            }
        } catch (Exception e) {
            printException("[ MetodosFiles ]", e);

        }
        return existeValor;
    }

    public boolean validarExistenciaEnInicioDeLinea(String linea, String valor) {
        boolean existeValor = false;
        String lineaSinEspacio = null;
        try {
            linea = linea.replaceAll(" ", "");
            lineaSinEspacio = linea;
            if (!validarLineaSinComentario(linea)) {
                existeValor = lineaSinEspacio.startsWith(valor);
            }
        } catch (Exception e) {
            printException("[ MetodosFiles ]", e);

        }
        return existeValor;
    }

    public String detectarLineaException(String lineaCodigo) {
        String lineaSinEspacio = null;
        String nombreClase = null;
        int ultimoIndice;
        try {
            lineaCodigo = lineaCodigo.replaceAll(" ", "");
            lineaSinEspacio = lineaCodigo;
            if (!validarLineaSinComentario(lineaCodigo)) {
                if (lineaSinEspacio.startsWith(IDENTIFICADOR_PREFIJO_NOMBRE_CLASE_SIN_ESPACIO)) {
                    if (lineaCodigo.contains(IDENTIFICADOR_LLAVE_CIERRE)) {
                        ultimoIndice = lineaSinEspacio.indexOf(IDENTIFICADOR_LLAVE_CIERRE);
                    } else {
                        ultimoIndice = lineaSinEspacio.length();
                    }
                    nombreClase = lineaCodigo.substring(LONGITUD_PREFIJO_CLASE, ultimoIndice);
                }
            }

        } catch (Exception e) {
            printException("[ MetodosFiles ]", e);

        }
        return nombreClase;
    }

    public static boolean validarExtensionJava(String rutaArchivo) {
        try {
            if (rutaArchivo != null) {
                if (rutaArchivo.endsWith(".java")) {
                    File file = new File(rutaArchivo);
                    if (file.isFile()) {
                        return true;
                    }
                }
            }
        } catch (Exception e) {
            printException("[ MetodosFiles ]", e);

        }
        return false;
    }

    public boolean validarLineaSinComentario(String linea) {
        String lineaSinEspacios = null;
        boolean lineaComentario = false;
        try {
            lineaSinEspacios = linea.trim();
            lineaComentario = lineaSinEspacios.startsWith(IDENTIFICADOR_COMENTARIO);
            if (lineaComentario) {

            }
        } catch (Exception e) {
            printException("[ MetodosFiles ]", e);
        }
        return lineaComentario;
    }

    public String obtenerXmlCadena(String ruta) {
        StringBuilder sb = new StringBuilder();
        try {
            InputStream in = new FileInputStream(ruta);
            BufferedReader r = new BufferedReader(new InputStreamReader(in));
            String str = null;

            while ((str = r.readLine()) != null) {
                sb.append(str).append("\n");
            }

            return sb.toString();
        } catch (Exception e) {
            e.printStackTrace();
            return "";
        }

    }

    public static void main(String[] args) {
        MetodosFiles metodosFiles = new MetodosFiles();
        String nombreClase;
        try {
            //            File directorio = new File(DIRECTORIO_PRUEBA);
            //            metodosFiles.eliminarSystemOuts(FILE_PRUEBA);
            //            metodosFiles.agregarPrintException(FILE_PRUEBA);
            //            nombreClase = metodosFiles.detectarNombreClase("   public class GestionReporteHelper   {");
            //            System.out.println("nombreClase-->" + nombreClase);
            //            metodosFiles.armarCadenaPrintException("ClasePrueba");
            //            metodosFiles.listarArchivosDeDirectorio(directorio);
            //            System.out.println("--> " + metodosFiles.validarLineaSinComentario("//File directorio = new File(DIRECTORIO_PRUEBA);"));

            //           metodosFiles.eliminarSystemOuts(nombreClase);
            File directorio = new File("D:\\dev\\Netbeans\\Interact-Web\\reportes-jasper-util\\");
            if (directorio.isDirectory()) {
                metodosFiles.listarArchivosDeDirectorio(directorio);
            }

        } catch (Exception e) {
            printException("[ MetodosFiles ]", e);
        }
    }
}