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