![JAR search and dependency download from the Maven repository](/logo.png)
net.fishear.data.audit.services.impl.AuditChangeServiceImpl Maven / Gradle / Ivy
The newest version!
package net.fishear.data.audit.services.impl;
import java.util.List;
import net.fishear.data.audit.entities.Audit;
import net.fishear.data.audit.entities.AuditChange;
import net.fishear.data.audit.services.AuditChangeService;
import net.fishear.data.generic.query.QueryConstraints;
import net.fishear.data.generic.query.QueryFactory;
import net.fishear.data.generic.query.restrictions.Restrictions;
import net.fishear.data.generic.services.AbstractService;
public class
AuditChangeServiceImpl
extends
AbstractService
implements
AuditChangeService
{
@Override
public List listForAudit(Audit audit) {
return list(QueryFactory.equals("audit", audit));
}
private AuditChange getLatest(List list) {
Long maxBuild = -1L;
AuditChange current = null;
for(AuditChange row : list) {
if(row.getAudit().getChangeNumber() > maxBuild) {
current = row;
maxBuild = row.getAudit().getChangeNumber();
}
}
return current;
}
@Override
public String getCurrentValue(Audit audit, String propertyName) {
QueryConstraints qc = QueryFactory.create();
qc.join("audit", Restrictions.equal("objectId", audit.getObjectId()));
qc.add(Restrictions.equal("propertyName", propertyName));
AuditChange current = getLatest(list(qc));
return current == null ? NA : current.getNewValue();
}
@Override
public String getPreviousValue(Audit audit, String propertyName) {
QueryConstraints qc = QueryFactory.create();
qc.join("audit", Restrictions.and(
Restrictions.equal("objectId", audit.getObjectId()),
Restrictions.lessThan("changeNumber", audit.getChangeNumber())
) );
qc.add(Restrictions.equal("propertyName", propertyName));
AuditChange current = getLatest(list(qc));
return current == null ? NA : current.getNewValue();
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy