samples/messagedigest/src-bridge/org/apidesign/impl/security/extension/BridgeToNew.java
changeset 47 f464a16d553a
parent 46 c75861f07646
child 48 c5742322dbc8
     1.1 --- a/samples/messagedigest/src-bridge/org/apidesign/impl/security/extension/BridgeToNew.java	Sat Jun 14 09:52:23 2008 +0200
     1.2 +++ b/samples/messagedigest/src-bridge/org/apidesign/impl/security/extension/BridgeToNew.java	Sat Jun 14 09:52:25 2008 +0200
     1.3 @@ -5,40 +5,37 @@
     1.4  
     1.5  package org.apidesign.impl.security.extension;
     1.6  
     1.7 -import org.apidesign.impl.security.friendapi.DigestImplementation;
     1.8 -import org.apidesign.impl.security.friendapi.DigestProvider;
     1.9  import java.nio.ByteBuffer;
    1.10  import java.security.MessageDigest;
    1.11  import java.security.NoSuchAlgorithmException;
    1.12  import java.util.logging.Level;
    1.13  import java.util.logging.Logger;
    1.14 +import org.apidesign.spi.security.Digestor;
    1.15  
    1.16  /**
    1.17   *
    1.18   * @author Jaroslav Tulach <jaroslav.tulach@apidesign.org>
    1.19   */
    1.20  // BEGIN: day.end.bridges.BridgeToNew
    1.21 -public class BridgeToNew implements DigestProvider {
    1.22 -
    1.23 -    public DigestImplementation create(String algorithm) {
    1.24 +public class BridgeToNew extends Digestor<MessageDigest> {
    1.25 +    @Override
    1.26 +    protected MessageDigest create(String algorithm) {
    1.27          try {
    1.28 -            final MessageDigest md = MessageDigest.getInstance(algorithm);
    1.29 -            return new DigestImplementation(algorithm) {
    1.30 -
    1.31 -                @Override
    1.32 -                public void update(ByteBuffer bb) {
    1.33 -                    md.update(bb);
    1.34 -                }
    1.35 -
    1.36 -                @Override
    1.37 -                public byte[] digest() {
    1.38 -                    return md.digest();
    1.39 -                }
    1.40 -            };
    1.41 +            return MessageDigest.getInstance(algorithm);
    1.42          } catch (NoSuchAlgorithmException ex) {
    1.43 -            Logger.getLogger(BridgeToNew.class.getName()).log(Level.INFO, null, ex);
    1.44 +            Logger.getLogger(BridgeToNew.class.getName()).log(Level.FINE, "Cannot find " + algorithm, ex);
    1.45              return null;
    1.46          }
    1.47      }
    1.48 +
    1.49 +    @Override
    1.50 +    protected byte[] digest(MessageDigest data) {
    1.51 +        return data.digest();
    1.52 +    }
    1.53 +
    1.54 +    @Override
    1.55 +    protected void update(MessageDigest data, ByteBuffer input) {
    1.56 +        data.update(input);
    1.57 +    }
    1.58  }
    1.59  // END: day.end.bridges.BridgeToNew