Interface OptimizingTriggerCreator
-
public interface OptimizingTriggerCreatorAdds recompute triggers to objects in an optimized way: - The triggers are set to a given time in future (e.g. 1 minute from now). - If more requests to create triggers to the same object come before that time comes (minus some safety margin, e.g. 2 seconds), their creation is skipped. Currently we deal only with the recompute triggers. Other types can be added as necessary. The deduplication works best if: - the requests are of the same kind (i.e. either name-based or OID-based); - the triggers are created on a single node, because the creators share a common state which is node-wide. But even if these conditions are not met, the extra triggers creation is still avoided, at the cost of extra read operations against the repository.
-
-
Method Summary
All Methods Instance Methods Abstract Methods Modifier and Type Method Description booleancreateForNamedObject(@NotNull Class<? extends ObjectType> type, @NotNull String name)Creates a trigger for the object with the given name.booleancreateForNamedUser(@NotNull String name)Creates a trigger for the user with the given name.booleancreateForObject(@NotNull Class<? extends ObjectType> type, @NotNull String oid)Creates a trigger to the user with the given OID.
-
-
-
Method Detail
-
createForNamedUser
boolean createForNamedUser(@NotNull @NotNull String name) throws SchemaException, ObjectAlreadyExistsException, ObjectNotFoundExceptionCreates a trigger for the user with the given name.- Returns:
- true if the trigger was really added; false if it already existed or could not be added (Note that if the object cannot be found by the name, currently no exception is reported.)
- Throws:
SchemaExceptionObjectAlreadyExistsExceptionObjectNotFoundException
-
createForNamedObject
boolean createForNamedObject(@NotNull @NotNull Class<? extends ObjectType> type, @NotNull @NotNull String name) throws ObjectAlreadyExistsException, ObjectNotFoundException, SchemaExceptionCreates a trigger for the object with the given name.- Returns:
- true if the trigger was really added; false if it already existed or could not be added (Note that if the object cannot be found by the name, currently no exception is reported.)
- Throws:
ObjectAlreadyExistsExceptionObjectNotFoundExceptionSchemaException
-
createForObject
boolean createForObject(@NotNull @NotNull Class<? extends ObjectType> type, @NotNull @NotNull String oid) throws ObjectAlreadyExistsException, ObjectNotFoundException, SchemaExceptionCreates a trigger to the user with the given OID.- Returns:
- true if the trigger was really added; false if it already existed or could not be added
- Throws:
ObjectAlreadyExistsExceptionObjectNotFoundExceptionSchemaException
-
-