Refactor AbstractConverter constructor (#1110)

pull/1114/head
John Niang 2020-10-14 10:42:33 -05:00 committed by GitHub
parent 036644bf10
commit 2ca92b5391
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
7 changed files with 9 additions and 21 deletions

View File

@ -1,8 +1,11 @@
package run.halo.app.model.enums.converter; package run.halo.app.model.enums.converter;
import run.halo.app.model.enums.ValueEnum; import run.halo.app.model.enums.ValueEnum;
import run.halo.app.utils.ReflectionUtils;
import javax.persistence.AttributeConverter; import javax.persistence.AttributeConverter;
import java.lang.reflect.Type;
import java.util.Objects;
/** /**
* Abstract converter. * Abstract converter.
@ -16,8 +19,12 @@ public abstract class AbstractConverter<E extends ValueEnum<V>, V> implements At
private final Class<E> clazz; private final Class<E> clazz;
protected AbstractConverter(Class<E> clazz) { @SuppressWarnings("unchecked")
this.clazz = clazz; protected AbstractConverter() {
Type enumType = Objects.requireNonNull(
ReflectionUtils.getParameterizedTypeBySuperClass(AbstractConverter.class, this.getClass())
).getActualTypeArguments()[0];
this.clazz = (Class<E>) enumType;
} }
@Override @Override

View File

@ -13,7 +13,4 @@ import javax.persistence.Converter;
@Converter(autoApply = true) @Converter(autoApply = true)
public class AttachmentTypeConverter extends AbstractConverter<AttachmentType, Integer> { public class AttachmentTypeConverter extends AbstractConverter<AttachmentType, Integer> {
public AttachmentTypeConverter() {
super(AttachmentType.class);
}
} }

View File

@ -13,8 +13,4 @@ import javax.persistence.Converter;
@Converter(autoApply = true) @Converter(autoApply = true)
public class CommentStatusConverter extends AbstractConverter<CommentStatus, Integer> { public class CommentStatusConverter extends AbstractConverter<CommentStatus, Integer> {
public CommentStatusConverter() {
super(CommentStatus.class);
}
} }

View File

@ -13,7 +13,4 @@ import javax.persistence.Converter;
@Converter(autoApply = true) @Converter(autoApply = true)
public class DataTypeConverter extends AbstractConverter<DataType, Integer> { public class DataTypeConverter extends AbstractConverter<DataType, Integer> {
public DataTypeConverter() {
super(DataType.class);
}
} }

View File

@ -13,7 +13,4 @@ import javax.persistence.Converter;
@Converter(autoApply = true) @Converter(autoApply = true)
public class LogTypeConverter extends AbstractConverter<LogType, Integer> { public class LogTypeConverter extends AbstractConverter<LogType, Integer> {
public LogTypeConverter() {
super(LogType.class);
}
} }

View File

@ -13,7 +13,4 @@ import javax.persistence.Converter;
@Converter(autoApply = true) @Converter(autoApply = true)
public class PostStatusConverter extends AbstractConverter<PostStatus, Integer> { public class PostStatusConverter extends AbstractConverter<PostStatus, Integer> {
public PostStatusConverter() {
super(PostStatus.class);
}
} }

View File

@ -14,7 +14,4 @@ import javax.persistence.Converter;
@Deprecated @Deprecated
public class PostTypeConverter extends AbstractConverter<PostType, Integer> { public class PostTypeConverter extends AbstractConverter<PostType, Integer> {
public PostTypeConverter() {
super(PostType.class);
}
} }