Adding day.end.bridges.DigestImpl code snippet
authorJaroslav Tulach <jtulach@netbeans.org>
Thu, 25 Dec 2008 19:25:59 +0100
changeset 301dbe255defdbb
parent 300 b704be5f8463
child 302 fb84830aacc2
Adding day.end.bridges.DigestImpl code snippet
samples/messagedigest/src-new-api/org/apidesign/api/security/Digest.java
samples/messagedigest/src-new-api/org/apidesign/api/security/DigestImpl.java
samples/messagedigest/src-new-api/org/apidesign/api/security/DigestImplementation.java
     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 -}