1.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
1.2 +++ b/samples/messagedigest/src-new-spi/org/apidesign/spi/security/Digestor.java Sat Jun 14 09:52:23 2008 +0200
1.3 @@ -0,0 +1,40 @@
1.4 +/*
1.5 + * To change this template, choose Tools | Templates
1.6 + * and open the template in the editor.
1.7 + */
1.8 +
1.9 +package org.apidesign.spi.security;
1.10 +
1.11 +import org.apidesign.impl.security.spi.DigestorAccessor;
1.12 +import java.nio.ByteBuffer;
1.13 +
1.14 +/**
1.15 + *
1.16 + * @author Jaroslav Tulach <jaroslav.tulach@apidesign.org>
1.17 + */
1.18 +// BEGIN: day.end.bridges.Digestor
1.19 +public abstract class Digestor<Data> {
1.20 + protected abstract byte[] digest(Data data);
1.21 + protected abstract Data create(String algorithm);
1.22 + protected abstract void update(Data data, ByteBuffer input);
1.23 +
1.24 +// END: day.end.bridges.Digestor
1.25 + static {
1.26 + new DigestorAccessor() {
1.27 + @Override
1.28 + protected <Data> byte[] digest(Digestor<Data> dig, Data data) {
1.29 + return dig.digest(data);
1.30 + }
1.31 +
1.32 + @Override
1.33 + protected <Data> Data create(Digestor<Data> dig, String algorithm) {
1.34 + return dig.create(algorithm);
1.35 + }
1.36 +
1.37 + @Override
1.38 + protected <Data> void update(Digestor<Data> dig, Data data, ByteBuffer input) {
1.39 + dig.update(data, input);
1.40 + }
1.41 + };
1.42 + }
1.43 +}