modules/graphics/src/main/java/com/sun/glass/ui/monocle/util/IntSet.java

Print this page
rev 7213 : RT-37474 [Monocle] Shift-backspace generates an undefined key code


  25 package com.sun.glass.ui.monocle.util;
  26 
  27 import java.util.Arrays;
  28 
  29 /**
  30  * Mutable sorted set of int values, optimized for a small number of values. Not
  31  * thread-safe.
  32  */
  33 public class IntSet {
  34     private int[] elements = new int[4];
  35     private int size = 0;
  36 
  37     public void addInt(int value) {
  38         int i = getIndex(value);
  39         if (i < 0) {
  40             int insertionPoint = -1 - i;
  41             if (size == elements.length) {
  42                 elements = Arrays.copyOf(elements, size * 2);
  43             }
  44             if (insertionPoint != size) {
  45             } else {
  46                 System.arraycopy(elements, insertionPoint,
  47                                  elements, insertionPoint + 1,
  48                                  size - insertionPoint);
  49             }
  50             elements[insertionPoint] = value;
  51             size ++;
  52         }
  53     }
  54 
  55     public void removeInt(int value) {
  56         int i = getIndex(value);
  57         if (i >= 0) {
  58             if (i < size - 1) {
  59                 System.arraycopy(elements, i + 1, elements, i, size - i - 1);
  60             }
  61             size --;
  62         }
  63     }
  64 
  65     public boolean containsInt(int value) {


 107         while (i < size) {
 108             dest.addInt(elements[i]);
 109             i ++;
 110         }
 111     }
 112 
 113     public void clear() {
 114         size = 0;
 115     }
 116 
 117     public int size() {
 118         return size;
 119     }
 120 
 121     public boolean isEmpty() {
 122         return size == 0;
 123     }
 124 
 125     /** Copies the contents of this set to the target set. */
 126     public void copyTo(IntSet target) {
 127         if (target.elements.length > size) {
 128             target.elements = Arrays.copyOf(elements, elements.length);
 129         } else {
 130             System.arraycopy(elements, 0, target.elements, 0, size);
 131         }
 132         target.size = size;
 133     }
 134 
 135     public boolean equals(IntSet set) {
 136         if (set.size == size) {
 137             for (int i = 0; i < size; i++) {
 138                 if (set.elements[i] != elements[i]) {
 139                     return false;
 140                 }
 141             }
 142             return true;
 143         } else {
 144             return false;
 145         }
 146     }
 147 




  25 package com.sun.glass.ui.monocle.util;
  26 
  27 import java.util.Arrays;
  28 
  29 /**
  30  * Mutable sorted set of int values, optimized for a small number of values. Not
  31  * thread-safe.
  32  */
  33 public class IntSet {
  34     private int[] elements = new int[4];
  35     private int size = 0;
  36 
  37     public void addInt(int value) {
  38         int i = getIndex(value);
  39         if (i < 0) {
  40             int insertionPoint = -1 - i;
  41             if (size == elements.length) {
  42                 elements = Arrays.copyOf(elements, size * 2);
  43             }
  44             if (insertionPoint != size) {

  45                 System.arraycopy(elements, insertionPoint,
  46                                  elements, insertionPoint + 1,
  47                                  size - insertionPoint);
  48             }
  49             elements[insertionPoint] = value;
  50             size ++;
  51         }
  52     }
  53 
  54     public void removeInt(int value) {
  55         int i = getIndex(value);
  56         if (i >= 0) {
  57             if (i < size - 1) {
  58                 System.arraycopy(elements, i + 1, elements, i, size - i - 1);
  59             }
  60             size --;
  61         }
  62     }
  63 
  64     public boolean containsInt(int value) {


 106         while (i < size) {
 107             dest.addInt(elements[i]);
 108             i ++;
 109         }
 110     }
 111 
 112     public void clear() {
 113         size = 0;
 114     }
 115 
 116     public int size() {
 117         return size;
 118     }
 119 
 120     public boolean isEmpty() {
 121         return size == 0;
 122     }
 123 
 124     /** Copies the contents of this set to the target set. */
 125     public void copyTo(IntSet target) {
 126         if (target.elements.length < size) {
 127             target.elements = Arrays.copyOf(elements, elements.length);
 128         } else {
 129             System.arraycopy(elements, 0, target.elements, 0, size);
 130         }
 131         target.size = size;
 132     }
 133 
 134     public boolean equals(IntSet set) {
 135         if (set.size == size) {
 136             for (int i = 0; i < size; i++) {
 137                 if (set.elements[i] != elements[i]) {
 138                     return false;
 139                 }
 140             }
 141             return true;
 142         } else {
 143             return false;
 144         }
 145     }
 146