|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
public interface OpProcessor
Defines basic JNDI operations (with the addition of some more
specialised arguments) allowing operation-specific processor
implementations. Argument names must be kept in agreement with
OpBindingsHelper.
| Nested Class Summary | |
|---|---|
static class |
OpProcessor.MethodName
An enumeration matching methods which can be targeted by OpBindings in this class. |
| Method Summary | |
|---|---|
void |
doAdd(ObjectInfo objInfo,
Attributes attrs)
Create a new object on the managed system with the provided attributes stored for it. |
void |
doDelete(ObjectInfo objInfo)
Delete the object referenced by objInfo from a managed system. |
Attributes |
doLookUp(ObjectInfo objInfo,
String[] attrIds)
Look up the provided attribute names on the managed object referenced by objInfo,
attribute ids not mapped to connector-speak will either be discarded or cause an error depending
on the level of strictness configured for the parent connector. |
void |
doModify(ObjectInfo objInfo,
ModificationItem[] modItems)
Apply the provided items to the object on the managed system referenced by
objInfo. |
void |
doModifyRn(ObjectInfo objInfo,
Rdn newRdn)
Rename the managed object referenced by objInfo so that it has the new
Relative Distinguished Name (RDN) provided (an example newRdn might be
nameAttrId=MyNewName). |
void |
doMove(ObjectInfo objInfo,
Name newParentName,
Rdn newRdn)
Move the managed object referenced by objInfo to a new parent whilst
also changing its RDN (of form "attr=value"). |
NamingEnumeration<SearchResult> |
doSearch(ObjectInfo baseObjInfo,
FilterInfo filterInfo,
Map<String,String> environment,
SearchControls searchControls)
Perform search under specified baseName on managed system, using the standard
JNDI interfaces and semantics. |
| Method Detail |
|---|
@OpBindingMethod(operation=DELETE)
void doDelete(ObjectInfo objInfo)
throws NamingException
objInfo from a managed system.
Called by Partition.delete(org.apache.directory.shared.ldap.name.LdapDN)
after mapping/validation/type conversion has been performed.
objInfo - References managed object to be deleted.
LdapNameNotFoundException - (or
NameNotFoundException) when target object doesn't exist.
NamingException - (usually exception should implement
LdapException or arrangements to map it into
such an exception should be in place). Pay attention to
retriable exceptions as documented in RetryOpProcessorProxy.
@OpBindingMethod(operation=ADD)
void doAdd(ObjectInfo objInfo,
Attributes attrs)
throws NamingException
Partition.add(org.apache.directory.shared.ldap.name.LdapDN, javax.naming.directory.Attributes)
after mapping has been performed.
objInfo - Contains information for the managed object which is to be created,
where its connector-speak distinguished Name (DN) is dictated by
objInfo.getConnectorDn() and its objectClass= is
dictated by objInfo.getobjectClassMapping().attrs - Attributes to be stored on the managed object.
LdapNameAlreadyBoundException - Should be thrown if an object
with the specified name already exists, other NamingExceptions (preferably
implementing LdapException) may also be thrown. Pay attention to
retriable exceptions as documented in RetryOpProcessorProxy.
NamingException - (usually exception should implement
LdapException or arrangements to map it into
such an exception should be in place). Pay attention to
retriable exceptions as documented in RetryOpProcessorProxy.
@OpBindingMethod(operation=MODIFY)
void doModify(ObjectInfo objInfo,
ModificationItem[] modItems)
throws NamingException
items to the object on the managed system referenced by
objInfo.
Called by Partition.modify(org.apache.directory.shared.ldap.name.LdapDN, int, javax.naming.directory.Attributes)
after mapping has been performed.
objInfo - References managed object which is to be modified.modItems - Items to be modified.
LdapNameNotFoundException - (or
NameNotFoundException) when target object doesn't exist.
NamingException - (usually exception should implement
LdapException or arrangements to map it into
such an exception should be in place). Pay attention to
retriable exceptions as documented in RetryOpProcessorProxy.
@OpBindingMethod(operation=SEARCH)
NamingEnumeration<SearchResult> doSearch(ObjectInfo baseObjInfo,
FilterInfo filterInfo,
Map<String,String> environment,
SearchControls searchControls)
throws NamingException
baseName on managed system, using the standard
JNDI interfaces and semantics. All values (DN/filter/return attribute ids) have been mapped into
connector-speak by the time this method is called.
Called by
Partition.search(org.apache.directory.shared.ldap.name.LdapDN, java.util.Map, org.apache.directory.shared.ldap.filter.ExprNode, javax.naming.directory.SearchControls)
with mapping performed on the result entries to map/convert them from connector-speak to
LDAP.
baseObjInfo - Specifies base object for the search, scope in searchControls
is relative to this object.filterInfo - Information regarding the filter to be used for the search,
including referenced objectClass= values. Note that attribute names have been converted
to connector-speak and any required validators/converters have been run by the framework
prior to this method being invoked. The filter's text can be retrieved via
ExprNode.printToBuffer(StringBuffer) on
contained mappedFilter. If required this mappedFilter can
be converted to a different syntax, refer to SimpleFilterVisitor /
FilterVisitor and related classes.environment - Defines any values effecting how the search is performed (eg whether to follow
referrals etc). Can usually be ignored.searchControls - Defines important information about the search itself, for instance what
scope the search should have under baseName and which attributes should be returned
for each object matching the provided filter. Note that specifying a null String[] for the returned
attributes will cause all non-expensive attributes to be returned for each matching objects, whereas
specifying String[0] will cause not attributes to be returned except for the DNs of matching objects.
SearchResult objects, one per object falling within the specified scope
under baseName which matches the provided filter. Results can be handled in two different
manners depending on the connector's requirement (indeed, an advanced connector can implement both and
choose the best one based on heuristics and a threshold):doSearch() call has returned.LdapNameNotFoundException - (or
NameNotFoundException) when target object doesn't exist.
NamingException - (usually exception should implement
LdapException or arrangements to map it into
such an exception should be in place). Pay attention to
retriable exceptions as documented in RetryOpProcessorProxy.
@OpBindingMethod(operation=LOOKUP)
Attributes doLookUp(ObjectInfo objInfo,
String[] attrIds)
throws NamingException
objInfo,
attribute ids not mapped to connector-speak will either be discarded or cause an error depending
on the level of strictness configured for the parent connector. Extra attributes may also be
returned.
Called by Partition.lookup(org.apache.directory.shared.ldap.name.LdapDN)
after mapping has been performed.
objInfo - Managed object for which attributes are to be looked up.attrIds - Connector-speak identifiers of attributes which are to be returned, null
means return all attributes and a zero length array means return no attributes (just
a way to check an object's existance).
attrIds, can be null when the target object exists
but has none of the requested
LdapNameNotFoundException - (or
NameNotFoundException) when target object doesn't exist.
NamingException - (usually exception should implement
LdapException or arrangements to map it into
such an exception should be in place). Pay attention to
retriable exceptions as documented in RetryOpProcessorProxy.
@OpBindingMethod(operation=MODIFY_RN)
void doModifyRn(ObjectInfo objInfo,
Rdn newRdn)
throws NamingException
objInfo so that it has the new
Relative Distinguished Name (RDN) provided (an example newRdn might be
nameAttrId=MyNewName).
Called by Partition.modifyRn(org.apache.directory.shared.ldap.name.LdapDN, java.lang.String, boolean)
after mapping has been performed.
objInfo - References managed object.newRdn - New terminal name (having form "attr=val") for managed object.
LdapNameNotFoundException - (or
NameNotFoundException) when target object doesn't exist.
NamingException - (usually exception should implement
LdapException or arrangements to map it into
such an exception should be in place). Pay attention to
retriable exceptions as documented in RetryOpProcessorProxy.
@OpBindingMethod(operation=MOVE)
void doMove(ObjectInfo objInfo,
Name newParentName,
Rdn newRdn)
throws NamingException
objInfo to a new parent whilst
also changing its RDN (of form "attr=value").
Called by Partition.move(org.apache.directory.shared.ldap.name.LdapDN, org.apache.directory.shared.ldap.name.LdapDN, String, boolean)
after mapping has been performed.
objInfo - References managed object to be moved.newParentName - New parent for managed object.newRdn - New relative distinguished name (RDN) for managed object, will be
either be null (just a move) or different from the object's current RDN (move and rename).
LdapNameNotFoundException - (or
NameNotFoundException) when target object doesn't exist.
NamingException - (usually exception should implement
LdapException or arrangements to map it into
such an exception should be in place). Pay attention to
retriable exceptions as documented in RetryOpProcessorProxy.
|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||