/** {@inheritDoc} */
  @Override
  public void decode(final byte[] berValue) {
    logger.trace("decoding control: {}", LdapUtils.base64Encode(berValue));

    final DERParser parser = new DERParser();
    parser.registerHandler(CookieHandler.PATH, new CookieHandler(this));
    parser.registerHandler(RefreshDeletesHandler.PATH, new RefreshDeletesHandler(this));
    parser.parse(ByteBuffer.wrap(berValue));
  }
  /** {@inheritDoc} */
  @Override
  public void decode(final byte[] berValue) {
    logger.trace("decoding control: {}", LdapUtils.base64Encode(berValue));

    final DERParser parser = new DERParser();
    parser.registerHandler(SortResultHandler.PATH, new SortResultHandler(this));
    parser.registerHandler(AttributeTypeHandler.PATH, new AttributeTypeHandler(this));
    parser.parse(ByteBuffer.wrap(berValue));
  }
 /** {@inheritDoc} */
 @Override
 public String toString() {
   return String.format(
       "[%s@%d::criticality=%s, cookie=%s, refreshDeletes=%s]",
       getClass().getName(),
       hashCode(),
       getCriticality(),
       LdapUtils.base64Encode(cookie),
       refreshDeletes);
 }