/** * {@inheritDoc} */ @Override public javax.naming.ldap.Control toJndiControl( Control control ) throws EncoderException { CodecControl<? extends Control> decorator = newControl( control ); ByteBuffer bb = ByteBuffer.allocate( decorator.computeLength() ); decorator.encode( bb ); bb.flip(); return new BasicControl( control.getOid(), control.isCritical(), bb.array() ); }
/** * {@inheritDoc} */ @SuppressWarnings("unchecked") @Override public Message addControl( Control control ) { Control decorated; CodecControl<? extends Control> controlDecorator; if ( control instanceof ControlDecorator ) { controlDecorator = ( org.apache.directory.api.ldap.codec.api.CodecControl<? extends Control> ) control; decorated = controlDecorator.getDecorated(); } else { controlDecorator = codec.newControl( control ); decorated = control; } decoratedMessage.addControl( decorated ); controls.put( control.getOid(), controlDecorator ); currentControl = controlDecorator; return this; }
convertedControl = new PagedResultsResponseControl( wrapped.getOid(), wrapped.isCritical(), wrapped.getValue() ); convertedControl = new BasicControl( wrapped.getOid(), wrapped.isCritical(), wrapped.getValue() ); convertedControl = new BasicControl( wrapped.getOid(), wrapped.isCritical(), wrapped.getValue() );
/** * {@inheritDoc} */ @Override public Control fromJndiControl( javax.naming.ldap.Control control ) throws DecoderException { @SuppressWarnings("rawtypes") ControlFactory factory = controlFactories.get( control.getID() ); if ( factory == null ) { OpaqueControl ourControl = new OpaqueControl( control.getID() ); ourControl.setCritical( control.isCritical() ); BasicControlDecorator decorator = new BasicControlDecorator( this, ourControl ); decorator.setValue( control.getEncodedValue() ); return decorator; } @SuppressWarnings("unchecked") CodecControl<? extends Control> ourControl = factory.newCodecControl(); ourControl.setCritical( control.isCritical() ); ourControl.setValue( control.getEncodedValue() ); ourControl.decode( control.getEncodedValue() ); return ourControl; }
/** * Compute the control's encoded length * * @param control The control to compute * @return the encoded control length */ public static int computeControlLength( Control control ) { // First, compute the control's value length int controlValueLength = ( ( CodecControl<?> ) control ).computeLength(); // Now, compute the envelop length // The OID int oidLengh = Strings.getBytesUtf8( control.getOid() ).length; int controlLength = 1 + TLV.getNbBytes( oidLengh ) + oidLengh; // The criticality, only if true if ( control.isCritical() ) { // Always 3 for a boolean controlLength += 1 + 1 + 1; } if ( controlValueLength != 0 ) { controlLength += 1 + TLV.getNbBytes( controlValueLength ) + controlValueLength; } return controlLength; }
control.setCritical( true ); control.setCritical( false );
/** * {@inheritDoc} */ @Override public Control fromJndiControl( javax.naming.ldap.Control control ) throws DecoderException { @SuppressWarnings("rawtypes") ControlFactory factory = controlFactories.get( control.getID() ); if ( factory == null ) { OpaqueControl ourControl = new OpaqueControl( control.getID() ); ourControl.setCritical( control.isCritical() ); BasicControlDecorator decorator = new BasicControlDecorator( this, ourControl ); decorator.setValue( control.getEncodedValue() ); return decorator; } @SuppressWarnings("unchecked") CodecControl<? extends Control> ourControl = factory.newCodecControl(); ourControl.setCritical( control.isCritical() ); ourControl.setValue( control.getEncodedValue() ); ourControl.decode( control.getEncodedValue() ); return ourControl; }
/** * Compute the control's encoded length * * @param control The control to compute * @return the encoded control length */ public static int computeControlLength( Control control ) { // First, compute the control's value length int controlValueLength = ( ( CodecControl<?> ) control ).computeLength(); // Now, compute the envelop length // The OID int oidLengh = Strings.getBytesUtf8( control.getOid() ).length; int controlLength = 1 + TLV.getNbBytes( oidLengh ) + oidLengh; // The criticality, only if true if ( control.isCritical() ) { // Always 3 for a boolean controlLength += 1 + 1 + 1; } if ( controlValueLength != 0 ) { controlLength += 1 + TLV.getNbBytes( controlValueLength ) + controlValueLength; } return controlLength; }
control.setCritical( true ); control.setCritical( false );
/** * {@inheritDoc} */ @Override public Control fromJndiControl( javax.naming.ldap.Control control ) throws DecoderException { @SuppressWarnings("rawtypes") ControlFactory factory = controlFactories.get( control.getID() ); if ( factory == null ) { OpaqueControl ourControl = new OpaqueControl( control.getID() ); ourControl.setCritical( control.isCritical() ); BasicControlDecorator decorator = new BasicControlDecorator( this, ourControl ); decorator.setValue( control.getEncodedValue() ); return decorator; } @SuppressWarnings("unchecked") CodecControl<? extends Control> ourControl = factory.newCodecControl(); ourControl.setCritical( control.isCritical() ); ourControl.setValue( control.getEncodedValue() ); ourControl.decode( control.getEncodedValue() ); return ourControl; }
/** * {@inheritDoc} */ @Override public javax.naming.ldap.Control toJndiControl( Control control ) throws EncoderException { CodecControl<? extends Control> decorator = newControl( control ); ByteBuffer bb = ByteBuffer.allocate( decorator.computeLength() ); decorator.encode( bb ); bb.flip(); return new BasicControl( control.getOid(), control.isCritical(), bb.array() ); }
/** * Compute the control's encoded length * * @param control The control to compute * @return the encoded control length */ public static int computeControlLength( Control control ) { // First, compute the control's value length int controlValueLength = ( ( CodecControl<?> ) control ).computeLength(); // Now, compute the envelop length // The OID int oidLengh = Strings.getBytesUtf8( control.getOid() ).length; int controlLength = 1 + TLV.getNbBytes( oidLengh ) + oidLengh; // The criticality, only if true if ( control.isCritical() ) { // Always 3 for a boolean controlLength += 1 + 1 + 1; } if ( controlValueLength != 0 ) { controlLength += 1 + TLV.getNbBytes( controlValueLength ) + controlValueLength; } return controlLength; }
/** * {@inheritDoc} */ @SuppressWarnings("unchecked") @Override public Message addControl( Control control ) { Control decorated; CodecControl<? extends Control> controlDecorator; if ( control instanceof ControlDecorator ) { controlDecorator = ( org.apache.directory.api.ldap.codec.api.CodecControl<? extends Control> ) control; decorated = controlDecorator.getDecorated(); } else { controlDecorator = codec.newControl( control ); decorated = control; } decoratedMessage.addControl( decorated ); controls.put( control.getOid(), controlDecorator ); currentControl = controlDecorator; return this; }
control.setCritical( jndiControl.isCritical() ); control.setValue( jndiControl.getEncodedValue() ); control.decode( value );