Add all enum type converter

pull/137/head
johnniang 2019-03-27 21:53:56 +08:00
parent 3714e8e5bf
commit 4f11942c9c
9 changed files with 159 additions and 3 deletions

View File

@ -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<AttachmentOutputDTO,
private String suffix;
private String dimension;
private Integer width;
private String size;
private Integer height;
private Integer type;
private Long size;
private AttachmentType type;
}

View File

@ -0,0 +1,36 @@
package cc.ryanc.halo.model.enums.converter;
import cc.ryanc.halo.model.enums.ValueEnum;
import lombok.extern.slf4j.Slf4j;
import javax.persistence.AttributeConverter;
/**
* Abstract converter.
*
* @param <E> enum generic
* @param <V> value generic
* @author johnniang
* @date 12/6/18
*/
@Slf4j
public abstract class AbstractConverter<E extends ValueEnum<V>, V> implements AttributeConverter<E, V> {
private final Class<E> clazz;
protected AbstractConverter(Class<E> 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);
}
}

View File

@ -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<AttachmentType, Integer> {
public AttachmentTypeConverter() {
super(AttachmentType.class);
}
}

View File

@ -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<CommentStatus, Integer> {
public CommentStatusConverter() {
super(CommentStatus.class);
}
}

View File

@ -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<LogType, Integer> {
public LogTypeConverter() {
super(LogType.class);
}
}

View File

@ -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<PostCreateFrom, Integer> {
public PostCreateFromConverter() {
super(PostCreateFrom.class);
}
}

View File

@ -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<PostStatus, Integer> {
public PostStatusConverter() {
super(PostStatus.class);
}
}

View File

@ -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<PostType, Integer> {
public PostTypeConverter() {
super(PostType.class);
}
}

View File

@ -79,6 +79,8 @@ public class AttachmentServiceImpl extends AbstractCrudService<Attachment, Integ
attachment.setSize(uploadResult.getSize());
attachment.setType(attachmentType);
log.debug("Creating attachment: [{}]", attachment);
// Create and return
return create(attachment);
}