1.1 --- a/samples/messagedigest/src-new-api/org/apidesign/api/security/Digest.java Sat Nov 15 13:12:46 2008 +0100
1.2 +++ b/samples/messagedigest/src-new-api/org/apidesign/api/security/Digest.java Thu Dec 25 19:25:59 2008 +0100
1.3 @@ -12,10 +12,10 @@
1.4 */
1.5 // BEGIN: day.end.bridges.Digest
1.6 public final class Digest {
1.7 - private final DigestImplementation<?> impl;
1.8 + private final DigestImpl<?> impl;
1.9
1.10 /** Factory method is better than constructor */
1.11 - private Digest(DigestImplementation<?> impl) {
1.12 + private Digest(DigestImpl<?> impl) {
1.13 this.impl = impl;
1.14 }
1.15
1.16 @@ -23,7 +23,7 @@
1.17 */
1.18 public static Digest getInstance(String algorithm) {
1.19 for (Digestor<?> digestor : ServiceLoader.load(Digestor.class)) {
1.20 - DigestImplementation<?> impl = DigestImplementation.create(
1.21 + DigestImpl<?> impl = DigestImpl.create(
1.22 digestor, algorithm
1.23 );
1.24 if (impl != null) {
2.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
2.2 +++ b/samples/messagedigest/src-new-api/org/apidesign/api/security/DigestImpl.java Thu Dec 25 19:25:59 2008 +0100
2.3 @@ -0,0 +1,46 @@
2.4 +/*
2.5 + * To change this template, choose Tools | Templates
2.6 + * and open the template in the editor.
2.7 + */
2.8 +
2.9 +package org.apidesign.api.security;
2.10 +
2.11 +import java.nio.ByteBuffer;
2.12 +import org.apidesign.spi.security.Digestor;
2.13 +
2.14 +/**
2.15 + *
2.16 + * @author Jaroslav Tulach <jaroslav.tulach@apidesign.org>
2.17 + */
2.18 +// BEGIN: day.end.bridges.DigestImpl
2.19 +final class DigestImpl<Data> {
2.20 + private static final DigestorAccessorImpl ACCESSOR = new DigestorAccessorImpl();
2.21 +
2.22 + private final Digestor<Data> digestor;
2.23 + private final String algorithm;
2.24 + private Data data;
2.25 +
2.26 + private DigestImpl(Digestor<Data> digestor, String algorithm, Data d) {
2.27 + this.digestor = digestor;
2.28 + this.algorithm = algorithm;
2.29 + this.data = d;
2.30 + }
2.31 +
2.32 + static <Data> DigestImpl create(Digestor<Data> digestor, String algorithm) {
2.33 + // indirectly calls digestor.create(algorithm)
2.34 + Data d = ACCESSOR.create(digestor, algorithm);
2.35 + if (d == null) {
2.36 + return null;
2.37 + } else {
2.38 + return new DigestImpl(digestor, algorithm, d);
2.39 + }
2.40 + }
2.41 +
2.42 + byte[] digest(ByteBuffer bb) {
2.43 + // indirectly calls digestor.update(data, bb)
2.44 + ACCESSOR.update(digestor, data, bb);
2.45 + // indirectly calls digestor.digest(data)
2.46 + return ACCESSOR.digest(digestor, data);
2.47 + }
2.48 +}
2.49 +// END: day.end.bridges.DigestImpl
2.50 \ No newline at end of file
3.1 --- a/samples/messagedigest/src-new-api/org/apidesign/api/security/DigestImplementation.java Sat Nov 15 13:12:46 2008 +0100
3.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
3.3 @@ -1,41 +0,0 @@
3.4 -/*
3.5 - * To change this template, choose Tools | Templates
3.6 - * and open the template in the editor.
3.7 - */
3.8 -
3.9 -package org.apidesign.api.security;
3.10 -
3.11 -import java.nio.ByteBuffer;
3.12 -import org.apidesign.spi.security.Digestor;
3.13 -
3.14 -/**
3.15 - *
3.16 - * @author Jaroslav Tulach <jaroslav.tulach@apidesign.org>
3.17 - */
3.18 -final class DigestImplementation<Data> {
3.19 - private static final DigestorAccessorImpl ACCESSOR = new DigestorAccessorImpl();
3.20 -
3.21 - private final Digestor<Data> digestor;
3.22 - private final String algorithm;
3.23 - private Data data;
3.24 -
3.25 - private DigestImplementation(Digestor<Data> digestor, String algorithm, Data d) {
3.26 - this.digestor = digestor;
3.27 - this.algorithm = algorithm;
3.28 - this.data = d;
3.29 - }
3.30 -
3.31 - static <Data> DigestImplementation create(Digestor<Data> digestor, String algorithm) {
3.32 - Data d = ACCESSOR.create(digestor, algorithm);
3.33 - if (d == null) {
3.34 - return null;
3.35 - } else {
3.36 - return new DigestImplementation(digestor, algorithm, d);
3.37 - }
3.38 - }
3.39 -
3.40 - byte[] digest(ByteBuffer bb) {
3.41 - ACCESSOR.update(digestor, data, bb);
3.42 - return ACCESSOR.digest(digestor, data);
3.43 - }
3.44 -}