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,10 +77,7 @@ 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,8 +88,7 @@ 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);
} }
@ -145,5 +150,4 @@ public abstract class AbstractController<T> {
return of.getId(of.getIdType().getJavaType()); return of.getId(of.getIdType().getJavaType());
} }
} }