samples/messagedigest/src-new-spi/org/apidesign/spi/security/Digestor.java
author Jaroslav Tulach <jtulach@netbeans.org>
Sat, 14 Jun 2008 09:52:23 +0200
changeset 44 716af5f2ebd1
permissions -rw-r--r--
Switching to freeform project
     1 /*
     2  * To change this template, choose Tools | Templates
     3  * and open the template in the editor.
     4  */
     5 
     6 package org.apidesign.spi.security;
     7 
     8 import org.apidesign.impl.security.spi.DigestorAccessor;
     9 import java.nio.ByteBuffer;
    10 
    11 /**
    12  *
    13  * @author  Jaroslav Tulach <jaroslav.tulach@apidesign.org>
    14  */
    15 // BEGIN: day.end.bridges.Digestor
    16 public abstract class Digestor<Data> {
    17    protected abstract byte[] digest(Data data);
    18    protected abstract Data create(String algorithm); 
    19    protected abstract void update(Data data, ByteBuffer input);
    20    
    21 // END: day.end.bridges.Digestor   
    22    static {
    23        new DigestorAccessor() {
    24             @Override
    25             protected <Data> byte[] digest(Digestor<Data> dig, Data data) {
    26                 return dig.digest(data);
    27             }
    28 
    29             @Override
    30             protected <Data> Data create(Digestor<Data> dig, String algorithm) {
    31                 return dig.create(algorithm);
    32             }
    33 
    34             @Override
    35             protected <Data> void update(Digestor<Data> dig, Data data, ByteBuffer input) {
    36                 dig.update(data, input);
    37             }
    38         };
    39    }
    40 }