package io.gitlab.jfronny.muscript.data.dynamic.additional; import io.gitlab.jfronny.muscript.compiler.ExprWriter; import io.gitlab.jfronny.muscript.data.dynamic.*; import java.io.IOException; import java.time.LocalDate; import java.util.Map; import java.util.function.Supplier; public record DDate(Supplier date) implements DObject { @Override public Map> getValue() { return Map.of( "year", DFinal.of(date.get().getYear()), "month", DFinal.of(date.get().getMonthValue()), "day", DFinal.of(date.get().getDayOfMonth()) ); } @Override public DString asString() { return DFinal.of(toString()); } @Override public DNumber asNumber() { return DFinal.of(date.get().toEpochDay()); } @Override public void serialize(ExprWriter writer) throws IOException { writer.append("date(") .append(String.valueOf(date.get().getYear())).append(", ") .append(String.valueOf(date.get().getMonthValue())).append(", ") .append(String.valueOf(date.get().getDayOfMonth())) .append(")"); } @Override public String toString() { return date.get().toString(); } }