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