Class DefaultLdapCodecService
- java.lang.Object
-
- org.apache.directory.api.ldap.codec.osgi.DefaultLdapCodecService
-
- All Implemented Interfaces:
LdapApiService
- Direct Known Subclasses:
StandaloneLdapApiService
public class DefaultLdapCodecService extends Object implements LdapApiService
The defaultLdapApiService
implementation.- Version:
- $Rev$, $Date$
- Author:
- Apache Directory Project
-
-
Field Summary
-
Fields inherited from interface org.apache.directory.api.ldap.codec.api.LdapApiService
DEFAULT_PROTOCOL_CODEC_FACTORY
-
-
Constructor Summary
Constructors Constructor Description DefaultLdapCodecService()
Creates a new instance of DefaultLdapCodecService.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description ExtendedRequestDecorator<?>
decorate(ExtendedRequest decoratedMessage)
Decorates an extended request message, ie encapsulate it into a class that do the encoding/decodingExtendedResponseDecorator<?>
decorate(ExtendedResponse decoratedMessage)
Decorates an extended response message, ie encapsulate it into a class that do the encoding/decodingIntermediateResponseDecorator<?>
decorate(IntermediateResponse decoratedMessage)
Decorates an intermediate response message, ie encapsulate it into a class that do the encoding/decodingExtendedRequest
fromJndi(ExtendedRequest jndiRequest)
Creates a model ExtendedResponse from the JNDI ExtendedRequest.ExtendedResponse
fromJndi(ExtendedResponse jndiResponse)
Creates a model ExtendedResponse from the JNDI ExtendedResponse.Control
fromJndiControl(Control control)
Creates a model control from the JNDI control.Map<String,ControlFactory<? extends Control>>
getControlFactories()
Map<String,ExtendedOperationFactory>
getExtendedOperationFactories()
Map<String,IntermediateResponseFactory>
getIntermediateResponseFactories()
org.apache.mina.filter.codec.ProtocolCodecFactory
getProtocolCodecFactory()
Creates a new LDAPProtocolCodecFactory
.boolean
isControlRegistered(String oid)
Checks if a control has been registered.boolean
isExtendedOperationRegistered(String oid)
Checks to see if an extended operation, either a standard request response, pair or just an unsolicited response is registered.boolean
isIntermediateResponseRegistered(String oid)
Checks to see if an intermediate response is registered.CodecControl<? extends Control>
newControl(String oid)
Creates a new codec control decorator of the specified type.CodecControl<? extends Control>
newControl(Control control)
Creates a new codec control decorator for the provided control.ExtendedRequest
newExtendedRequest(String oid, byte[] value)
Creates a new ExtendedRequest instance.<E extends ExtendedResponse>
EnewExtendedResponse(String responseName, int messageId, byte[] serializedResponse)
Create an instance of a ExtendedResponse, knowing its OID.<I extends IntermediateResponse>
InewIntermediateResponse(String responseName, int messageId, byte[] serializedResponse)
Create an instance of a IntermediateResponse, knowing its OID.Asn1Container
newMessageContainer()
Creates a new MessageContainer.ControlFactory<?>
registerControl(ControlFactory<?> factory)
Registers anControlFactory
with this service.Iterator<String>
registeredControls()
Returns an Iterator over the OID Strings of registered controls.Iterator<String>
registeredExtendedRequests()
Returns an Iterator over the OID Strings of registered extended requests.Iterator<String>
registeredIntermediateResponses()
Returns an Iterator over the OID Strings of registered intermediate responses.ExtendedOperationFactory
registerExtendedRequest(ExtendedOperationFactory factory)
Registers anExtendedOperationFactory
for generating extended request response pairs.IntermediateResponseFactory
registerIntermediateResponse(IntermediateResponseFactory factory)
Registers anIntermediateResponseFactory
for generating intermediate responseorg.apache.mina.filter.codec.ProtocolCodecFactory
registerProtocolCodecFactory(org.apache.mina.filter.codec.ProtocolCodecFactory protocolCodecFactory)
Registers a ProtocolCodecFactory with this LdapCodecService.void
setControlFactories(Map<String,ControlFactory<? extends Control>> controlFactories)
void
setExtendedOperationFactories(Map<String,ExtendedOperationFactory> extendedOperationFactories)
void
setIntermediateResponseFactories(Map<String,IntermediateResponseFactory> intermediateResponseFactories)
void
setProtocolCodecFactory(org.apache.mina.filter.codec.ProtocolCodecFactory protocolCodecFactory)
ExtendedRequest
toJndi(ExtendedRequest modelRequest)
Creates a JNDIExtendedRequest
from the modelExtendedRequest
.ExtendedResponse
toJndi(ExtendedResponse modelResponse)
Creates a JNDIExtendedResponse
from the modelExtendedResponse
.Control
toJndiControl(Control control)
Creates a JNDI control from the ldap model's control.ControlFactory<?>
unregisterControl(String oid)
Unregisters anControlFactory
with this service.ExtendedOperationFactory
unregisterExtendedRequest(String oid)
Unregisters anExtendedOperationFactory
for generating extended request response pairs.IntermediateResponseFactory
unregisterIntermediateResponse(String oid)
Unregisters anIntermediateResponseFactory
for generating intermediate response
-
-
-
Constructor Detail
-
DefaultLdapCodecService
public DefaultLdapCodecService()
Creates a new instance of DefaultLdapCodecService.
-
-
Method Detail
-
registerControl
public ControlFactory<?> registerControl(ControlFactory<?> factory)
Registers anControlFactory
with this service.- Specified by:
registerControl
in interfaceLdapApiService
- Parameters:
factory
- The control factory- Returns:
- The registred control factory
-
unregisterControl
public ControlFactory<?> unregisterControl(String oid)
Unregisters anControlFactory
with this service.- Specified by:
unregisterControl
in interfaceLdapApiService
- Parameters:
oid
- The oid of the control the factory is associated with.- Returns:
- The unregistred control factory
-
registeredControls
public Iterator<String> registeredControls()
Returns an Iterator over the OID Strings of registered controls.- Specified by:
registeredControls
in interfaceLdapApiService
- Returns:
- The registered control OID Strings
-
isControlRegistered
public boolean isControlRegistered(String oid)
Checks if a control has been registered.- Specified by:
isControlRegistered
in interfaceLdapApiService
- Parameters:
oid
- The Control OID we are looking for- Returns:
- The OID of the control to check for registration
-
registeredExtendedRequests
public Iterator<String> registeredExtendedRequests()
Returns an Iterator over the OID Strings of registered extended requests.- Specified by:
registeredExtendedRequests
in interfaceLdapApiService
- Returns:
- The registered extended request OID Strings
-
registerExtendedRequest
public ExtendedOperationFactory registerExtendedRequest(ExtendedOperationFactory factory)
Registers anExtendedOperationFactory
for generating extended request response pairs.- Specified by:
registerExtendedRequest
in interfaceLdapApiService
- Parameters:
factory
- The extended request factory- Returns:
- The displaced factory if one existed for the oid
-
registeredIntermediateResponses
public Iterator<String> registeredIntermediateResponses()
Returns an Iterator over the OID Strings of registered intermediate responses.- Specified by:
registeredIntermediateResponses
in interfaceLdapApiService
- Returns:
- The registered Intermediate response OID Strings
-
registerIntermediateResponse
public IntermediateResponseFactory registerIntermediateResponse(IntermediateResponseFactory factory)
Registers anIntermediateResponseFactory
for generating intermediate response- Specified by:
registerIntermediateResponse
in interfaceLdapApiService
- Parameters:
factory
- The intermediate response factory- Returns:
- The displaced factory if one existed for the oid
-
getProtocolCodecFactory
public org.apache.mina.filter.codec.ProtocolCodecFactory getProtocolCodecFactory()
Creates a new LDAPProtocolCodecFactory
.- Specified by:
getProtocolCodecFactory
in interfaceLdapApiService
- Returns:
- the
ProtocolCodecFactory
-
registerProtocolCodecFactory
public org.apache.mina.filter.codec.ProtocolCodecFactory registerProtocolCodecFactory(org.apache.mina.filter.codec.ProtocolCodecFactory protocolCodecFactory)
Registers a ProtocolCodecFactory with this LdapCodecService.- Specified by:
registerProtocolCodecFactory
in interfaceLdapApiService
- Parameters:
protocolCodecFactory
- The factory being registered.- Returns:
- The previously set
ProtocolCodecFactory
, or null if none had been set earlier.
-
newControl
public CodecControl<? extends Control> newControl(String oid)
Creates a new codec control decorator of the specified type.- Specified by:
newControl
in interfaceLdapApiService
- Parameters:
oid
- The OID of the new control to create.- Returns:
- The newly created codec control.
-
newControl
public CodecControl<? extends Control> newControl(Control control)
Creates a new codec control decorator for the provided control.- Specified by:
newControl
in interfaceLdapApiService
- Parameters:
control
- The control the codec control is generated for.- Returns:
- The newly created codec control.
-
toJndiControl
public Control toJndiControl(Control control) throws EncoderException
Creates a JNDI control from the ldap model's control.- Specified by:
toJndiControl
in interfaceLdapApiService
- Parameters:
control
- The model's control.- Returns:
- The JNDI control.
- Throws:
EncoderException
- if there are problems encoding the modelControl.
-
fromJndiControl
public Control fromJndiControl(Control control) throws DecoderException
Creates a model control from the JNDI control.- Specified by:
fromJndiControl
in interfaceLdapApiService
- Parameters:
control
- The JNDI control.- Returns:
- The model control.
- Throws:
DecoderException
- if there are problems decoding the value of the JNDI control.
-
newMessageContainer
public Asn1Container newMessageContainer()
Creates a new MessageContainer.- Specified by:
newMessageContainer
in interfaceLdapApiService
- Returns:
- The newly created LDAP MessageContainer instance.
-
unregisterExtendedRequest
public ExtendedOperationFactory unregisterExtendedRequest(String oid)
Unregisters anExtendedOperationFactory
for generating extended request response pairs.- Specified by:
unregisterExtendedRequest
in interfaceLdapApiService
- Parameters:
oid
- The extended request oid- Returns:
- The displaced factory if one existed for the oid
-
unregisterIntermediateResponse
public IntermediateResponseFactory unregisterIntermediateResponse(String oid)
Unregisters anIntermediateResponseFactory
for generating intermediate response- Specified by:
unregisterIntermediateResponse
in interfaceLdapApiService
- Parameters:
oid
- The intermediate response oid- Returns:
- The displaced factory if one existed for the oid
-
toJndi
public ExtendedResponse toJndi(ExtendedResponse modelResponse) throws EncoderException
Creates a JNDIExtendedResponse
from the modelExtendedResponse
.- Specified by:
toJndi
in interfaceLdapApiService
- Parameters:
modelResponse
- The extended response to convert- Returns:
- A JNDI extended response
- Throws:
EncoderException
- If the conversion failed
-
fromJndi
public ExtendedResponse fromJndi(ExtendedResponse jndiResponse) throws DecoderException
Creates a model ExtendedResponse from the JNDI ExtendedResponse.- Specified by:
fromJndi
in interfaceLdapApiService
- Parameters:
jndiResponse
- The JNDI ExtendedResponse- Returns:
- The model ExtendedResponse
- Throws:
DecoderException
- if the response value cannot be decoded.
-
fromJndi
public ExtendedRequest fromJndi(ExtendedRequest jndiRequest) throws DecoderException
Creates a model ExtendedResponse from the JNDI ExtendedRequest.- Specified by:
fromJndi
in interfaceLdapApiService
- Parameters:
jndiRequest
- The JNDI ExtendedRequest- Returns:
- The model ExtendedRequest
- Throws:
DecoderException
- if the request value cannot be decoded.
-
toJndi
public ExtendedRequest toJndi(ExtendedRequest modelRequest) throws EncoderException
Creates a JNDIExtendedRequest
from the modelExtendedRequest
.- Specified by:
toJndi
in interfaceLdapApiService
- Parameters:
modelRequest
- The extended request to convert- Returns:
- A JNDI extended request
- Throws:
EncoderException
- If the conversion failed
-
newExtendedResponse
public <E extends ExtendedResponse> E newExtendedResponse(String responseName, int messageId, byte[] serializedResponse) throws DecoderException
Create an instance of a ExtendedResponse, knowing its OID. Inject the payload into it.- Specified by:
newExtendedResponse
in interfaceLdapApiService
- Type Parameters:
E
- The extended response type- Parameters:
responseName
- The extendedRespose OIDmessageId
- The original message IDserializedResponse
- The serialized response payload- Returns:
- The extendedResponse instance
- Throws:
DecoderException
- If the payload is incorrect
-
newExtendedRequest
public ExtendedRequest newExtendedRequest(String oid, byte[] value)
Creates a new ExtendedRequest instance.- Specified by:
newExtendedRequest
in interfaceLdapApiService
- Parameters:
oid
- the extended request's object identifiervalue
- the encoded value of the extended request- Returns:
- The new extended request
-
newIntermediateResponse
public <I extends IntermediateResponse> I newIntermediateResponse(String responseName, int messageId, byte[] serializedResponse) throws DecoderException
Create an instance of a IntermediateResponse, knowing its OID. Inject the payload into it.- Specified by:
newIntermediateResponse
in interfaceLdapApiService
- Type Parameters:
I
- The intermediate response type- Parameters:
responseName
- The intermediateRespose OIDmessageId
- The original message IDserializedResponse
- The serialized response payload- Returns:
- The intermediateResponse instance
- Throws:
DecoderException
- If the payload is incorrect
-
decorate
public ExtendedRequestDecorator<?> decorate(ExtendedRequest decoratedMessage)
Decorates an extended request message, ie encapsulate it into a class that do the encoding/decoding- Specified by:
decorate
in interfaceLdapApiService
- Parameters:
decoratedMessage
- The extended request to decorate- Returns:
- The decorated extended request
-
decorate
public ExtendedResponseDecorator<?> decorate(ExtendedResponse decoratedMessage)
Decorates an extended response message, ie encapsulate it into a class that do the encoding/decoding- Specified by:
decorate
in interfaceLdapApiService
- Parameters:
decoratedMessage
- The extended response to decorate- Returns:
- The decorated extended response
-
decorate
public IntermediateResponseDecorator<?> decorate(IntermediateResponse decoratedMessage)
Decorates an intermediate response message, ie encapsulate it into a class that do the encoding/decoding- Specified by:
decorate
in interfaceLdapApiService
- Parameters:
decoratedMessage
- The intermediate response to decorate- Returns:
- The decorated intermediate response
-
isExtendedOperationRegistered
public boolean isExtendedOperationRegistered(String oid)
Checks to see if an extended operation, either a standard request response, pair or just an unsolicited response is registered.- Specified by:
isExtendedOperationRegistered
in interfaceLdapApiService
- Parameters:
oid
- The object identifier for the extended operation- Returns:
- true if registered, false if not
-
isIntermediateResponseRegistered
public boolean isIntermediateResponseRegistered(String oid)
Checks to see if an intermediate response is registered.- Specified by:
isIntermediateResponseRegistered
in interfaceLdapApiService
- Parameters:
oid
- The object identifier for the intermediate response- Returns:
- true if registered, false if not
-
getControlFactories
public Map<String,ControlFactory<? extends Control>> getControlFactories()
- Returns:
- the controlFactories
-
setControlFactories
public void setControlFactories(Map<String,ControlFactory<? extends Control>> controlFactories)
- Parameters:
controlFactories
- the controlFactories to set
-
getExtendedOperationFactories
public Map<String,ExtendedOperationFactory> getExtendedOperationFactories()
- Returns:
- the extendedOperationFactories
-
getIntermediateResponseFactories
public Map<String,IntermediateResponseFactory> getIntermediateResponseFactories()
- Returns:
- the intermediateResponseFactories
-
setExtendedOperationFactories
public void setExtendedOperationFactories(Map<String,ExtendedOperationFactory> extendedOperationFactories)
- Parameters:
extendedOperationFactories
- the extendedOperationFactories to set
-
setIntermediateResponseFactories
public void setIntermediateResponseFactories(Map<String,IntermediateResponseFactory> intermediateResponseFactories)
- Parameters:
intermediateResponseFactories
- the intermediateResponseFactories to set
-
setProtocolCodecFactory
public void setProtocolCodecFactory(org.apache.mina.filter.codec.ProtocolCodecFactory protocolCodecFactory)
- Parameters:
protocolCodecFactory
- the protocolCodecFactory to set
-
-