Sep 6th, 2023

Decimal format:

public class MoneyPoundsFormat {
    private final double calcCharge;
    private final DecimalFormat decimalFormat;

    public MoneyPoundsFormat(final double calcCharge, final String format) {
        this.calcCharge = calcCharge;
        this.decimalFormat = new DecimalFormat(format);
    }

    public String display() {
        return this.decimalFormat.format(this.calcCharge);
    }
}

Test:

public class TestMoneyPoundsFormat {
    MoneyPoundsFormat moneyPoundsFormat;

    @Before
    public void init() {
        moneyPoundsFormat = new MoneyPoundsFormat(10.00, "£0.00");
    }

    @Test
    public void testPoundsMoneyFormat() {
        assertEquals("£10.00", moneyPoundsFormat.display());
    }
}

BaseEmployer:

public class BaseEmployee {
    private final String name;

    public BaseEmployee(String name) {
        this.name = name;
    }
}

public class LevelOneEmployee extends BaseEmployee {
  private final String levelOneName;

  public LevelOneEmployee(String levelOneName, String name) {
    super(name);
    this.levelOneName = levelOneName;
  }
}

public class LevelTwoEmployee extends LevelOneEmployee {
  private final String levelTwoName;

  public LevelTwoEmployee(String levelTwoName, String levelOneName, String name) {
    super(levelOneName, name);
    this.levelTwoName = levelTwoName;
  }
}

Test:

public class EmployeeTest {
    @Test
    public void testEmployeeLevels() {
        List<BaseEmployee> employees = new ArrayList<>();

        BaseEmployee baseEmployee = new BaseEmployee("miles");
        LevelOneEmployee levelOneEmployee = new LevelOneEmployee("level1", "bob");
        LevelTwoEmployee levelTwoEmployee = new LevelTwoEmployee("level2", "level1", "bob");
        employees.add(baseEmployee);
        employees.add(levelOneEmployee);
        employees.add(levelTwoEmployee);

        assertEquals(BaseEmployee.class, employees.get(0).getClass());
        assertEquals(LevelOneEmployee.class, employees.get(1).getClass());
        assertEquals(LevelTwoEmployee.class, employees.get(2).getClass());
    }
}

May 4th, 2022:

Java 17 switch object:

    public String checkObject(Object obj) {
        return switch (obj) {
            case String h -> "String";
                default -> "It is an object";
            };
    }

May 1st, 2022:

Gallery github repo is using r2dbc.