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.ItemListener
CollectionDatasource.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.SupportsApplyToSelected<T extends Entity<K>,K>, CollectionDatasource.SupportsPaging<T extends Entity<K>,K>, CollectionDatasource.SupportsRefreshMode<T extends Entity<K>,K>, CollectionDatasource.Suspendable<T extends Entity<K>,K>, CollectionDatasource.UnmuteEventsMode
Datasource.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<com.haulmont.chile.core.model.MetaPropertyPath>[] |
sortInfos |
protected java.util.LinkedList<CollectionDatasource.CollectionChangeEvent<T,K>> |
suspendedEvents |
protected UserSession |
userSession |
dataSupplier, dsContext, item, metaClass, state, view
allowCommit, 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.lang.String[] |
getSortPropertiesForPersistentAttribute(com.haulmont.chile.core.model.MetaPropertyPath propertyPath) |
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.CollectionChangeListener s
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.CollectionChangeListener s. |
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, valid
addItemChangeListener, 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, toString
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
addItem, clear, containsItem, excludeItem, getItem, getItemIds, getItems, includeItem, modifyItem, refresh, removeItem, revert, size, updateItem
addItemChangeListener, addItemPropertyChangeListener, addStateChangeListener, getCommitMode, getDataSupplier, getDsContext, getId, getItem, getItemIfValid, getLoadDynamicAttributes, getMetaClass, getState, getView, invalidate, isAllowCommit, isModified, refresh, removeItemChangeListener, removeItemPropertyChangeListener, removeStateChangeListener, setAllowCommit, setLoadDynamicAttributes, setup
clearCommitLists, deleted, enableListeners, getItemsToCreate, getItemsToDelete, getItemsToUpdate, getParent, modified, setCommitMode, setModified, setParent
protected 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<com.haulmont.chile.core.model.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)
Datasource
setItem
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.UnsupportedOperationException
public QueryFilter getQueryFilter()
getQueryFilter
in interface CollectionDatasource<T extends Entity<K>,K>
public void setQuery(java.lang.String query)
CollectionDatasource
ds$
- 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)
CollectionDatasource
CollectionDatasource.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)
CollectionDatasource
setMaxResults
in interface CollectionDatasource<T extends Entity<K>,K>
public java.util.Map<java.lang.String,java.lang.Object> getLastRefreshParameters()
CollectionDatasource
CollectionDatasource.refresh(Map)
method or empty map if there was no refresh with parametersgetLastRefreshParameters
in interface CollectionDatasource<T extends Entity<K>,K>
public boolean getRefreshOnComponentValueChange()
CollectionDatasource
component$
parameter)getRefreshOnComponentValueChange
in interface CollectionDatasource<T extends Entity<K>,K>
public void setRefreshOnComponentValueChange(boolean refresh)
CollectionDatasource
component$
parameter)setRefreshOnComponentValueChange
in interface CollectionDatasource<T extends Entity<K>,K>
public void setQuery(java.lang.String query, QueryFilter filter)
CollectionDatasource
CollectionDatasource.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()
CollectionDatasource
collectionChanged
method of registered CollectionDatasource.CollectionChangeListener
s.
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()
CollectionDatasource
collectionChanged
method of registered CollectionDatasource.CollectionChangeListener
s
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()
CollectionDatasource
CollectionDatasource.unmute(UnmuteEventsMode)
for bulk data modification as a performance optimization.public void unmute(CollectionDatasource.UnmuteEventsMode mode)
CollectionDatasource
public boolean isSoftDeletion()
isSoftDeletion
in interface CollectionDatasource<T extends Entity<K>,K>
public void setSoftDeletion(boolean softDeletion)
CollectionDatasource
setSoftDeletion
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)
CollectionDatasource
setCacheable
in interface CollectionDatasource<T extends Entity<K>,K>
public void commit()
Datasource
commit
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)
@Nullable protected java.lang.String[] getSortPropertiesForPersistentAttribute(com.haulmont.chile.core.model.MetaPropertyPath propertyPath)
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>