
com.vaadin.addon.jpacontainer.provider.BatchableLocalEntityProvider Maven / Gradle / Ivy
The newest version!
/*
JPAContainer
Copyright (C) 2009-2011 Oy Vaadin Ltd
This program is available under GNU Affero General Public License (version
3 or later at your option).
See the file licensing.txt distributed with this software for more
information about licensing.
You should have received a copy of the GNU Affero General Public License
along with this program. If not, see .
*/
package com.vaadin.addon.jpacontainer.provider;
import com.vaadin.addon.jpacontainer.BatchableEntityProvider;
import com.vaadin.addon.jpacontainer.BatchableEntityProvider.BatchUpdateCallback;
import javax.persistence.EntityManager;
/**
* A very simple implementation of {@link BatchableEntityProvider} that simply
* passes itself to the {@link BatchUpdateCallback}. No data consistency checks
* are performed. On some occations, this can cause trouble in real applications.
* Please see the {@link BatchableEntityProvider} interface JavaDocs and the
* JPAContainer manual for more information.
*
* @author Petter Holmström (Vaadin Ltd)
* @since 1.0
*/
public class BatchableLocalEntityProvider extends
MutableLocalEntityProvider implements BatchableEntityProvider {
private static final long serialVersionUID = 9174163487778140520L;
/**
* Creates a new BatchableLocalEntityProvider
. The entity
* manager must be set using
* {@link #setEntityManager(javax.persistence.EntityManager) }.
*
* @param entityClass
* the entity class (must not be null).
*/
public BatchableLocalEntityProvider(Class entityClass) {
super(entityClass);
}
/**
* Creates a new BatchableLocalEntityProvider
.
*
* @param entityClass
* the entity class (must not be null).
* @param entityManager
* the entity manager to use (must not be null).
*/
public BatchableLocalEntityProvider(Class entityClass,
EntityManager entityManager) {
super(entityClass, entityManager);
}
public void batchUpdate(final BatchUpdateCallback callback)
throws UnsupportedOperationException {
assert callback != null : "callback must not be null";
setFireEntityProviderChangeEvents(false);
try {
runInTransaction(new Runnable() {
public void run() {
callback.batchUpdate(BatchableLocalEntityProvider.this);
}
});
} finally {
setFireEntityProviderChangeEvents(true);
}
fireEntityProviderChangeEvent(new BatchUpdatePerformedEvent(this));
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy