
org.jboss.pressgang.ccms.provider.DBUserProvider Maven / Gradle / Ivy
package org.jboss.pressgang.ccms.provider;
import javax.persistence.EntityManager;
import javax.persistence.criteria.CriteriaBuilder;
import javax.persistence.criteria.CriteriaQuery;
import javax.persistence.criteria.Root;
import java.util.List;
import org.jboss.pressgang.ccms.model.User;
import org.jboss.pressgang.ccms.provider.listener.ProviderListener;
import org.jboss.pressgang.ccms.wrapper.UserWrapper;
import org.jboss.pressgang.ccms.wrapper.collection.CollectionWrapper;
public class DBUserProvider extends DBDataProvider implements UserProvider {
protected DBUserProvider(EntityManager entityManager, DBProviderFactory providerFactory, List listeners) {
super(entityManager, providerFactory, listeners);
}
@Override
public UserWrapper getUser(int id) {
return getWrapperFactory().create(getEntity(User.class, id), false);
}
@Override
public UserWrapper getUser(int id, Integer revision) {
if (revision == null) {
return getUser(id);
} else {
return getWrapperFactory().create(getRevisionEntity(User.class, id, revision), true);
}
}
@Override
public CollectionWrapper getUsersByName(String name) {
final CriteriaBuilder criteriaBuilder = getEntityManager().getCriteriaBuilder();
final CriteriaQuery user = criteriaBuilder.createQuery(User.class);
final Root from = user.from(User.class);
user.select(from);
user.where(criteriaBuilder.equal(from.get("userName"), name));
return getWrapperFactory().createCollection(executeQuery(user), User.class, false);
}
@Override
public UserWrapper getUserByName(final String name) {
final CollectionWrapper users = getUsersByName(name);
if (users != null && !users.isEmpty()) {
for (final UserWrapper user : users.getItems()) {
if (user.getUsername().equals(name)) {
return user;
}
}
}
return null;
}
@Override
public CollectionWrapper getUserRevisions(int id, Integer revision) {
final List revisions = getRevisionList(User.class, id);
return getWrapperFactory().createCollection(revisions, User.class, revision != null);
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy