com.evolveum.midpoint.model
Class ModelWebService
java.lang.Object
com.evolveum.midpoint.model.ModelWebService
- All Implemented Interfaces:
- ModelPort, ModelPortType
@Service
public class ModelWebService
- extends java.lang.Object
- implements ModelPortType, ModelPort
- Author:
- lazyman
Fields inherited from interface com.evolveum.midpoint.model.api.ModelPort |
ADD_OBJECT, CLASS_NAME_WITH_DOT, DELETE_OBJECT, GET_OBJECT, GET_PROPERTY_AVAILABLE_VALUES, IMPORT_FROM_RESOURCE, LIST_ACCOUNT_SHADOW_OWNER, LIST_OBJECTS, LIST_RESOURCE_OBJECT_SHADOWS, LIST_RESOURCE_OBJECTS, MODIFY_OBJECT, SEARCH_OBJECTS, TEST_RESOURCE |
Method Summary |
void |
addObject(ObjectType object,
javax.xml.ws.Holder<java.lang.String> oidHolder,
javax.xml.ws.Holder<OperationResultType> result)
Add new object. |
OperationResultType |
deleteObject(java.lang.String objectTypeUri,
java.lang.String oid)
Deleted object with provided OID. |
void |
getObject(java.lang.String objectTypeUri,
java.lang.String oid,
PropertyReferenceListType resolve,
javax.xml.ws.Holder<ObjectType> objectHolder,
javax.xml.ws.Holder<OperationResultType> resultHolder)
Returns object for provided OID. |
void |
getPropertyAvailableValues(java.lang.String oid,
PropertyReferenceListType properties,
javax.xml.ws.Holder<PropertyAvailableValuesListType> propertyAvailableValuesListHolder,
javax.xml.ws.Holder<OperationResultType> result)
Returns list of available values for specified properties. |
TaskType |
importFromResource(java.lang.String resourceOid,
javax.xml.namespace.QName objectClass)
TODO: update description
Launch import task that will import all the accounts from the
resource. |
void |
listAccountShadowOwner(java.lang.String accountOid,
javax.xml.ws.Holder<UserType> userHolder,
javax.xml.ws.Holder<OperationResultType> result)
Returns the User object representing owner of specified account
(account shadow). |
void |
listObjects(java.lang.String objectType,
PagingType paging,
javax.xml.ws.Holder<ObjectListType> objectListHolder,
javax.xml.ws.Holder<OperationResultType> result)
Returns all objects of specified type in the repository. |
void |
listResourceObjects(java.lang.String resourceOid,
javax.xml.namespace.QName objectType,
PagingType paging,
javax.xml.ws.Holder<ObjectListType> objectListTypeHolder,
javax.xml.ws.Holder<OperationResultType> result)
WARNING:
This operation should not be here. |
void |
listResourceObjectShadows(java.lang.String resourceOid,
java.lang.String resourceObjectShadowType,
javax.xml.ws.Holder<ResourceObjectShadowListType> resourceObjectShadowListHolder,
javax.xml.ws.Holder<OperationResultType> result)
Search for resource object shadows of a specified type that
belong to the specified resource. |
OperationResultType |
modifyObject(java.lang.String objectTypeUri,
ObjectModificationType change)
Modifies object using relative change description. |
void |
searchObjects(java.lang.String objectTypeUri,
QueryType query,
PagingType paging,
javax.xml.ws.Holder<ObjectListType> objectListHolder,
javax.xml.ws.Holder<OperationResultType> result)
Search for objects in the repository. |
OperationResultType |
testResource(java.lang.String resourceOid)
WARNING:
This operation should not be here. |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
ModelWebService
public ModelWebService()
addObject
public void addObject(ObjectType object,
javax.xml.ws.Holder<java.lang.String> oidHolder,
javax.xml.ws.Holder<OperationResultType> result)
throws FaultMessage
- Description copied from interface:
ModelPortType
- Add 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
comform to the underlying schema of the storage system or the
schema enforced by the implementation.
Faults:
any SystemFaultType
ObjectAlreadyExistsFaultType
IllegalArgumentFaultType: wrong OID format
SchemaViolationFaultType: provided object violates datastore schema
- Specified by:
addObject
in interface ModelPortType
- Throws:
FaultMessage
getObject
public void getObject(java.lang.String objectTypeUri,
java.lang.String oid,
PropertyReferenceListType resolve,
javax.xml.ws.Holder<ObjectType> objectHolder,
javax.xml.ws.Holder<OperationResultType> resultHolder)
throws FaultMessage
- Description copied from interface:
ModelPortType
- Returns object for provided OID.
Must fail if object with the OID does not exists.
Reference resolution is SUPPORTED by this operation.
Faults:
any SystemFaultType
IllegalArgumentFaultType: wrong OID format
ObjectNotFoundFaultType: object with specified OID does not exists
- Specified by:
getObject
in interface ModelPortType
- Throws:
FaultMessage
listObjects
public void listObjects(java.lang.String objectType,
PagingType paging,
javax.xml.ws.Holder<ObjectListType> objectListHolder,
javax.xml.ws.Holder<OperationResultType> result)
throws FaultMessage
- Description copied from interface:
ModelPortType
- Returns all objects of specified type in the repository.
Not very practical, but good for now.
Will be improved later.
Faults:
any SystemFaultType
IllegalArgumentFaultType: wrong object type
- Specified by:
listObjects
in interface ModelPortType
- Throws:
FaultMessage
searchObjects
public void searchObjects(java.lang.String objectTypeUri,
QueryType query,
PagingType paging,
javax.xml.ws.Holder<ObjectListType> objectListHolder,
javax.xml.ws.Holder<OperationResultType> result)
throws FaultMessage
- Description copied from interface:
ModelPortType
- Search for objects in the repository. Searches through all
object types. Returns a list of objects that match search
criteria.
Faults:
any SystemFaultType
IllegalArgumentFaultType: wrong object type
SchemaViolationFaultType: unknown property used in search query
- Specified by:
searchObjects
in interface ModelPortType
- Throws:
FaultMessage
modifyObject
public OperationResultType modifyObject(java.lang.String objectTypeUri,
ObjectModificationType change)
throws FaultMessage
- Description copied from interface:
ModelPortType
- Modifies 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
comform to the underlying schema of the storage system or the
schema enforced by the implementation.
TODO: optimistic locking
Faults:
any SystemFaultType
ObjectNotFoundFaultType: object with specified OID does not exists
IllegalArgumentFaultType: wrong OID format
InapplicableOperationFaultType: decribed change is not applicable
SchemaViolationFaultType: resulting object would violate datastore schema
- Specified by:
modifyObject
in interface ModelPortType
- Throws:
FaultMessage
deleteObject
public OperationResultType deleteObject(java.lang.String objectTypeUri,
java.lang.String oid)
throws FaultMessage
- Description copied from interface:
ModelPortType
- Deleted object with provided OID.
Must fail if object with specified OID does not exists.
Should be atomic.
Faults:
any SystemFaultType
ObjectNotFoundFaultType: object with specified OID does not exists
IllegalArgumentFaultType: wrong OID format
- Specified by:
deleteObject
in interface ModelPortType
- Throws:
FaultMessage
getPropertyAvailableValues
public void getPropertyAvailableValues(java.lang.String oid,
PropertyReferenceListType properties,
javax.xml.ws.Holder<PropertyAvailableValuesListType> propertyAvailableValuesListHolder,
javax.xml.ws.Holder<OperationResultType> result)
throws FaultMessage
- Description copied from interface:
ModelPortType
- Returns list of available values for specified properties.
The returned values can be used as valid values for properties
of the specific object. The provided values can be used e.g.
for listing them in GUI list boxes, for early validation
(pre-validation), displaying help messages, auto-complete, etc.
In case the list of available values is too big or it is not
available, the empty list should be returned, setting the
"closed" flag to false.
This optional operation is SUPPORTED by this interface.
Faults:
any SystemFaultType
UnsupportedObjectTypeFaultType: specified object type is not supported by the interface
ObjectNotFoundFaultType: object with specified OID does not exists
IllegalArgumentFaultType: wrong OID format
- Specified by:
getPropertyAvailableValues
in interface ModelPortType
- Throws:
FaultMessage
listAccountShadowOwner
public void listAccountShadowOwner(java.lang.String accountOid,
javax.xml.ws.Holder<UserType> userHolder,
javax.xml.ws.Holder<OperationResultType> result)
throws FaultMessage
- Description copied from interface:
ModelPortType
- Returns the User object representing owner of specified account
(account shadow).
May return (null?? empty??) object if there is no owner
specified for the account.
Implements the backward "owns" association between account
shadow and user. Forward association is implemented by property
"account" of user object.
Faults:
any SystemFaultType
IllegalArgumentFaultType: wrong OID format
ObjectNotFoundFaultType: object with specified OID does not exists
- Specified by:
listAccountShadowOwner
in interface ModelPortType
- Throws:
FaultMessage
listResourceObjectShadows
public void listResourceObjectShadows(java.lang.String resourceOid,
java.lang.String resourceObjectShadowType,
javax.xml.ws.Holder<ResourceObjectShadowListType> resourceObjectShadowListHolder,
javax.xml.ws.Holder<OperationResultType> result)
throws FaultMessage
- Description copied from interface:
ModelPortType
- Search 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.
Faults:
any SystemFaultType
IllegalArgumentFaultType: wrong OID format
ObjectNotFoundFaultType: object with specified OID does not exists
- Specified by:
listResourceObjectShadows
in interface ModelPortType
- Throws:
FaultMessage
listResourceObjects
public void listResourceObjects(java.lang.String resourceOid,
javax.xml.namespace.QName objectType,
PagingType paging,
javax.xml.ws.Holder<ObjectListType> objectListTypeHolder,
javax.xml.ws.Holder<OperationResultType> result)
throws FaultMessage
- Description copied from interface:
ModelPortType
- WARNING:
This operation should not be here. It is in fact
just a diagnostics methods from the provisioning interface
that need to be accessed from GUI. Do not use it for
anything serious. It will disappear eventually.
Returns all objects of specified type that are available to the
implementation.
Returns empty list if object type is correct but there are no
objects of that type.
Should fail if object type is wrong (e.g. specified type is
not part of resource schema).
This method does NOT use any shadow objects for reference or any
other business objects in the local repository. It goes directly
to the resource.
The returned objects (indirectly) complies with the resource
schema, but it is returned re-formated in a form of detached
shadow object. Although the form is the same as shadow object,
this is NOT really a shadow object because it is not stored in
the repository (it is detached). It does NOT have oid.
The object is identified by whatever identification
properties/attributes are defined by the resource schema.
This method is not required to implement any form of caching,
queueing, reference resolution or any other "smart" algorithm.
any SystemFaultType
IllegalArgumentFaultType: wrong object type
ProvisioningFaultType: ???
Use of this method is not recommended if there is a way how to
do the same using the standard "object access" methods. E.g.
if accounts can be namipulated using account shadows, the
shadows should be used. This method is provided only to support
the rare case that an unknown resource object type should be
used in business logic and for diagnostics reasons.
- Specified by:
listResourceObjects
in interface ModelPortType
- Throws:
FaultMessage
testResource
public OperationResultType testResource(java.lang.String resourceOid)
throws FaultMessage
- Description copied from interface:
ModelPortType
- WARNING:
This operation should not be here. It is in fact
just a diagnostics methods from the provisioning interface
that need to be accessed from GUI. Do not use it for
anything serious. It will disappear eventually.
Test the resouce connection and basic resource connector
functionality.
This operation will NOT raise fault in case the resource
connection fails. It such case it will indicate the failure in
the return message, but the operation itself succeeds.
The operations fails only if the provided arguments are wrong,
in case of system error, system misconfiguration, etc.
Faults:
any SystemFaultType
ObjectNotFoundFaultType: specified Resource definition does not exist
- Specified by:
testResource
in interface ModelPortType
- Throws:
FaultMessage
importFromResource
public TaskType importFromResource(java.lang.String resourceOid,
javax.xml.namespace.QName objectClass)
throws FaultMessage
- Description copied from interface:
ModelPortType
- TODO: update description
Launch import task that will import all the accounts from the
resource.
WARNING: This operation is not considered public. It is a
temporary solution until we have full-featured task management.
It may be removed any time without a warning.
DO NOT USE IT unless you are really sure you know what you
are doing.
Faults:
any SystemFaultType
ObjectNotFoundFaultType: specified Resource definition does not exist
- Specified by:
importFromResource
in interface ModelPortType
- Throws:
FaultMessage
Copyright © 2012 evolveum. All Rights Reserved.