diff --git a/dap-tool-core/src/main/java/io/shinhanlife/glow/GlowTrgmField.java b/dap-tool-core/src/main/java/io/shinhanlife/glow/GlowTrgmField.java index aef7413c..6e44dfae 100644 --- a/dap-tool-core/src/main/java/io/shinhanlife/glow/GlowTrgmField.java +++ b/dap-tool-core/src/main/java/io/shinhanlife/glow/GlowTrgmField.java @@ -17,6 +17,7 @@ package io.shinhanlife.glow; */ import java.lang.annotation.*; +@Deprecated(forRemoval = false) @Target(ElementType.FIELD) @Retention(RetentionPolicy.RUNTIME) @Documented diff --git a/dap-tool-core/src/main/java/io/shinhanlife/glow/PageInfo.java b/dap-tool-core/src/main/java/io/shinhanlife/glow/PageInfo.java index a769db1f..985d76a4 100644 --- a/dap-tool-core/src/main/java/io/shinhanlife/glow/PageInfo.java +++ b/dap-tool-core/src/main/java/io/shinhanlife/glow/PageInfo.java @@ -2,6 +2,7 @@ package io.shinhanlife.glow; import com.fasterxml.jackson.annotation.JsonIgnore; import com.fasterxml.jackson.annotation.JsonIgnoreProperties; +import io.shinhanlife.glow.communication.annotation.GlowTrgmField; import lombok.EqualsAndHashCode; import lombok.Getter; import lombok.Setter; diff --git a/dap-tool-core/src/main/java/io/shinhanlife/glow/communication/annotation/GlowTrgmField.java b/dap-tool-core/src/main/java/io/shinhanlife/glow/communication/annotation/GlowTrgmField.java new file mode 100644 index 00000000..9463acf2 --- /dev/null +++ b/dap-tool-core/src/main/java/io/shinhanlife/glow/communication/annotation/GlowTrgmField.java @@ -0,0 +1,26 @@ +package io.shinhanlife.glow.communication.annotation; + +import java.lang.annotation.Documented; +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; + +/** Declares fixed-width Glow transaction-message metadata for a DTO field. */ +@Target({ElementType.LOCAL_VARIABLE, ElementType.FIELD}) +@Retention(RetentionPolicy.RUNTIME) +@Documented +public @interface GlowTrgmField { + + int order(); + + int length() default 0; + + int decimal() default 0; + + String description() default ""; + + String target() default ""; + + String type() default ""; +} \ No newline at end of file diff --git a/dap-tool-core/src/main/java/io/shinhanlife/glow/util/GlowTrgmParser.java b/dap-tool-core/src/main/java/io/shinhanlife/glow/util/GlowTrgmParser.java index 92692d47..1b89ede9 100644 --- a/dap-tool-core/src/main/java/io/shinhanlife/glow/util/GlowTrgmParser.java +++ b/dap-tool-core/src/main/java/io/shinhanlife/glow/util/GlowTrgmParser.java @@ -1,6 +1,6 @@ package io.shinhanlife.glow.util; -import io.shinhanlife.glow.GlowTrgmField; +import io.shinhanlife.glow.communication.annotation.GlowTrgmField; import lombok.extern.slf4j.Slf4j; import java.lang.reflect.Field; import java.util.ArrayList; diff --git a/dap-tool-core/src/test/java/io/shinhanlife/glow/communication/annotation/GlowTrgmFieldContractTest.java b/dap-tool-core/src/test/java/io/shinhanlife/glow/communication/annotation/GlowTrgmFieldContractTest.java new file mode 100644 index 00000000..3740a24a --- /dev/null +++ b/dap-tool-core/src/test/java/io/shinhanlife/glow/communication/annotation/GlowTrgmFieldContractTest.java @@ -0,0 +1,27 @@ +package io.shinhanlife.glow.communication.annotation; + +import static org.junit.jupiter.api.Assertions.assertEquals; + +import java.lang.reflect.Field; +import org.junit.jupiter.api.Test; + +class GlowTrgmFieldContractTest { + + private static class StandardTrgmDto { + @GlowTrgmField(order = 1, length = 8, decimal = 2, description = "금액", target = "body", type = "gs") + private String amount; + } + + @Test + void exposesTheStandardGlowTrgmFieldMetadata() throws Exception { + Field field = StandardTrgmDto.class.getDeclaredField("amount"); + GlowTrgmField metadata = field.getAnnotation(GlowTrgmField.class); + + assertEquals(1, metadata.order()); + assertEquals(8, metadata.length()); + assertEquals(2, metadata.decimal()); + assertEquals("금액", metadata.description()); + assertEquals("body", metadata.target()); + assertEquals("gs", metadata.type()); + } +} diff --git a/dap-tool-oth/src/main/java/io/shinhanlife/dap/mcc/biz/cmm/dto/SampleStringResponse.java b/dap-tool-oth/src/main/java/io/shinhanlife/dap/mcc/biz/cmm/dto/SampleStringResponse.java index 2884147f..ab1810d7 100644 --- a/dap-tool-oth/src/main/java/io/shinhanlife/dap/mcc/biz/cmm/dto/SampleStringResponse.java +++ b/dap-tool-oth/src/main/java/io/shinhanlife/dap/mcc/biz/cmm/dto/SampleStringResponse.java @@ -1,7 +1,7 @@ package io.shinhanlife.dap.mcc.biz.cmm.dto; import com.fasterxml.jackson.annotation.JsonInclude; -import io.shinhanlife.glow.GlowTrgmField; +import io.shinhanlife.glow.communication.annotation.GlowTrgmField; import lombok.Data; /**