|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
java.lang.Objectcom.evolveum.midpoint.repo.sql.SqlBaseService
com.evolveum.midpoint.repo.sql.SqlRepositoryServiceImpl
@Repository public class SqlRepositoryServiceImpl
| Field Summary |
|---|
| Fields inherited from interface com.evolveum.midpoint.repo.api.RepositoryService |
|---|
ADD_OBJECT, CLAIM_TASK, CLASS_NAME_WITH_DOT, COUNT_OBJECTS, DELETE_OBJECT, GET_OBJECT, LIST_ACCOUNT_SHADOW, LIST_OBJECTS, LIST_RESOURCE_OBJECT_SHADOWS, MODIFY_OBJECT, RELEASE_TASK, SEARCH_OBJECTS |
| Constructor Summary | |
|---|---|
SqlRepositoryServiceImpl()
|
|
| Method Summary | ||
|---|---|---|
|
addObject(PrismObject<T> object,
OperationResult result)
Add new object. |
|
void |
claimTask(java.lang.String oid,
OperationResult result)
Deprecated. |
|
|
countObjects(java.lang.Class<T> type,
ObjectQuery query,
OperationResult result)
|
|
|
deleteObject(java.lang.Class<T> type,
java.lang.String oid,
OperationResult result)
Deletes object with specified OID. |
|
|
getObject(java.lang.Class<T> type,
java.lang.String oid,
OperationResult result)
Returns object for provided OID. |
|
PrismObject<UserType> |
listAccountShadowOwner(java.lang.String accountOid,
OperationResult result)
Returns the User object representing owner of specified account (account shadow). |
|
|
listResourceObjectShadows(java.lang.String resourceOid,
java.lang.Class<T> resourceObjectShadowType,
OperationResult result)
Search for resource object shadows of a specified type that belong to the specified resource. |
|
|
modifyObject(java.lang.Class<T> type,
java.lang.String oid,
java.util.Collection<? extends ItemDelta> modifications,
OperationResult result)
Modifies object using relative change description. |
|
void |
releaseTask(java.lang.String oid,
OperationResult result)
Deprecated. |
|
|
searchObjects(java.lang.Class<T> type,
ObjectQuery query,
OperationResult result)
Search for objects in the repository. |
|
| Methods inherited from class com.evolveum.midpoint.repo.sql.SqlBaseService |
|---|
beginTransaction, cleanupSessionAndResult, getPrismContext, getSessionFactory, handleGeneralException, logOperationAttempt, rollbackTransaction, rollbackTransaction, rollbackTransaction, setPrismContext, setSessionFactory |
| Methods inherited from class java.lang.Object |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Constructor Detail |
|---|
public SqlRepositoryServiceImpl()
| Method Detail |
|---|
public <T extends ObjectType> PrismObject<T> getObject(java.lang.Class<T> type,
java.lang.String oid,
OperationResult result)
throws ObjectNotFoundException,
SchemaException
RepositoryService
getObject in interface RepositoryServiceoid - OID of the object to getresult - parent OperationResult (in/out)
ObjectNotFoundException - requested object does not exist
SchemaException - error dealing with storage schema
public PrismObject<UserType> listAccountShadowOwner(java.lang.String accountOid,
OperationResult result)
throws ObjectNotFoundException
RepositoryServiceReturns the User object representing owner of specified account (account shadow).
May return null if there is no owner specified for the account.
May only be called with OID of AccountShadow object.
Implements the backward "owns" association between account shadow and user. Forward association is implemented by property "account" of user object.
This is a "list" operation even though it may return at most one owner. However the operation implies searching the repository for an owner, which may be less efficient that following a direct association. Hence it is called "list" to indicate that there may be non-negligible overhead.
listAccountShadowOwner in interface RepositoryServiceaccountOid - OID of account shadowresult - parentResult parent OperationResult (in/out)
ObjectNotFoundException - specified object does not exist
public <T extends ObjectType> java.lang.String addObject(PrismObject<T> object,
OperationResult result)
throws ObjectAlreadyExistsException,
SchemaException
RepositoryServiceAdd new object.
The OID provided in the input message may be empty. In that case the OID will be assigned by the implementation of this method and it will be provided as return value.
This operation should fail if such object already exists (if object with the provided OID already exists).
The operation may fail if provided OID is in an unusable format for the storage. Generating own OIDs and providing them to this method is not recommended for normal operation.
Should be atomic. Should not allow creation of two objects with the same OID (even if created in parallel).
The operation may fail if the object to be created does not conform to the underlying schema of the storage system or the schema enforced by the implementation.
Note: no need for explicit type parameter here. The object parameter contains the information.
addObject in interface RepositoryServiceobject - object to createresult - parent OperationResult (in/out)
ObjectAlreadyExistsException - object with specified identifiers already exists, cannot add
SchemaException - error dealing with storage schema, e.g. schema violation
public <T extends ObjectType> void deleteObject(java.lang.Class<T> type,
java.lang.String oid,
OperationResult result)
throws ObjectNotFoundException
RepositoryServiceDeletes object with specified OID.
Must fail if object with specified OID does not exists. Should be atomic.
deleteObject in interface RepositoryServiceoid - OID of object to deleteresult - parent OperationResult (in/out)
ObjectNotFoundException - specified object does not exist
@Deprecated
public void claimTask(java.lang.String oid,
OperationResult result)
throws ObjectNotFoundException,
ConcurrencyException,
SchemaException
RepositoryServiceClaim a task.
The task can be claimed only by a single node in the cluster. Attempt to claim an already claimed task results in an exception. The claim must be atomic. It is kind of a lock for the system.
claimTask in interface RepositoryServiceoid - task OIDresult - parentResult parent OperationResult (in/out)
ObjectNotFoundException - the task with specified OID was not found
ConcurrencyException - attempt to claim already claimed task
SchemaException - error dealing with storage schema
@Deprecated
public void releaseTask(java.lang.String oid,
OperationResult result)
throws ObjectNotFoundException,
SchemaException
RepositoryServiceRelease a claimed task.
Note: Releasing a task that is not claimed is not an error. Warning should be logged, but this should not throw any exception.
releaseTask in interface RepositoryServiceoid - task OIDresult - parentResult parent OperationResult (in/out)
ObjectNotFoundException - the task with specified OID was not found
SchemaException - error dealing with storage schema
public <T extends ObjectType> int countObjects(java.lang.Class<T> type,
ObjectQuery query,
OperationResult result)
countObjects in interface RepositoryService
public <T extends ObjectType> java.util.List<PrismObject<T>> searchObjects(java.lang.Class<T> type,
ObjectQuery query,
OperationResult result)
throws SchemaException
RepositoryServiceSearch for objects in the repository.
If no search criteria specified, list objects of specified type is returned.
Searches through all object types. Returns a list of objects that match search criteria.
Returns empty list if object type is correct but there are no objects of that type. The ordering of the results is not significant and may be arbitrary unless sorting in the paging is used.
Should fail if object type is wrong. Should fail if unknown property is specified in the query.
searchObjects in interface RepositoryServicequery - search queryresult - parent OperationResult (in/out)
SchemaException - unknown property used in search query
public <T extends ObjectType> void modifyObject(java.lang.Class<T> type,
java.lang.String oid,
java.util.Collection<? extends ItemDelta> modifications,
OperationResult result)
throws ObjectNotFoundException,
SchemaException,
ObjectAlreadyExistsException
RepositoryServiceModifies object using relative change description.
Must fail if user with provided OID does not exists. Must fail if any of the described changes cannot be applied. Should be atomic.If two or more modify operations are executed in parallel, the operations should be merged. In case that the operations are in conflict (e.g. one operation adding a value and the other removing the same value), the result is not deterministic.
The operation may fail if the modified object does not conform to the underlying schema of the storage system or the schema enforced by the implementation.
TODO: optimistic locking
modifyObject in interface RepositoryServiceresult - parent OperationResult (in/out)
ObjectNotFoundException - specified object does not exist
SchemaException - resulting object would violate the schema
ObjectAlreadyExistsException - if resulting object would have name which already exists in another object of the same type
public <T extends ResourceObjectShadowType> java.util.List<PrismObject<T>> listResourceObjectShadows(java.lang.String resourceOid,
java.lang.Class<T> resourceObjectShadowType,
OperationResult result)
throws ObjectNotFoundException
RepositoryServiceSearch for resource object shadows of a specified type that belong to the specified resource.
Returns a list of such object shadows or empty list if nothing was found.
Implements the backward "has" association between resource and resource object shadows. Forward association is implemented by property "resource" of resource object shadow.
May only be called with OID of Resource object.
listResourceObjectShadows in interface RepositoryServiceresourceOid - OID of resource definition (ResourceType)result - parentResult parent OperationResult (in/out)
ObjectNotFoundException - specified object does not exist
|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||