commit
7a686ea46d
@ -0,0 +1,99 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
<groupId>com.qsoft.sincoarv2.rs.domain</groupId>
|
||||
<artifactId>sincoarv2-rs-domain</artifactId>
|
||||
<version>1.0-SNAPSHOT</version>
|
||||
<packaging>jar</packaging>
|
||||
<dependencies>
|
||||
<dependency>
|
||||
<groupId>com.auth0</groupId>
|
||||
<artifactId>java-jwt</artifactId>
|
||||
<version>4.4.0</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.mapstruct</groupId>
|
||||
<artifactId>mapstruct</artifactId>
|
||||
<version>1.5.5.Final</version>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>com.qsoft.util</groupId>
|
||||
<artifactId>qsoft-util</artifactId>
|
||||
<version>1.1.1-SNAPSHOT</version>
|
||||
<type>jar</type>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>com.qsoft</groupId>
|
||||
<artifactId>otp-util</artifactId>
|
||||
<version>1.0.0</version>
|
||||
<type>jar</type>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>commons-io</groupId>
|
||||
<artifactId>commons-io</artifactId>
|
||||
<version>2.13.0</version>
|
||||
<type>jar</type>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>com.fasterxml.jackson.core</groupId>
|
||||
<artifactId>jackson-core</artifactId>
|
||||
<version>2.15.2</version>
|
||||
<type>jar</type>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.junit.jupiter</groupId>
|
||||
<artifactId>junit-jupiter-api</artifactId>
|
||||
<version>5.6.0</version>
|
||||
<scope>test</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.junit.jupiter</groupId>
|
||||
<artifactId>junit-jupiter-params</artifactId>
|
||||
<version>5.6.0</version>
|
||||
<scope>test</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.junit.jupiter</groupId>
|
||||
<artifactId>junit-jupiter-engine</artifactId>
|
||||
<version>5.6.0</version>
|
||||
<scope>test</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>commons-codec</groupId>
|
||||
<artifactId>commons-codec</artifactId>
|
||||
<version>1.16.0</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>commons-discovery</groupId>
|
||||
<artifactId>commons-discovery</artifactId>
|
||||
<version>0.5</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.apache.poi</groupId>
|
||||
<artifactId>poi</artifactId>
|
||||
<version>5.2.3</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.apache.commons</groupId>
|
||||
<artifactId>commons-math3</artifactId>
|
||||
<version>3.6.1</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.apache.commons</groupId>
|
||||
<artifactId>commons-lang3</artifactId>
|
||||
<version>3.12.0</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.reflections</groupId>
|
||||
<artifactId>reflections</artifactId>
|
||||
<version>0.10.2</version>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
<properties>
|
||||
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
|
||||
<maven.compiler.source>17</maven.compiler.source>
|
||||
<maven.compiler.target>17</maven.compiler.target>
|
||||
<exec.mainClass>com.qsoft.sincoarv2.rs.domain.Sincoarv2RsDomain</exec.mainClass>
|
||||
</properties>
|
||||
</project>
|
@ -0,0 +1,15 @@
|
||||
/*
|
||||
* Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license
|
||||
* Click nbfs://nbhost/SystemFileSystem/Templates/Project/Maven2/JavaApp/src/main/java/${packagePath}/${mainClassName}.java to edit this template
|
||||
*/
|
||||
|
||||
package com.qsoft.sincoarv2.rs.domain;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author developer2
|
||||
*/
|
||||
public class Sincoarv2RsDomain {
|
||||
|
||||
|
||||
}
|
@ -0,0 +1,260 @@
|
||||
|
||||
import java.io.BufferedReader;
|
||||
import java.io.File;
|
||||
import java.io.FileOutputStream;
|
||||
import java.io.IOException;
|
||||
import java.io.InputStreamReader;
|
||||
import java.io.Serializable;
|
||||
import java.lang.reflect.Field;
|
||||
import java.nio.file.Path;
|
||||
import java.nio.file.Paths;
|
||||
import java.util.LinkedHashMap;
|
||||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
import java.util.logging.Level;
|
||||
import java.util.logging.Logger;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.apache.commons.math3.random.RandomDataGenerator;
|
||||
import org.reflections.Reflections;
|
||||
|
||||
/*
|
||||
* Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license
|
||||
* Click nbfs://nbhost/SystemFileSystem/Templates/Classes/Class.java to edit this template
|
||||
*/
|
||||
|
||||
/**
|
||||
*
|
||||
* @author developer2
|
||||
*/
|
||||
public class GeneradorCodigo {
|
||||
private static final String TAB = " ";
|
||||
|
||||
private static final String GETTER = TAB
|
||||
+ TAB + "public %s get%s() {\n" + TAB + "return %s;\n" + TAB + "}";
|
||||
|
||||
private static final String SETTER = TAB
|
||||
+ TAB + "public void set%s(%s %s) {\n" + TAB + "this.%s = %s;\n" + TAB + "}";
|
||||
|
||||
public static void main(String[] args) {
|
||||
String packOrigen = "com.qsoft.sincoarv2.rs.model";
|
||||
String packDestino = "com.qsoft.sincoarv2.rs.";
|
||||
BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); //Ya tenemos el "lector"
|
||||
Path path = Paths.get(".");
|
||||
String destino = path.toAbsolutePath().toString();
|
||||
|
||||
System.out.println("Folder detectado: "+destino);
|
||||
try {
|
||||
|
||||
System.out.println(String.format("Paquete del modelo [%s]:", packOrigen));
|
||||
packOrigen = br.readLine() == null || br.readLine().trim().equals("") ? packOrigen : br.readLine().trim();
|
||||
|
||||
System.out.println(String.format("Paquete de destino [%s]:", packDestino));
|
||||
packDestino = br.readLine() == null || br.readLine().trim().equals("") ? packDestino : br.readLine().trim();
|
||||
|
||||
System.out.println(String.format("Carpeta de proyecto [%s]:", destino));
|
||||
destino = br.readLine() == null || br.readLine().trim().equals("") ? destino : br.readLine().trim();
|
||||
destino = destino.endsWith("/") ? destino : destino.concat("/"); /** para linux*/
|
||||
|
||||
generarCodigo(packOrigen, packDestino, destino, false);
|
||||
System.err.println("COPIAR EL CODIGO A CONTINUACION Y ADJUNTAR A ENTIDADENUM");
|
||||
System.out.println("" + generarEntidadEnum(packOrigen));
|
||||
} catch (IOException ex) {
|
||||
ex.printStackTrace();
|
||||
}
|
||||
}
|
||||
|
||||
public static String generarEntidadEnum(String packOrigen){
|
||||
Reflections reflections = new Reflections(packOrigen);
|
||||
Set<Class<? extends Serializable>> clases = reflections.getSubTypesOf(Serializable.class);
|
||||
System.out.println("ENTIDAD ENUM");
|
||||
String salto = System.getProperty("line.separator");
|
||||
StringBuilder buil = new StringBuilder();
|
||||
String entidades = "*";
|
||||
for (Class t : clases) {
|
||||
//if(t.getSimpleName().equals("Tgenemenusubleveltran")
|
||||
//|| t.getSimpleName().equals("Tgenemenusublevel")
|
||||
/**|| t.getSimpleName().equals("Tarmtipoarmaexplosivo")
|
||||
|| t.getSimpleName().equals("Tarmtramite")
|
||||
|| t.getSimpleName().equals("Tarmunidadtipo")
|
||||
|| t.getSimpleName().equals("TarmunidadtipoPK")
|
||||
|| t.getSimpleName().equals("Tcustpersondetail")
|
||||
|| t.getSimpleName().equals("TcustpersondetailPK")
|
||||
|| t.getSimpleName().equals("TcustpersondetailPK")
|
||||
|| t.getSimpleName().equals("Tgeneactivity")
|
||||
|| t.getSimpleName().equals("Tgeneparroquia")
|
||||
|| t.getSimpleName().equals("TgeneparroquiaPK")*/
|
||||
|
||||
//){
|
||||
buil.append(TAB).append(t.getSimpleName()).append("(").append(t.getSimpleName()).append(".class, ").
|
||||
append(t.getSimpleName()).append("DTO.class, ").append(t.getSimpleName()).append("Mapper.class),").append(salto);
|
||||
// }
|
||||
}
|
||||
return buil.toString();
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @param packOrigen
|
||||
* @param packDestino
|
||||
* @param urlDestino
|
||||
* @param override
|
||||
*/
|
||||
public static void generarCodigo(String packOrigen, String packDestino, String urlDestino, boolean override) {
|
||||
|
||||
Reflections reflections = new Reflections(packOrigen);
|
||||
Set<Class<? extends Serializable>> clases = reflections.getSubTypesOf(Serializable.class);
|
||||
System.out.println("BUSCAR CLASES ");
|
||||
for (Class t : clases) {
|
||||
//if(t.getSimpleName().equals("Tgenemenusubleveltran")
|
||||
|
||||
//|| t.getSimpleName().equals("Tgenemenusublevel")
|
||||
/**
|
||||
|| t.getSimpleName().equals("Tarmcentrocontrol")
|
||||
|| t.getSimpleName().equals("Tarmregistroarmas")
|
||||
|| t.getSimpleName().equals("Tarmtipoarmaexplosivo")
|
||||
|| t.getSimpleName().equals("Tarmtramite")
|
||||
|| t.getSimpleName().equals("Tarmunidadtipo")
|
||||
|| t.getSimpleName().equals("TarmunidadtipoPK")
|
||||
|| t.getSimpleName().equals("Tcustpersondetail")
|
||||
|| t.getSimpleName().equals("TcustpersondetailPK")
|
||||
|| t.getSimpleName().equals("TcustpersondetailPK")
|
||||
|| t.getSimpleName().equals("Tgeneactivity")
|
||||
|| t.getSimpleName().equals("Tgeneparroquia")
|
||||
|| t.getSimpleName().equals("TgeneparroquiaPK")
|
||||
*/
|
||||
//){
|
||||
String data = crearMapper(t, packOrigen,packDestino);
|
||||
String name = urlDestino.replace("/dto/", "/dominio/mapper/") + t.getSimpleName().replace(".java", "") + "Mapper.java";
|
||||
escribirData(name, data, false);
|
||||
|
||||
data = crearDTO(t,packOrigen, packDestino);
|
||||
name = urlDestino + t.getSimpleName().replace(".java", "") + "DTO.java";
|
||||
escribirData(name, data, false);
|
||||
//}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @param clase
|
||||
* @param paquete
|
||||
* @return
|
||||
*/
|
||||
public static String crearMapper(Class clase, String packOrigen,String paquete) {
|
||||
StringBuilder build = new StringBuilder();
|
||||
String nombre = clase.getSimpleName().concat("Mapper");
|
||||
String salto = System.getProperty("line.separator");
|
||||
build.append("package ").append(paquete).append("dominio.mapper").append(";").append(salto).append(salto);
|
||||
build.append("import ").append(clase.getName()).append(";").append(salto);
|
||||
build.append("import ").append(clase.getName().replace(".model", ".dto")).append("DTO;").append(salto);
|
||||
build.append("import org.mapstruct.Mapper;").append(salto);
|
||||
build.append("import org.mapstruct.factory.Mappers;").append(salto);
|
||||
build.append(salto).append("@Mapper").append(salto);
|
||||
build.append("public interface ").append(nombre).append(" {").append(salto).append(salto);
|
||||
|
||||
build.append(TAB).append(nombre).append(" INSTANCE = Mappers.getMapper(").append(nombre).append(".class);").append(salto).append(salto);
|
||||
|
||||
//build.append(obtenerMapping("source,target", packOrigen, clase));
|
||||
build.append(TAB).append(clase.getSimpleName()).append(" getEntidad(").append(clase.getSimpleName()).
|
||||
append("DTO ").append(StringUtils.uncapitalize(clase.getSimpleName())).append(");").append(salto).append(salto);
|
||||
|
||||
//build.append(obtenerMapping("target,source", packOrigen, clase));
|
||||
build.append(TAB).append(clase.getSimpleName()).append("DTO getDto(").append(clase.getSimpleName()).append(" ").
|
||||
append(StringUtils.uncapitalize(clase.getSimpleName())).append(");").append(salto).append(salto);
|
||||
|
||||
build.append("}");
|
||||
return build.toString();
|
||||
}
|
||||
|
||||
/**
|
||||
* Obtener codigo de @mapping
|
||||
* @param sourceTarget source,target o al revez
|
||||
* @param packOrigen com.qsoft.model
|
||||
* @param clase clase
|
||||
* @return
|
||||
*/
|
||||
public static String obtenerMapping(String sourceTarget,String packOrigen,Class clase){
|
||||
String []splitSource = sourceTarget.split(",");
|
||||
String formato = "@Mapping(%s = \"%s\", %s = \"%s\")";
|
||||
String salto = System.getProperty("line.separator");
|
||||
StringBuilder mappings = new StringBuilder("");
|
||||
for (Field f : clase.getDeclaredFields()) {
|
||||
String tipo = f.getType().getName();
|
||||
if (f.getName().endsWith("PK") && tipo.equals(packOrigen)) {
|
||||
mappings.append(TAB).append(String.format(formato, splitSource[0],f.getName(),splitSource[1],f.getName())).
|
||||
append(salto);
|
||||
}
|
||||
}
|
||||
return mappings.toString();
|
||||
}
|
||||
/**
|
||||
*
|
||||
* @param clase
|
||||
* @param paquete
|
||||
* @return
|
||||
*/
|
||||
public static String crearDTO(Class clase, String packOrigen,String paquete) {
|
||||
StringBuilder build = new StringBuilder();
|
||||
String salto = System.getProperty("line.separator");
|
||||
build.append("package ").append(paquete).append("dto").append(";").append(salto);
|
||||
build.append(salto).append("import java.io.Serializable;").append(salto);
|
||||
build.append(salto).append("public class ").append(clase.getSimpleName()).append("DTO implements Serializable {").append(salto);
|
||||
|
||||
Long serial = new RandomDataGenerator().nextLong(1000000000L, 999999999999999L);
|
||||
build.append(salto).append(TAB).append("private static final long serialVersionUID = ").
|
||||
append(serial).append("L;").append(salto).append(salto);
|
||||
Map<String, String> variables = new LinkedHashMap<>();
|
||||
String []tipoSplit;
|
||||
for (Field f : clase.getDeclaredFields()) {
|
||||
String tipo = f.getType().getName();
|
||||
if (!f.getName().equalsIgnoreCase("serialVersionUID") && !tipo.equals("java.util.Collection")) {
|
||||
|
||||
if (tipo.contains("java.lang") || tipo.contains("java.util")) {
|
||||
tipo = tipo.replace("java.lang.", "");
|
||||
}else if(f.getName().endsWith("PK") || tipo.equals(packOrigen)){
|
||||
tipoSplit = tipo.split("\\.");
|
||||
tipo = tipoSplit[tipoSplit.length-1];
|
||||
}
|
||||
else {
|
||||
|
||||
tipo = "Integer";
|
||||
}
|
||||
build.append("/**").append(salto);
|
||||
build.append("* f.getName()" ).append(salto);
|
||||
build.append("*/").append(salto);
|
||||
build.append(TAB).append("private ").append(tipo).append(" ").append(f.getName()).append(";").append(salto).append(salto);
|
||||
variables.put(f.getName(), tipo);
|
||||
}
|
||||
}
|
||||
for (Map.Entry<String, String> entry : variables.entrySet()) {
|
||||
String tipo = entry.getValue();
|
||||
String val = entry.getKey();
|
||||
String valC = StringUtils.capitalize(val);
|
||||
|
||||
build.append("/**").append(salto);
|
||||
build.append("* Metodo get para " ).append(valC).append(salto);
|
||||
build.append("*/").append(salto);
|
||||
build.append(String.format(GETTER, tipo, valC, val)).append(salto).append(salto);
|
||||
|
||||
build.append("/**").append(salto);
|
||||
build.append("* Metodo set para " ).append(valC).append(salto);
|
||||
build.append("*/").append(salto);
|
||||
build.append(String.format(SETTER, valC, tipo, val, val, val)).append(salto).append(salto);
|
||||
}
|
||||
build.append("}");
|
||||
return build.toString();
|
||||
}
|
||||
|
||||
private static void escribirData(String file, String data, boolean override) {
|
||||
File salida = new File(file);
|
||||
if (!override && salida.exists()) {
|
||||
return;
|
||||
}
|
||||
try ( FileOutputStream os = new FileOutputStream(salida)) {
|
||||
os.write(data.getBytes());
|
||||
} catch (IOException ex) {
|
||||
ex.printStackTrace(System.out);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
Binary file not shown.
@ -0,0 +1,5 @@
|
||||
#Generated by Maven
|
||||
#Mon Jul 31 13:08:01 ECT 2023
|
||||
groupId=com.qsoft.sincoarv2.rs.domain
|
||||
artifactId=sincoarv2-rs-domain
|
||||
version=1.0-SNAPSHOT
|
@ -0,0 +1,2 @@
|
||||
.netbeans_automatic_build
|
||||
com/qsoft/sincoarv2/rs/domain/Sincoarv2RsDomain.class
|
@ -0,0 +1 @@
|
||||
/home/developer2/NetBeansProjects/sincoarv2-rs-domain/src/main/java/com/qsoft/sincoarv2/rs/domain/Sincoarv2RsDomain.java
|
@ -0,0 +1 @@
|
||||
GeneradorCodigo.class
|
@ -0,0 +1 @@
|
||||
/home/developer2/NetBeansProjects/sincoarv2-rs-domain/src/test/java/GeneradorCodigo.java
|
Binary file not shown.
Binary file not shown.
Loading…
Reference in new issue