
org.jboss.pressgang.ccms.wrapper.base.DBBaseEntityWrapper Maven / Gradle / Ivy
package org.jboss.pressgang.ccms.wrapper.base;
import java.util.Map;
import org.jboss.pressgang.ccms.model.base.AuditedEntity;
import org.jboss.pressgang.ccms.model.utils.EnversUtilities;
import org.jboss.pressgang.ccms.provider.DBProviderFactory;
import org.jboss.pressgang.ccms.wrapper.collection.CollectionWrapper;
public abstract class DBBaseEntityWrapper, U extends AuditedEntity> extends DBBaseWrapper implements
EntityWrapper {
private final boolean isRevision;
private final Class clazz;
private final Class wrapperClazz;
protected DBBaseEntityWrapper(final DBProviderFactory providerFactory, boolean isRevision, Class clazz) {
this(providerFactory, isRevision, null, clazz);
}
protected DBBaseEntityWrapper(final DBProviderFactory providerFactory, boolean isRevision, Class wrapperClazz, Class clazz) {
super(providerFactory);
this.isRevision = isRevision;
this.clazz = clazz;
this.wrapperClazz = wrapperClazz;
}
@Override
public T clone(boolean deepCopy) {
throw new UnsupportedOperationException("The clone method has no implementation.");
}
@Override
public boolean isRevisionEntity() {
return isRevision;
}
@Override
public Integer getId() {
return getEntity().getId();
}
@Override
public Integer getRevision() {
return getEntity().getRevision() == null ? EnversUtilities.getLatestRevision(getDatabaseProvider().getEntityManager(),
getEntity()).intValue() : getEntity().getRevision().intValue();
}
@Override
public CollectionWrapper getRevisions() {
final Map entities = EnversUtilities.getRevisionEntities(getEntityManager(), getEntity());
if (wrapperClazz != null) {
return getWrapperFactory().createCollection(entities.values(), clazz, true, wrapperClazz);
} else {
return getWrapperFactory().createCollection(entities.values(), clazz, true);
}
}
@Override
public boolean equals(final Object o) {
if (o instanceof DBBaseEntityWrapper && getEntity() != null) {
return o == null ? false : getEntity().equals(((DBBaseEntityWrapper) o).getEntity());
} else {
return super.equals(o);
}
}
@Override
public int hashCode() {
if (getEntity() != null) {
return getEntity().hashCode();
} else {
return super.hashCode();
}
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy