Interface IterativeActivityRunSpecifics
- All Superinterfaces:
ImplicitSegmentationResolver
- All Known Subinterfaces:
PlainIterativeActivityRunSpecifics<I>
,SearchBasedActivityRunSpecifics<C>
- All Known Implementing Classes:
AsyncUpdateActivityRun
,AutoScalingActivityRun
,FocusValidityScanPartialRun
,ImportActivityRun
,IterativeActivityRun
,LiveSyncActivityRun
,PartialReconciliationActivityRun
,PlainIterativeActivityRun
,ResourceObjectsReconciliationActivityRun
,ScanActivityRun
,SearchBasedActivityRun
,ShadowCleanupActivityHandler.MyRun
,ShadowIntegrityCheckActivityRun
,ShadowRefreshActivityHandler.MyActivityRun
This interface summarizes what should an implementor of
IterativeActivityRun
(either plain or search-based) provide.
Main responsibilities (at this level of abstraction):
1. provides custom code to be executed before/after the real execution (if needed),
2. provides custom code to be executed before/after individual buckets are executed (if needed),
3. provides default reporting configuration,
4. indicates what activity state should be used to keep threshold counters - TODO to be reconsidered,
5. interprets implicit work segmentation configuration.
The real "meat" (e.g. query formulation, item processing, etc) is in subtypes, though.
This "specifics" functionality is pulled out from IterativeActivityRun
to precisely
describe the interface between the generic activity framework and specific activity implementation.-
Method Summary
Modifier and TypeMethodDescriptiondefault void
afterBucketProcessing
(OperationResult result) Called after bucket is processed.default void
afterRun
(OperationResult result) Called after the run.default void
Called before bucket is processed.default void
beforeRun
(OperationResult result) Called before the run.@NotNull ActivityReportingCharacteristics
default AbstractWorkSegmentationType
resolveImplicitSegmentation
(@NotNull ImplicitWorkSegmentationType segmentation) Converts `ImplicitWorkSegmentationType` into "real" segmentation configuration.default ActivityState
useOtherActivityStateForCounters
(@NotNull OperationResult result) Should we use activity state other than the state of the current activity when keeping the counters (e.g.
-
Method Details
-
beforeRun
Called before the run. Note that e.g. for search-based activities the search specification is *not* known at this moment.- Throws:
CommonException
ActivityRunException
-
afterRun
Called after the run.- Throws:
CommonException
ActivityRunException
-
beforeBucketProcessing
default void beforeBucketProcessing(OperationResult result) throws ActivityRunException, CommonException Called before bucket is processed. (For search-based tasks the search specification is already prepared, including narrowing using bucket.)- Throws:
ActivityRunException
CommonException
-
afterBucketProcessing
default void afterBucketProcessing(OperationResult result) throws ActivityRunException, CommonException Called after bucket is processed.- Throws:
ActivityRunException
CommonException
-
createReportingCharacteristics
- Returns:
- Reporting characteristics of the activity run. They e.g. provide default values
for
ActivityReportingDefinition
.
-
useOtherActivityStateForCounters
@Experimental default ActivityState useOtherActivityStateForCounters(@NotNull @NotNull OperationResult result) throws SchemaException, ObjectNotFoundException Should we use activity state other than the state of the current activity when keeping the counters (e.g. for thresholds)? -
resolveImplicitSegmentation
default AbstractWorkSegmentationType resolveImplicitSegmentation(@NotNull @NotNull ImplicitWorkSegmentationType segmentation) Description copied from interface:ImplicitSegmentationResolver
Converts `ImplicitWorkSegmentationType` into "real" segmentation configuration.- Specified by:
resolveImplicitSegmentation
in interfaceImplicitSegmentationResolver
-