com.evolveum.midpoint.model.api
Interface ModelInteractionService

All Known Implementing Classes:
ModelController

public interface ModelInteractionService

A service provided by the IDM Model that allows to improve the (user) interaction with the model. It is supposed to provide services such as preview of changes, diagnostics and other informational services. It should only provide access to read-only data or provide a temporary (throw-away) previews of data. It should not change the state of IDM repository, resources or tasks. UNSTABLE: This is likely to change PRIVATE: This interface is not supposed to be used outside of midPoint

Author:
Radovan Semancik

Field Summary
static java.lang.String CLASS_NAME_WITH_DOT
           
static java.lang.String PREVIEW_CHANGES
           
 
Method Summary
<F extends ObjectType,P extends ObjectType>
ModelContext<F,P>
previewChanges(java.util.Collection<ObjectDelta<? extends ObjectType>> deltas, Task task, OperationResult result)
          Computes the most likely changes triggered by the provided delta.
 

Field Detail

CLASS_NAME_WITH_DOT

static final java.lang.String CLASS_NAME_WITH_DOT

PREVIEW_CHANGES

static final java.lang.String PREVIEW_CHANGES
Method Detail

previewChanges

<F extends ObjectType,P extends ObjectType> ModelContext<F,P> previewChanges(java.util.Collection<ObjectDelta<? extends ObjectType>> deltas,
                                                                             Task task,
                                                                             OperationResult result)
                                                                       throws SchemaException,
                                                                              PolicyViolationException,
                                                                              ExpressionEvaluationException,
                                                                              ObjectNotFoundException,
                                                                              ObjectAlreadyExistsException,
                                                                              CommunicationException,
                                                                              ConfigurationException,
                                                                              SecurityViolationException
Computes the most likely changes triggered by the provided delta. The delta may be any change of any object, e.g. add of a user or change of a shadow. The resulting context will sort that out to "focus" and "projection" as needed. The supplied delta will be used as a primary change. The resulting context will reflect both this primary change and any resulting secondary changes. The changes are only computed, NOT EXECUTED. It also does not change any state of any repository object or task. Therefore this method is safe to use anytime. However it is reading the data from the repository and possibly also from the resources therefore there is still potential for communication (and other) errors and invocation of this method may not be cheap. However, as no operations are really executed there may be issues with resource dependencies. E.g. identifier that are generated by the resource are not taken into account while recomputing the values. This may also cause errors if some expressions depend on the generated values.

Throws:
SchemaException
PolicyViolationException
ExpressionEvaluationException
ObjectNotFoundException
ObjectAlreadyExistsException
CommunicationException
ConfigurationException
SecurityViolationException


Copyright © 2012 evolveum. All Rights Reserved.