made applyUpdateableChanges callable from parent class

This commit is contained in:
2019-01-25 17:17:06 +01:00
parent 5ab4d99dd3
commit 4daa43ad04

View File

@ -50,7 +50,7 @@ public abstract class AbstractController<T> {
protected EntityManager em;
@Inject
Account account;
protected Account account;
private final Class<T> entityClass;
@ -58,6 +58,15 @@ public abstract class AbstractController<T> {
this.entityClass = clazz;
}
public void applyUpdateableChanges(Updateable updateable, boolean onCreate) {
if (onCreate) {
updateable.setCreatedBy(account.getUsername());
updateable.setCreatedOn(new Date());
}
updateable.setLastUpdatedBy(account.getUsername());
updateable.setLastUpdatedOn(new Date());
}
public T attach(T entity) {
return em.merge(entity);
}
@ -68,11 +77,8 @@ public abstract class AbstractController<T> {
public void create(T entity) {
if (Updateable.class.isAssignableFrom(entity.getClass())) {
Updateable updateable = (Updateable) entity;
updateable.setCreatedBy(account.getUsername());
updateable.setCreatedOn(new Date());
updateable.setLastUpdatedBy(account.getUsername());
updateable.setLastUpdatedOn(new Date());
}
applyUpdateableChanges(updateable, true);
}
em.persist(entity);
}
@ -82,9 +88,8 @@ public abstract class AbstractController<T> {
public T update(T entity) {
if (Updateable.class.isAssignableFrom(entity.getClass())) {
Updateable updateable = (Updateable) entity;
updateable.setLastUpdatedBy(account.getUsername());
updateable.setLastUpdatedOn(new Date());
}
applyUpdateableChanges(updateable, false);
}
return em.merge(entity);
}
@ -144,6 +149,5 @@ public abstract class AbstractController<T> {
// of.getDeclaredId(entityClass).getJavaMember().
return of.getId(of.getIdType().getJavaType());
}
}