Class ContainerListDataProvider<C extends Containerable>
java.lang.Object
org.apache.wicket.extensions.markup.html.repeater.util.SortableDataProvider<T,String>
com.evolveum.midpoint.gui.impl.component.data.provider.BaseSortableDataProvider<T>
com.evolveum.midpoint.gui.impl.component.data.provider.BaseSearchDataProvider<C,PrismContainerValueWrapper<C>>
com.evolveum.midpoint.gui.impl.component.data.provider.ContainerListDataProvider<C>
- All Implemented Interfaces:
ISelectableDataProvider<PrismContainerValueWrapper<C>>,IterativeExportSupport<PrismContainerValueWrapper<C>>,Serializable,org.apache.wicket.extensions.markup.html.repeater.data.sort.ISortStateLocator<String>,org.apache.wicket.extensions.markup.html.repeater.data.table.ISortableDataProvider<PrismContainerValueWrapper<C>,,String> org.apache.wicket.markup.repeater.data.IDataProvider<PrismContainerValueWrapper<C>>,org.apache.wicket.model.IDetachable,org.apache.wicket.util.io.IClusterable
- Direct Known Subclasses:
RepoAssignmentListProvider,SpecificMappingProvider
public class ContainerListDataProvider<C extends Containerable>
extends BaseSearchDataProvider<C,PrismContainerValueWrapper<C>>
implements ISelectableDataProvider<PrismContainerValueWrapper<C>>
Created by honchar
- See Also:
-
Nested Class Summary
Nested classes/interfaces inherited from class com.evolveum.midpoint.gui.impl.component.data.provider.BaseSortableDataProvider
BaseSortableDataProvider.CachedSize -
Constructor Summary
ConstructorsConstructorDescriptionContainerListDataProvider(org.apache.wicket.Component component, @NotNull org.apache.wicket.model.IModel<Search<C>> search) ContainerListDataProvider(org.apache.wicket.Component component, @NotNull org.apache.wicket.model.IModel<Search<C>> search, Collection<SelectorOptions<GetOperationOptions>> options) -
Method Summary
Modifier and TypeMethodDescriptionprotected PrismContainerValueWrapper<C>createExportWrapper(C object) Creates a lightweight wrapper for export purposes.protected PrismContainerValueWrapper<C>createWrapper(C object, com.evolveum.midpoint.task.api.Task task, OperationResult result) voiddetach()protected Iterator<? extends PrismContainerValueWrapper<C>>doRepositoryIteration(long first, long count) voidexportIterative(ObjectHandler<PrismContainerValueWrapper<C>> handler, com.evolveum.midpoint.task.api.Task task, OperationResult result) Streaming export using JDBC cursor-based streaming.Iterator<? extends PrismContainerValueWrapper<C>>internalIterator(long first, long count) protected intbooleanReturns false by default.Methods inherited from class com.evolveum.midpoint.gui.impl.component.data.provider.BaseSearchDataProvider
addQueryVariables, getCompiledObjectCollectionView, getCustomizeContentQuery, getQuery, getSearchModel, getType, getVariables, setCompiledObjectCollectionView, setupUserFriendlyMessage, sizeMethods inherited from class com.evolveum.midpoint.gui.impl.component.data.provider.BaseSortableDataProvider
addCachedSize, checkOrderingSettings, clearCache, createObjectOrderings, createPaging, getAuditService, getAvailableData, getCachedSize, getDefaultOptionsBuilder, getDefaultSortOrder, getDefaultSortParam, getDistinctRelatedOptions, getDistinctRelatedOptionsBuilder, getModelInteractionService, getModelService, getOperationOptionsBuilder, getOperationOptionsBuilder, getPageBase, getPrismContext, getRelationRegistry, getSchemaService, getTaskManager, isDistinct, isOrderingDisabled, isSizeAvailableModel, isUseCache, iterator, model, setExportSize, setQueryMethods inherited from class org.apache.wicket.extensions.markup.html.repeater.util.SortableDataProvider
getSort, getSortState, setSort, setSortMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface org.apache.wicket.markup.repeater.data.IDataProvider
iterator, model, sizeMethods inherited from interface com.evolveum.midpoint.gui.api.component.data.provider.ISelectableDataProvider
setQueryMethods inherited from interface org.apache.wicket.extensions.markup.html.repeater.data.sort.ISortStateLocator
getSortState
-
Constructor Details
-
ContainerListDataProvider
-
ContainerListDataProvider
public ContainerListDataProvider(org.apache.wicket.Component component, @NotNull @NotNull org.apache.wicket.model.IModel<Search<C>> search, Collection<SelectorOptions<GetOperationOptions>> options)
-
-
Method Details
-
internalIterator
- Specified by:
internalIteratorin classBaseSortableDataProvider<PrismContainerValueWrapper<C extends Containerable>>
-
doRepositoryIteration
protected Iterator<? extends PrismContainerValueWrapper<C>> doRepositoryIteration(long first, long count) -
createWrapper
protected PrismContainerValueWrapper<C> createWrapper(C object, com.evolveum.midpoint.task.api.Task task, OperationResult result) throws SchemaException - Throws:
SchemaException
-
createExportWrapper
Creates a lightweight wrapper for export purposes. This skips child wrapper creation which is the main performance bottleneck. The wrapper only holds the PrismContainerValue - columns access data via getRealValue(). -
internalSize
protected int internalSize()- Specified by:
internalSizein classBaseSortableDataProvider<PrismContainerValueWrapper<C extends Containerable>>
-
detach
public void detach()- Specified by:
detachin interfaceorg.apache.wicket.markup.repeater.data.IDataProvider<C extends Containerable>- Specified by:
detachin interfaceorg.apache.wicket.model.IDetachable- Overrides:
detachin classBaseSearchDataProvider<C extends Containerable,PrismContainerValueWrapper<C extends Containerable>>
-
supportsIterativeExport
public boolean supportsIterativeExport()Description copied from class:BaseSearchDataProviderReturns false by default. Subclasses that implement exportIterative() should override this to return true.- Specified by:
supportsIterativeExportin interfaceIterativeExportSupport<C extends Containerable>- Overrides:
supportsIterativeExportin classBaseSearchDataProvider<C extends Containerable,PrismContainerValueWrapper<C extends Containerable>>
-
exportIterative
public void exportIterative(ObjectHandler<PrismContainerValueWrapper<C>> handler, com.evolveum.midpoint.task.api.Task task, OperationResult result) throws CommonException Streaming export using JDBC cursor-based streaming. This method does not load all data into memory - uses true JDBC streaming. Streaming is enabled by setting iterationPageSize to -1. Uses lightweight wrapper to skip expensive child wrapper creation.- Specified by:
exportIterativein interfaceIterativeExportSupport<C extends Containerable>- Overrides:
exportIterativein classBaseSearchDataProvider<C extends Containerable,PrismContainerValueWrapper<C extends Containerable>> - Parameters:
handler- Handler to process each item. Returns true to continue, false to stop.task- Task for the operationresult- Operation result- Throws:
CommonException- if an error occurs during the search
-