Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
package com.froyo;

import com.froyo.model.dto.TripDTO;
import lombok.extern.java.Log;
import java.util.logging.Logger;

public class AppCustomValidation {

Expand Down
Original file line number Diff line number Diff line change
@@ -1,17 +1,28 @@
package com.froyo.model.dto;

import com.froyo.customvalidation.constraints.AirlineConstraint;
import lombok.AllArgsConstructor;
import lombok.Data;

import jakarta.validation.constraints.NotNull;

@AllArgsConstructor
@Data
public class TripDTO {

@NotNull
@AirlineConstraint
private String airline;

public TripDTO(String airline) {
this.airline = airline;
}

public String getAirline() {
return airline;
}

public void setAirline(String airline) {
this.airline = airline;
}

@Override
public String toString() {
return "TripDTO(airline=" + this.airline + ")";
}
}
Original file line number Diff line number Diff line change
@@ -1,14 +1,8 @@
package designpatterns.behavioral.command;

import lombok.AllArgsConstructor;
import lombok.Getter;

import java.math.BigDecimal;

@Getter
@AllArgsConstructor
public class SaldoFamiliar {

private BigDecimal saldo;

public void ingreso(BigDecimal monto) {
Expand All @@ -21,4 +15,13 @@ public void gasto(BigDecimal monto) {
System.out.println("gasto: " + this.saldo);
}

@java.lang.SuppressWarnings("all")
public BigDecimal getSaldo() {
return this.saldo;
}

@java.lang.SuppressWarnings("all")
public SaldoFamiliar(final BigDecimal saldo) {
this.saldo = saldo;
}
}
Original file line number Diff line number Diff line change
@@ -1,17 +1,18 @@
package designpatterns.behavioral.command;

import lombok.AllArgsConstructor;

import java.math.BigDecimal;

@AllArgsConstructor
public class SaldoGastoServiceImpl implements SaldoFamiliarService {

private SaldoFamiliar saldoFamiliar;
private BigDecimal monto;

public void execute() {
this.saldoFamiliar.gasto(this.monto);
}

@java.lang.SuppressWarnings("all")
public SaldoGastoServiceImpl(final SaldoFamiliar saldoFamiliar, final BigDecimal monto) {
this.saldoFamiliar = saldoFamiliar;
this.monto = monto;
}
}
Original file line number Diff line number Diff line change
@@ -1,17 +1,18 @@
package designpatterns.behavioral.command;

import lombok.AllArgsConstructor;

import java.math.BigDecimal;

@AllArgsConstructor
public class SaldoIngresoServiceImpl implements SaldoFamiliarService {

private SaldoFamiliar saldoFamiliar;
private BigDecimal monto;

public void execute() {
this.saldoFamiliar.ingreso(this.monto);
}

@java.lang.SuppressWarnings("all")
public SaldoIngresoServiceImpl(final SaldoFamiliar saldoFamiliar, final BigDecimal monto) {
this.saldoFamiliar = saldoFamiliar;
this.monto = monto;
}
}
Original file line number Diff line number Diff line change
@@ -1,13 +1,18 @@
package designpatterns.behavioral.memento;

import lombok.AllArgsConstructor;
import lombok.ToString;

@ToString
@AllArgsConstructor
public class Juego {

private String nombre;
private int checkpoint;

@java.lang.Override
@java.lang.SuppressWarnings("all")
public java.lang.String toString() {
return "Juego(nombre=" + this.nombre + ", checkpoint=" + this.checkpoint + ")";
}

@java.lang.SuppressWarnings("all")
public Juego(final String nombre, final int checkpoint) {
this.nombre = nombre;
this.checkpoint = checkpoint;
}
}
Original file line number Diff line number Diff line change
@@ -1,12 +1,15 @@
package designpatterns.behavioral.memento;

import lombok.AllArgsConstructor;
import lombok.Getter;

@Getter
@AllArgsConstructor
public class Memento {

private Juego estado;

@java.lang.SuppressWarnings("all")
public Juego getEstado() {
return this.estado;
}

@java.lang.SuppressWarnings("all")
public Memento(final Juego estado) {
this.estado = estado;
}
}
Original file line number Diff line number Diff line change
@@ -1,10 +1,6 @@
package designpatterns.behavioral.memento;

import lombok.Data;

@Data
public class Originator {

private Juego estado;

public Memento guardar() {
Expand All @@ -15,4 +11,51 @@ public void restaurar(Memento m) {
this.estado = m.getEstado();
}

@java.lang.SuppressWarnings("all")
public Originator() {
}

@java.lang.SuppressWarnings("all")
public Juego getEstado() {
return this.estado;
}

@java.lang.SuppressWarnings("all")
public void setEstado(final Juego estado) {
this.estado = estado;
}

@java.lang.Override
@java.lang.SuppressWarnings("all")
public boolean equals(final java.lang.Object o) {
if (o == this) return true;
if (!(o instanceof Originator)) return false;
final Originator other = (Originator) o;
if (!other.canEqual((java.lang.Object) this)) return false;
final java.lang.Object this$estado = this.getEstado();
final java.lang.Object other$estado = other.getEstado();
if (this$estado == null ? other$estado != null : !this$estado.equals(other$estado)) return false;
return true;
}

@java.lang.SuppressWarnings("all")
protected boolean canEqual(final java.lang.Object other) {
return other instanceof Originator;
}

@java.lang.Override
@java.lang.SuppressWarnings("all")
public int hashCode() {
final int PRIME = 59;
int result = 1;
final java.lang.Object $estado = this.getEstado();
result = result * PRIME + ($estado == null ? 43 : $estado.hashCode());
return result;
}

@java.lang.Override
@java.lang.SuppressWarnings("all")
public java.lang.String toString() {
return "Originator(estado=" + this.getEstado() + ")";
}
}
Original file line number Diff line number Diff line change
@@ -1,38 +1,32 @@
package designpatterns.behavioral.strategy;

import lombok.NonNull;
import org.apache.commons.lang3.ClassUtils;
import org.apache.commons.lang3.StringUtils;
import org.apache.commons.lang3.reflect.MethodUtils;
import org.apache.commons.text.WordUtils;


public class AppDesignPatternStrategy1 {

public static void main(String[] args) throws Exception {

ContextVendedorNivel contextVendedorNivel = new ContextVendedorNivel(new VendedorNivel1());
System.out.println(contextVendedorNivel.profitFromSale(50));

String tipoDeVendedorFromDatabase = "VENDEDOR_NIVEL_1";
String tipoDeVendedorParsed = parseTipoDeVendedorLikeNameClass(tipoDeVendedorFromDatabase);
final Class<?> clazz = ClassUtils.getClass("designpatterns.behavioral.strategy." + tipoDeVendedorParsed);
// Object profitFromSale = MethodUtils.invokeStaticMethod(clazz, "profitFromSale", 50);

Object vendedorNivelTest = clazz.getDeclaredConstructor().newInstance();
Object profitFromSaleInvoke = MethodUtils.invokeMethod(vendedorNivelTest, "profitFromSale", 50);
System.out.println(profitFromSaleInvoke);

//like ...this way
ContextVendedorNivel contextVendedorNivelTest2 = new ContextVendedorNivel((StrategyVendedor) vendedorNivelTest);
System.out.println(contextVendedorNivelTest2.profitFromSale(50));

}

private static String parseTipoDeVendedorLikeNameClass(@NonNull String tipoVendedor) {
private static String parseTipoDeVendedorLikeNameClass(String tipoVendedor) {
if (tipoVendedor == null) {
throw new java.lang.NullPointerException("tipoVendedor is marked non-null but is null");
}
return StringUtils.replaceEach( //
WordUtils.capitalizeFully(tipoVendedor, new char[]{'_'}), //
new String[]{"_"}, new String[]{StringUtils.EMPTY});
WordUtils.capitalizeFully(tipoVendedor, new char[] {'_'}), //
new String[] {"_"}, new String[] {StringUtils.EMPTY});
}

}
Original file line number Diff line number Diff line change
@@ -1,16 +1,16 @@
package designpatterns.behavioral.strategy;

import lombok.AllArgsConstructor;

import java.math.BigDecimal;

@AllArgsConstructor
public class ContextVendedorNivel {

private StrategyVendedor strategyVendedor;

public BigDecimal profitFromSale(int cantidadDeProductoVendido){
public BigDecimal profitFromSale(int cantidadDeProductoVendido) {
return strategyVendedor.profitFromSale(cantidadDeProductoVendido);
}

@java.lang.SuppressWarnings("all")
public ContextVendedorNivel(final StrategyVendedor strategyVendedor) {
this.strategyVendedor = strategyVendedor;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -8,41 +8,34 @@
import designpatterns.creational.prototype.Employee;
import designpatterns.creational.prototype.EmployeeAddress;
import designpatterns.creational.singleton.DatabaseConfig;
import lombok.extern.java.Log;

import java.io.IOException;

import static designpatterns.creational.abstractfactory.ConnectionType.*;

/**
* {@link https://www.journaldev.com/1827/java-design-patterns-example-tutorial}
*/
@Log
public class AppCreational {
@java.lang.SuppressWarnings("all")
private static final java.util.logging.Logger log = java.util.logging.Logger.getLogger(AppCreational.class.getName());

public static void main(String[] args) throws IOException {

//Singleton Pattern ----------------------------------
DatabaseConfig databaseConfigSingleton = DatabaseConfig.getInstance();
log.info(databaseConfigSingleton.toString());

//Factory Method ----------------------------------
ViewRequestFactory factory = new ViewRequestFactory();
ViewRequest viewRequest = factory.getViewRequest("two");
viewRequest.executeProcess();

//Factory Pattern ----------------------------------
DBConnection dbConnectionMysql = (DBConnection) FactoryDBConnection.getInstance(MYSQL);
log.info(dbConnectionMysql.connect());
DBConnection dbConnectionPostgresSQL = (DBConnection) FactoryDBConnection.getInstance(POSTGRESQL);
log.info(dbConnectionPostgresSQL.connect());

//Abstract Factory Pattern ----------------------------------
DBConfig dbConfigMySQL = FactoryDBConnection.getInstance(MYSQL);
log.info(dbConfigMySQL.connect());
DBConfig dbConfigRest = FactoryDBConnection.getInstance(REST);
log.info(dbConfigRest.connect());

//Prototype Pattern ----------------------------------
EmployeeAddress empAddress = new EmployeeAddress("22", "Avenue Street", "Dallas");
Employee emp = new Employee("David", 32, empAddress);
Expand All @@ -55,8 +48,5 @@ public static void main(String[] args) throws IOException {
System.out.println(emp == empClone);
log.info("Original Employee Object: " + emp);
log.info("Cloned Employee Object: " + empClone);


}

}
Original file line number Diff line number Diff line change
@@ -1,10 +1,6 @@
package designpatterns.creational.abstractfactory;

import lombok.ToString;

@ToString
public abstract class DBConnection extends DBConfig {

private String url;
private String port;
private String user;
Expand All @@ -23,4 +19,9 @@ public String connect() {
return ":: DBConnection - connected ::";
}

@java.lang.Override
@java.lang.SuppressWarnings("all")
public java.lang.String toString() {
return "DBConnection(url=" + this.url + ", port=" + this.port + ", user=" + this.user + ", pass=" + this.pass + ")";
}
}
Original file line number Diff line number Diff line change
@@ -1,16 +1,21 @@
package designpatterns.creational.abstractfactory;

import lombok.experimental.UtilityClass;

@UtilityClass
public class FactoryDBConnection {

public final class FactoryDBConnection {
public static DBConfig getInstance(ConnectionType connectionType) {
switch (connectionType) {
case MYSQL: return new DBConnectionMySQL();
case POSTGRESQL: return new DBConnectionPostgreSQL();
case REST: return new DBRest();
default: return null;
case MYSQL:
return new DBConnectionMySQL();
case POSTGRESQL:
return new DBConnectionPostgreSQL();
case REST:
return new DBRest();
default:
return null;
}
}

@java.lang.SuppressWarnings("all")
private FactoryDBConnection() {
throw new java.lang.UnsupportedOperationException("This is a utility class and cannot be instantiated");
}
}
Loading