org.springframework.data.history.SimpleRevisionEntityInformation Maven / Gradle / Ivy
The newest version!
package org.springframework.data.history;
import org.springframework.data.util.AnnotationDetectionFieldCallback;
import org.springframework.util.ClassUtils;
import org.springframework.util.ReflectionUtils;
import org.springframework.util.StringUtils;
public enum SimpleRevisionEntityInformation implements org.springframework.data.repository.history.support.RevisionEntityInformation {
INSTANCE;
private Class revisionEntityClass;
private boolean defaultRevisionEntity;
@Override
public Class getRevisionNumberType() {
return Integer.class;
}
@Override
public boolean isDefaultRevisionEntity() {
return defaultRevisionEntity;
}
@Override
public Class getRevisionEntityClass() {
return this.revisionEntityClass;
}
public Class createRevisionEntityClass(String revisionEntityClass, ClassLoader classLoader) {
if (StringUtils.hasText(revisionEntityClass)) {
this.defaultRevisionEntity = "org.hibernate.envers.DefaultRevisionEntity".equalsIgnoreCase(revisionEntityClass);
this.revisionEntityClass = ClassUtils.resolveClassName(revisionEntityClass, classLoader);
AnnotationDetectionFieldCallback fieldCallback = new AnnotationDetectionFieldCallback(org.hibernate.envers.RevisionNumber.class);
ReflectionUtils.doWithFields(this.revisionEntityClass, fieldCallback);
}
return this.revisionEntityClass;
}
}