public abstract class TstAbstractConnector extends Object implements CreateOp, SearchOp<Filter>, SyncOp, DeleteOp
Modifier and Type | Field and Description |
---|---|
protected TstStatefulConnectorConfig |
config |
Constructor and Description |
---|
TstAbstractConnector() |
Modifier and Type | Method and Description |
---|---|
Uid |
create(ObjectClass objectClass,
Set<Attribute> createAttributes,
OperationOptions options)
The
Connector developer is responsible for taking the attributes
given (which always includes the ObjectClass ) and create an
object and its Uid . |
FilterTranslator<Filter> |
createFilterTranslator(ObjectClass objectClass,
OperationOptions options)
Creates a filter translator that will translate a specified
Filter into one or more native queries. |
void |
delete(ObjectClass objectClass,
Uid uid,
OperationOptions options)
The
Connector developer is responsible for calling the native
delete methods to remove the object specified by its unique id. |
void |
executeQuery(ObjectClass objectClass,
Filter query,
ResultsHandler handler,
OperationOptions options)
ConnectorFacade calls this method once for each native query that the
SearchOp.createFilterTranslator(ObjectClass, OperationOptions) produces in response to the
Filter passed into SearchApiOp.search(org.identityconnectors.framework.common.objects.ObjectClass, org.identityconnectors.framework.common.objects.filter.Filter, org.identityconnectors.framework.common.objects.ResultsHandler, org.identityconnectors.framework.common.objects.OperationOptions) . |
SyncToken |
getLatestSyncToken(ObjectClass objectClass)
Returns the token corresponding to the most recent synchronization event.
|
void |
init(Configuration cfg) |
void |
sync(ObjectClass objectClass,
SyncToken token,
SyncResultsHandler handler,
OperationOptions options)
Request synchronization events--i.e., native changes to target objects.
|
protected TstStatefulConnectorConfig config
public void init(Configuration cfg)
public Uid create(ObjectClass objectClass, Set<Attribute> createAttributes, OperationOptions options)
CreateOp
Connector
developer is responsible for taking the attributes
given (which always includes the ObjectClass
) and create an
object and its Uid
.
The Connector
developer must return the Uid
so that the
caller can refer to the created object.
*Note: There will never be a Uid
passed in with the attribute set
for this method. If the resource supports some sort of mutable
Uid
, you should create your own resource-specific attribute for
it, such as unix_uid.
create
in interface CreateOp
objectClass
- the type of object to create. Will never be null.createAttributes
- includes all the attributes necessary to create the resource
object including the ObjectClass
attribute and
Name
attribute.options
- additional options that impact the way this operation is run.
If the caller passes null, the framework will convert this
into an empty set of options, so SPI need not worry about this
ever being null.public void delete(ObjectClass objectClass, Uid uid, OperationOptions options)
DeleteOp
Connector
developer is responsible for calling the native
delete methods to remove the object specified by its unique id.delete
in interface DeleteOp
objectClass
- type of object to delete.uid
- The unique id that specifies the object to delete.options
- additional options that impact the way this operation is run.
If the caller passes null, the framework will convert this
into an empty set of options, so SPI need not worry about this
ever being null.public FilterTranslator<Filter> createFilterTranslator(ObjectClass objectClass, OperationOptions options)
SearchOp
Filter
into one or more native queries.
Each of these native queries will be passed subsequently into executeQuery()
.createFilterTranslator
in interface SearchOp<Filter>
objectClass
- The object class for the search. Will never be null.options
- additional options that impact the way this operation is run.
If the caller passes null, the framework will convert this into an empty set of options, so SPI need not worry
about this ever being null.null
. A null
return value will cause the
API (SearchApiOp
) to throw NullPointerException
.public void executeQuery(ObjectClass objectClass, Filter query, ResultsHandler handler, OperationOptions options)
SearchOp
SearchOp.createFilterTranslator(ObjectClass, OperationOptions)
produces in response to the
Filter
passed into SearchApiOp.search(org.identityconnectors.framework.common.objects.ObjectClass, org.identityconnectors.framework.common.objects.filter.Filter, org.identityconnectors.framework.common.objects.ResultsHandler, org.identityconnectors.framework.common.objects.OperationOptions)
.
If the FilterTranslator
produces more than one native query, then ConnectorFacade will automatically
merge the results from each query and eliminate any duplicates. NOTE that this implies an in-memory data
structure that holds a set of Uid values, so memory usage in the event of multiple queries will be O(N) where N
is the number of results. This is why it is important that the FilterTranslator for each Connector implement OR
if possible.executeQuery
in interface SearchOp<Filter>
objectClass
- The object class for the search. Will never be null.query
- The native query to run. A value of null means "return every instance of the given object class".handler
- Results should be returned to this handleroptions
- Additional options that impact the way this operation is run. If the caller passes null, the
framework will convert this into an empty set of options, so SPI need not guard against options being null.public void sync(ObjectClass objectClass, SyncToken token, SyncResultsHandler handler, OperationOptions options)
SyncOp
This method will call the specified handler once to pass back each matching synchronization event. Once this method returns, this method will no longer invoke the specified handler.
Each synchronization event contains a
token that can be used to resume reading events starting from that
point in the event stream. In typical usage, a client will save the
token from the final synchronization event that was received from one
invocation of this sync()
method and then pass that token into
that client's next call to this sync()
method. This allows a
client to "pick up where he left off" in receiving synchronization
events. However, a client can pass the token from any
synchronization event into a subsequent invocation of this sync()
method. This will return synchronization events (that represent native
changes that occurred) immediately subsequent to the event from which the
client obtained the token.
A client that wants to read synchronization events "starting now" can
call SyncOp.getLatestSyncToken(org.identityconnectors.framework.common.objects.ObjectClass)
and then pass that token into this
sync()
method.
sync
in interface SyncOp
objectClass
- The class of object for which to return synchronization
events. Must not be null.token
- The token representing the last token from the previous sync.
The SyncResultsHandler
will return any number of
SyncDelta objects, each of which contains a
token. Should be null
if this is the client's first
call to the sync()
method for this connector.handler
- The result handler. Must not be null.options
- Options that affect the way this operation is run. If the
caller passes null
, the framework will convert this
into an empty set of options, so an implementation need not
guard against this being null.public SyncToken getLatestSyncToken(ObjectClass objectClass)
SyncOp
An application that wants to receive synchronization events "starting now" --i.e., wants to receive only native changes that occur after this method is called-- should call this method and then pass the resulting token into the sync() method.
getLatestSyncToken
in interface SyncOp
objectClass
- the class of object for which to find the most recent
synchronization event (if any). Must not be null.null
.Copyright © 2019. All rights reserved.