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