All Downloads are FREE. Search and download functionalities are using the official Maven repository.

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;
  }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy