T - type of entityK - type of entity IDpublic abstract class AbstractCollectionDatasource<T extends Entity<K>,K> extends DatasourceImpl<T> implements CollectionDatasource<T,K>, CollectionDatasource.SupportsRefreshMode<T,K>
| Modifier and Type | Class and Description |
|---|---|
protected class |
AbstractCollectionDatasource.ComponentValueListener |
AbstractDatasource.ItemListenerCollectionDatasource.Aggregatable<T extends Entity<K>,K>, CollectionDatasource.CollectionChangeEvent<T extends Entity<K>,K>, CollectionDatasource.CollectionChangeListener<T extends Entity<K>,K>, CollectionDatasource.Indexed<T extends Entity<K>,K>, CollectionDatasource.Lazy<T extends Entity<K>,K>, CollectionDatasource.Operation, CollectionDatasource.Ordered<T extends Entity<K>,K>, CollectionDatasource.RefreshMode, CollectionDatasource.Sortable<T extends Entity<K>,K>, CollectionDatasource.SortDelegate<T extends Entity<K>,K>, CollectionDatasource.SupportsApplyToSelected<T extends Entity<K>,K>, CollectionDatasource.SupportsPaging<T extends Entity<K>,K>, CollectionDatasource.SupportsRefreshMode<T extends Entity<K>,K>, CollectionDatasource.SupportsSortDelegate<T extends Entity<K>,K>, CollectionDatasource.Suspendable<T extends Entity<K>,K>, CollectionDatasource.UnmuteEventsModeDatasource.CommitMode, Datasource.ItemChangeEvent<T extends Entity>, Datasource.ItemChangeListener<T extends Entity>, Datasource.ItemPropertyChangeEvent<T extends Entity>, Datasource.ItemPropertyChangeListener<T extends Entity>, Datasource.State, Datasource.StateChangeEvent<T extends Entity>, Datasource.StateChangeListener<T extends Entity>| Modifier and Type | Field and Description |
|---|---|
protected boolean |
cacheable |
protected AbstractCollectionDatasource.ComponentValueListener |
componentValueListener |
protected java.lang.Throwable |
dataLoadError |
protected QueryFilter |
filter |
protected boolean |
listenersSuspended |
protected int |
maxResults |
protected java.lang.String |
query |
protected ParameterInfo[] |
queryParameters |
protected CollectionDatasource.RefreshMode |
refreshMode |
protected boolean |
refreshOnComponentValueChange |
protected java.util.Map<java.lang.String,java.lang.Object> |
savedParameters |
protected boolean |
softDeletion |
protected CollectionDatasource.Sortable.SortInfo<MetaPropertyPath>[] |
sortInfos |
protected java.util.LinkedList<CollectionDatasource.CollectionChangeEvent<T,K>> |
suspendedEvents |
protected UserSession |
userSession |
dataSupplier, dsContext, item, metaClass, state, viewallowCommit, backgroundWorker, commitMode, id, itemsToCreate, itemsToDelete, itemsToUpdate, listener, listenersEnabled, loadDynamicAttributes, metadata, modified, parentDs| Constructor and Description |
|---|
AbstractCollectionDatasource() |
| Modifier and Type | Method and Description |
|---|---|
void |
addCollectionChangeListener(CollectionDatasource.CollectionChangeListener<? super T,K> listener) |
protected void |
checkDataLoadError() |
void |
commit()
Performs commit
|
protected DataLoadContextQuery |
createDataQuery(DataLoadContext context,
java.util.Map<java.lang.String,java.lang.Object> params) |
protected java.util.Comparator<T> |
createEntityComparator() |
protected void |
fireCollectionChanged(CollectionDatasource.Operation operation,
java.util.List<T> items) |
LoadContext |
getCompiledLoadContext() |
int |
getCount()
Return number of rows for the current query set in the datasource.
|
T |
getItemNN(K id) |
protected java.lang.String |
getJPQLQuery(java.util.Map<java.lang.String,java.lang.Object> parameterValues) |
java.util.Map<java.lang.String,java.lang.Object> |
getLastRefreshParameters()
Returns the parameters last used in
CollectionDatasource.refresh(Map) method or empty map if there was no refresh with parameters |
protected java.lang.String |
getLoggingTag(java.lang.String prefix) |
int |
getMaxResults() |
java.lang.String |
getQuery() |
QueryFilter |
getQueryFilter() |
protected java.util.Map<java.lang.String,java.lang.Object> |
getQueryParameters(java.util.Map<java.lang.String,java.lang.Object> params) |
CollectionDatasource.RefreshMode |
getRefreshMode() |
boolean |
getRefreshOnComponentValueChange()
Whether to refresh datasource on changing value of a component which it depends on
(through
component$ parameter) |
protected java.util.Map<java.lang.String,java.lang.Object> |
getTemplateParams(java.util.Map<java.lang.String,java.lang.Object> customParams) |
boolean |
isCacheable() |
boolean |
isSoftDeletion() |
protected java.lang.String |
makeCaseInsensitive(java.lang.String value) |
void |
mute()
Disables all event listeners on datasource data change.
|
protected void |
prepareLoadContext(LoadContext<?> context) |
void |
removeCollectionChangeListener(CollectionDatasource.CollectionChangeListener<? super T,K> listener) |
void |
resumeListeners()
Resume invocation of
collectionChanged method of registered CollectionDatasource.CollectionChangeListeners
after calling CollectionDatasource.suspendListeners(). |
void |
setCacheable(boolean cacheable)
Indicates that the datasource query results should be cached in the middleware query cache.
|
void |
setItem(T item)
Set current entity in the datasource.
|
void |
setMaxResults(int maxResults)
Set max number of rows.
|
void |
setQuery(java.lang.String query)
Set query string which is used to load data.
|
void |
setQuery(java.lang.String query,
QueryFilter filter)
Set query string and associated filter which is used to load data.
|
void |
setQueryFilter(QueryFilter filter)
Set query filter which is used to load data.
|
void |
setRefreshMode(CollectionDatasource.RefreshMode refreshMode) |
void |
setRefreshOnComponentValueChange(boolean refresh)
Whether to refresh datasource on changing value of a component which it depends on
(through
component$ parameter) |
void |
setSoftDeletion(boolean softDeletion)
Switch on/off Soft Deletion.
|
protected void |
setSortDirection(LoadContext.Query q) |
void |
suspendListeners()
Suspend invocation of
collectionChanged method of registered CollectionDatasource.CollectionChangeListeners. |
void |
unmute(CollectionDatasource.UnmuteEventsMode mode)
Enables all event listeners.
|
__setItem, committed, getDataSupplier, getDsContext, getItem, getItemIfValid, getMetaClass, getState, getView, initialized, invalidate, refresh, setDataSupplier, setDsContext, setMetaClass, setup, setView, setView, validaddItemChangeListener, addItemPropertyChangeListener, addParentsToNested, addStateChangeListener, attachListener, clearCommitLists, deleted, detachListener, enableListeners, fireItemChanged, fireStateChanged, getCommitMode, getEventRouter, getId, getItemsToCreate, getItemsToDelete, getItemsToUpdate, getLoadDynamicAttributes, getParent, isAllowCommit, isModified, modified, removeItemChangeListener, removeItemPropertyChangeListener, removeStateChangeListener, setAllowCommit, setCommitMode, setLoadDynamicAttributes, setModified, setParent, toStringclone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitaddItem, clear, containsItem, excludeItem, getItem, getItemIds, getItems, includeItem, modifyItem, refresh, removeItem, revert, size, updateItemaddItemChangeListener, addItemPropertyChangeListener, addStateChangeListener, getCommitMode, getDataSupplier, getDsContext, getId, getItem, getItemIfValid, getLoadDynamicAttributes, getMetaClass, getState, getView, invalidate, isAllowCommit, isModified, refresh, removeItemChangeListener, removeItemPropertyChangeListener, removeStateChangeListener, setAllowCommit, setLoadDynamicAttributes, setupclearCommitLists, deleted, enableListeners, getItemsToCreate, getItemsToDelete, getItemsToUpdate, getParent, modified, setCommitMode, setModified, setParentprotected java.lang.String query
protected QueryFilter filter
protected int maxResults
protected ParameterInfo[] queryParameters
protected boolean softDeletion
protected boolean cacheable
protected AbstractCollectionDatasource.ComponentValueListener componentValueListener
protected boolean refreshOnComponentValueChange
protected CollectionDatasource.Sortable.SortInfo<MetaPropertyPath>[] sortInfos
protected java.util.Map<java.lang.String,java.lang.Object> savedParameters
protected java.lang.Throwable dataLoadError
protected boolean listenersSuspended
protected final java.util.LinkedList<CollectionDatasource.CollectionChangeEvent<T extends Entity<K>,K>> suspendedEvents
protected CollectionDatasource.RefreshMode refreshMode
protected UserSession userSession
public void setItem(T item)
DatasourcesetItem in interface Datasource<T extends Entity<K>>setItem in class DatasourceImpl<T extends Entity<K>>item - entity instancepublic java.lang.String getQuery()
public LoadContext getCompiledLoadContext() throws java.lang.UnsupportedOperationException
getCompiledLoadContext in interface CollectionDatasource<T extends Entity<K>,K>java.lang.UnsupportedOperationExceptionpublic QueryFilter getQueryFilter()
getQueryFilter in interface CollectionDatasource<T extends Entity<K>,K>public void setQuery(java.lang.String query)
CollectionDatasourceds$ - current item in the specified datasource
component$ - value of the specified UI component
param$ - value of parameter passed to the window when opening it
session$ - userId represents current or substituted user ID,
userLogin represents current or substituted user login in lower case,
any other string represents a user session attribute with this name
custom$ - value of parameter passed to the CollectionDatasource.refresh(java.util.Map) method
public void setQueryFilter(QueryFilter filter)
CollectionDatasourceCollectionDatasource.setQuery(String) for the list of supported query parameters.setQueryFilter in interface CollectionDatasource<T extends Entity<K>,K>public int getMaxResults()
getMaxResults in interface CollectionDatasource<T extends Entity<K>,K>public void setMaxResults(int maxResults)
CollectionDatasourcesetMaxResults in interface CollectionDatasource<T extends Entity<K>,K>public java.util.Map<java.lang.String,java.lang.Object> getLastRefreshParameters()
CollectionDatasourceCollectionDatasource.refresh(Map) method or empty map if there was no refresh with parametersgetLastRefreshParameters in interface CollectionDatasource<T extends Entity<K>,K>public boolean getRefreshOnComponentValueChange()
CollectionDatasourcecomponent$ parameter)getRefreshOnComponentValueChange in interface CollectionDatasource<T extends Entity<K>,K>public void setRefreshOnComponentValueChange(boolean refresh)
CollectionDatasourcecomponent$ parameter)setRefreshOnComponentValueChange in interface CollectionDatasource<T extends Entity<K>,K>public void setQuery(java.lang.String query,
QueryFilter filter)
CollectionDatasourceCollectionDatasource.setQuery(String) for the list of supported query parameters.protected java.util.Map<java.lang.String,java.lang.Object> getQueryParameters(java.util.Map<java.lang.String,java.lang.Object> params)
protected java.lang.String makeCaseInsensitive(java.lang.String value)
protected java.lang.String getJPQLQuery(java.util.Map<java.lang.String,java.lang.Object> parameterValues)
protected void fireCollectionChanged(CollectionDatasource.Operation operation, java.util.List<T> items)
protected java.util.Map<java.lang.String,java.lang.Object> getTemplateParams(java.util.Map<java.lang.String,java.lang.Object> customParams)
public void suspendListeners()
CollectionDatasourcecollectionChanged method of registered CollectionDatasource.CollectionChangeListeners.
It makes sense in case of massive updates of the datasource by CollectionDatasource.addItem(com.haulmont.cuba.core.entity.Entity)
or similar methods.
After that, collectionChanged will be invoked once on CollectionDatasource.resumeListeners() call.
ds.suspendListeners();
try {
for (Object item : items) {
ds.addItem(item);
}
} finally {
ds.resumeListeners();
}
suspendListeners in interface CollectionDatasource<T extends Entity<K>,K>public void resumeListeners()
CollectionDatasourcecollectionChanged method of registered CollectionDatasource.CollectionChangeListeners
after calling CollectionDatasource.suspendListeners().
It will call collectionChanged just once, doesn't matter how many updates were issued
since the previous CollectionDatasource.suspendListeners() call.
finally section.resumeListeners in interface CollectionDatasource<T extends Entity<K>,K>public void mute()
CollectionDatasourceCollectionDatasource.unmute(UnmuteEventsMode) for bulk data modification as a performance optimization.public void unmute(CollectionDatasource.UnmuteEventsMode mode)
CollectionDatasourcepublic boolean isSoftDeletion()
isSoftDeletion in interface CollectionDatasource<T extends Entity<K>,K>public void setSoftDeletion(boolean softDeletion)
CollectionDatasourcesetSoftDeletion in interface CollectionDatasource<T extends Entity<K>,K>public boolean isCacheable()
isCacheable in interface CollectionDatasource<T extends Entity<K>,K>public void setCacheable(boolean cacheable)
CollectionDatasourcesetCacheable in interface CollectionDatasource<T extends Entity<K>,K>public void commit()
Datasourcecommit in interface Datasource<T extends Entity<K>>commit in class DatasourceImpl<T extends Entity<K>>protected java.util.Comparator<T> createEntityComparator()
protected DataLoadContextQuery createDataQuery(DataLoadContext context, java.util.Map<java.lang.String,java.lang.Object> params)
public int getCount()
dataLoadError field to the exception objectprotected java.lang.String getLoggingTag(java.lang.String prefix)
protected void prepareLoadContext(LoadContext<?> context)
protected void checkDataLoadError()
protected void setSortDirection(LoadContext.Query q)
public CollectionDatasource.RefreshMode getRefreshMode()
getRefreshMode in interface CollectionDatasource.SupportsRefreshMode<T extends Entity<K>,K>public void setRefreshMode(CollectionDatasource.RefreshMode refreshMode)
setRefreshMode in interface CollectionDatasource.SupportsRefreshMode<T extends Entity<K>,K>public void addCollectionChangeListener(CollectionDatasource.CollectionChangeListener<? super T,K> listener)
addCollectionChangeListener in interface CollectionDatasource<T extends Entity<K>,K>public void removeCollectionChangeListener(CollectionDatasource.CollectionChangeListener<? super T,K> listener)
removeCollectionChangeListener in interface CollectionDatasource<T extends Entity<K>,K>