From 4f11942c9cba282bad606e74b360c2cca1f6876b Mon Sep 17 00:00:00 2001 From: johnniang Date: Wed, 27 Mar 2019 21:53:56 +0800 Subject: [PATCH] Add all enum type converter --- .../halo/model/dto/AttachmentOutputDTO.java | 9 +++-- .../enums/converter/AbstractConverter.java | 36 +++++++++++++++++++ .../converter/AttachmentTypeConverter.java | 19 ++++++++++ .../converter/CommentStatusConverter.java | 20 +++++++++++ .../enums/converter/LogTypeConverter.java | 19 ++++++++++ .../converter/PostCreateFromConverter.java | 19 ++++++++++ .../enums/converter/PostStatusConverter.java | 19 ++++++++++ .../enums/converter/PostTypeConverter.java | 19 ++++++++++ .../service/impl/AttachmentServiceImpl.java | 2 ++ 9 files changed, 159 insertions(+), 3 deletions(-) create mode 100644 src/main/java/cc/ryanc/halo/model/enums/converter/AbstractConverter.java create mode 100644 src/main/java/cc/ryanc/halo/model/enums/converter/AttachmentTypeConverter.java create mode 100644 src/main/java/cc/ryanc/halo/model/enums/converter/CommentStatusConverter.java create mode 100644 src/main/java/cc/ryanc/halo/model/enums/converter/LogTypeConverter.java create mode 100644 src/main/java/cc/ryanc/halo/model/enums/converter/PostCreateFromConverter.java create mode 100644 src/main/java/cc/ryanc/halo/model/enums/converter/PostStatusConverter.java create mode 100644 src/main/java/cc/ryanc/halo/model/enums/converter/PostTypeConverter.java diff --git a/src/main/java/cc/ryanc/halo/model/dto/AttachmentOutputDTO.java b/src/main/java/cc/ryanc/halo/model/dto/AttachmentOutputDTO.java index 445783dd4..13656c3a7 100644 --- a/src/main/java/cc/ryanc/halo/model/dto/AttachmentOutputDTO.java +++ b/src/main/java/cc/ryanc/halo/model/dto/AttachmentOutputDTO.java @@ -2,6 +2,7 @@ package cc.ryanc.halo.model.dto; import cc.ryanc.halo.model.dto.base.OutputConverter; import cc.ryanc.halo.model.entity.Attachment; +import cc.ryanc.halo.model.enums.AttachmentType; import lombok.Data; /** @@ -27,9 +28,11 @@ public class AttachmentOutputDTO implements OutputConverter enum generic + * @param value generic + * @author johnniang + * @date 12/6/18 + */ +@Slf4j +public abstract class AbstractConverter, V> implements AttributeConverter { + + private final Class clazz; + + protected AbstractConverter(Class clazz) { + this.clazz = clazz; + } + + @Override + public V convertToDatabaseColumn(E attribute) { + log.debug("Convert to database column: [{}], class type: [{}]", attribute, clazz.getSimpleName()); + return attribute == null ? null : attribute.getValue(); + } + + @Override + public E convertToEntityAttribute(V dbData) { + log.debug("Convert to entity attribute: [{}], class type: [{}]", dbData, clazz.getSimpleName()); + return dbData == null ? null : ValueEnum.valueToEnum(clazz, dbData); + } +} diff --git a/src/main/java/cc/ryanc/halo/model/enums/converter/AttachmentTypeConverter.java b/src/main/java/cc/ryanc/halo/model/enums/converter/AttachmentTypeConverter.java new file mode 100644 index 000000000..db3e83c10 --- /dev/null +++ b/src/main/java/cc/ryanc/halo/model/enums/converter/AttachmentTypeConverter.java @@ -0,0 +1,19 @@ +package cc.ryanc.halo.model.enums.converter; + +import cc.ryanc.halo.model.enums.AttachmentType; + +import javax.persistence.Converter; + +/** + * Attachment type converter + * + * @author johnniang + * @date 3/27/19 + */ +@Converter(autoApply = true) +public class AttachmentTypeConverter extends AbstractConverter { + + public AttachmentTypeConverter() { + super(AttachmentType.class); + } +} diff --git a/src/main/java/cc/ryanc/halo/model/enums/converter/CommentStatusConverter.java b/src/main/java/cc/ryanc/halo/model/enums/converter/CommentStatusConverter.java new file mode 100644 index 000000000..54c841150 --- /dev/null +++ b/src/main/java/cc/ryanc/halo/model/enums/converter/CommentStatusConverter.java @@ -0,0 +1,20 @@ +package cc.ryanc.halo.model.enums.converter; + +import cc.ryanc.halo.model.enums.CommentStatus; + +import javax.persistence.Converter; + +/** + * Comment status converter. + * + * @author johnniang + * @date 3/27/19 + */ +@Converter(autoApply = true) +public class CommentStatusConverter extends AbstractConverter { + + public CommentStatusConverter() { + super(CommentStatus.class); + } + +} diff --git a/src/main/java/cc/ryanc/halo/model/enums/converter/LogTypeConverter.java b/src/main/java/cc/ryanc/halo/model/enums/converter/LogTypeConverter.java new file mode 100644 index 000000000..b57f1366d --- /dev/null +++ b/src/main/java/cc/ryanc/halo/model/enums/converter/LogTypeConverter.java @@ -0,0 +1,19 @@ +package cc.ryanc.halo.model.enums.converter; + +import cc.ryanc.halo.model.enums.LogType; + +import javax.persistence.Converter; + +/** + * Log type converter. + * + * @author johnniang + * @date 3/27/19 + */ +@Converter(autoApply = true) +public class LogTypeConverter extends AbstractConverter { + + public LogTypeConverter() { + super(LogType.class); + } +} diff --git a/src/main/java/cc/ryanc/halo/model/enums/converter/PostCreateFromConverter.java b/src/main/java/cc/ryanc/halo/model/enums/converter/PostCreateFromConverter.java new file mode 100644 index 000000000..22d9e21b5 --- /dev/null +++ b/src/main/java/cc/ryanc/halo/model/enums/converter/PostCreateFromConverter.java @@ -0,0 +1,19 @@ +package cc.ryanc.halo.model.enums.converter; + +import cc.ryanc.halo.model.enums.PostCreateFrom; + +import javax.persistence.Converter; + +/** + * Post create from converter. + * + * @author johnniang + * @date 3/27/19 + */ +@Converter(autoApply = true) +public class PostCreateFromConverter extends AbstractConverter { + + public PostCreateFromConverter() { + super(PostCreateFrom.class); + } +} diff --git a/src/main/java/cc/ryanc/halo/model/enums/converter/PostStatusConverter.java b/src/main/java/cc/ryanc/halo/model/enums/converter/PostStatusConverter.java new file mode 100644 index 000000000..3655a556f --- /dev/null +++ b/src/main/java/cc/ryanc/halo/model/enums/converter/PostStatusConverter.java @@ -0,0 +1,19 @@ +package cc.ryanc.halo.model.enums.converter; + +import cc.ryanc.halo.model.enums.PostStatus; + +import javax.persistence.Converter; + +/** + * PostStatus converter. + * + * @author johnniang + * @date 3/27/19 + */ +@Converter(autoApply = true) +public class PostStatusConverter extends AbstractConverter { + + public PostStatusConverter() { + super(PostStatus.class); + } +} diff --git a/src/main/java/cc/ryanc/halo/model/enums/converter/PostTypeConverter.java b/src/main/java/cc/ryanc/halo/model/enums/converter/PostTypeConverter.java new file mode 100644 index 000000000..406e32aec --- /dev/null +++ b/src/main/java/cc/ryanc/halo/model/enums/converter/PostTypeConverter.java @@ -0,0 +1,19 @@ +package cc.ryanc.halo.model.enums.converter; + +import cc.ryanc.halo.model.enums.PostType; + +import javax.persistence.Converter; + +/** + * PostType converter. + * + * @author johnniang + * @date 3/27/19 + */ +@Converter(autoApply = true) +public class PostTypeConverter extends AbstractConverter { + + public PostTypeConverter() { + super(PostType.class); + } +} diff --git a/src/main/java/cc/ryanc/halo/service/impl/AttachmentServiceImpl.java b/src/main/java/cc/ryanc/halo/service/impl/AttachmentServiceImpl.java index 0098e5bd5..901828ba7 100644 --- a/src/main/java/cc/ryanc/halo/service/impl/AttachmentServiceImpl.java +++ b/src/main/java/cc/ryanc/halo/service/impl/AttachmentServiceImpl.java @@ -79,6 +79,8 @@ public class AttachmentServiceImpl extends AbstractCrudService