samples/preventcyclicdependencies/src-cyclic/org/apidesign/cycles/array/MutableArray.java
author Jaroslav Tulach <jtulach@netbeans.org>
Sat, 14 Jun 2008 09:53:48 +0200
changeset 87 618b79994cd4
permissions -rw-r--r--
How to eliminate cyclic dependencies
jtulach@87
     1
// BEGIN: cycles.ma1
jtulach@87
     2
package org.apidesign.cycles.array;
jtulach@87
     3
jtulach@87
     4
import java.io.IOException;
jtulach@87
     5
import java.io.OutputStream;
jtulach@87
     6
import org.apidesign.cycles.crypt.Encryptor;
jtulach@87
     7
jtulach@87
     8
public class MutableArray {
jtulach@87
     9
    private byte[] arr;
jtulach@87
    10
jtulach@87
    11
    public MutableArray(byte[] arr) {
jtulach@87
    12
        this.arr = arr;
jtulach@87
    13
    }
jtulach@87
    14
jtulach@87
    15
    public void xor(byte b) {
jtulach@87
    16
        for (int i = 0; i < arr.length; i++) { arr[i] ^= b; }
jtulach@87
    17
    }
jtulach@87
    18
jtulach@87
    19
    public void and(byte b) {
jtulach@87
    20
        for (int i = 0; i < arr.length; i++) { arr[i] &= b; }
jtulach@87
    21
    }
jtulach@87
    22
jtulach@87
    23
    public void or(byte b) {
jtulach@87
    24
        for (int i = 0; i < arr.length; i++) { arr[i] |= b; }
jtulach@87
    25
    }
jtulach@87
    26
jtulach@87
    27
    public void encrypt(OutputStream os) throws IOException {
jtulach@87
    28
        Encryptor en = new Encryptor();
jtulach@87
    29
        byte[] clone = (byte[]) arr.clone();
jtulach@87
    30
        en.encode(clone);
jtulach@87
    31
        os.write(clone);
jtulach@87
    32
    }
jtulach@87
    33
}
jtulach@87
    34
// END: cycles.ma1
jtulach@87
    35