vm/src/main/java/org/apidesign/vm4brwsr/StringArray.java
author Jaroslav Tulach <jtulach@netbeans.org>
Fri, 16 Nov 2012 07:36:32 +0100
branchjavap
changeset 162 70e7710a65dc
child 165 5d02550c4028
permissions -rw-r--r--
Eliminating references to java.util classes that have too huge transitive closure.
jtulach@162
     1
/*
jtulach@162
     2
 * To change this template, choose Tools | Templates
jtulach@162
     3
 * and open the template in the editor.
jtulach@162
     4
 */
jtulach@162
     5
package org.apidesign.vm4brwsr;
jtulach@162
     6
jtulach@162
     7
/**
jtulach@162
     8
 *
jtulach@162
     9
 * @author Jaroslav Tulach <jtulach@netbeans.org>
jtulach@162
    10
 */
jtulach@162
    11
class StringArray {
jtulach@162
    12
    private String[] arr;
jtulach@162
    13
jtulach@162
    14
    public StringArray() {
jtulach@162
    15
    }
jtulach@162
    16
jtulach@162
    17
    private StringArray(String[] arr) {
jtulach@162
    18
        this.arr = arr;
jtulach@162
    19
    }
jtulach@162
    20
    
jtulach@162
    21
    public void add(String s) {
jtulach@162
    22
        if (arr == null) {
jtulach@162
    23
            arr = new String[1];
jtulach@162
    24
        } else {
jtulach@162
    25
            String[] tmp = new String[arr.length + 1];
jtulach@162
    26
            for (int i = 0; i < arr.length; i++) {
jtulach@162
    27
                tmp[i] = arr[i];
jtulach@162
    28
            }
jtulach@162
    29
            arr = tmp;
jtulach@162
    30
        }
jtulach@162
    31
        arr[arr.length - 1] = s;
jtulach@162
    32
    }
jtulach@162
    33
    
jtulach@162
    34
    public String[] toArray() {
jtulach@162
    35
        return arr == null ? new String[0] : arr;
jtulach@162
    36
    }
jtulach@162
    37
    
jtulach@162
    38
    static StringArray asList(String[] names) {
jtulach@162
    39
        return new StringArray(names);
jtulach@162
    40
    }
jtulach@162
    41
jtulach@162
    42
    void reverse() {
jtulach@162
    43
        for (int i = 0, j = arr.length; i < j; i++) {
jtulach@162
    44
            String s = arr[i];
jtulach@162
    45
            arr[i] = arr[--j];
jtulach@162
    46
            arr[j] = s;
jtulach@162
    47
        }
jtulach@162
    48
    }
jtulach@162
    49
jtulach@162
    50
    boolean contains(String n) {
jtulach@162
    51
        if (arr == null) {
jtulach@162
    52
            return false;
jtulach@162
    53
        }
jtulach@162
    54
        for (int i = 0; i < arr.length; i++) {
jtulach@162
    55
            if (n.equals(arr[i])) {
jtulach@162
    56
                return true;
jtulach@162
    57
            }
jtulach@162
    58
        }
jtulach@162
    59
        return false;
jtulach@162
    60
    }
jtulach@162
    61
jtulach@162
    62
    void delete(int indx) {
jtulach@162
    63
        if (arr == null) {
jtulach@162
    64
            return;
jtulach@162
    65
        }
jtulach@162
    66
        String[] tmp = new String[arr.length - 1];
jtulach@162
    67
        for (int i = 0, j = 0; i < arr.length; i++) {
jtulach@162
    68
            tmp[j] = arr[i];
jtulach@162
    69
            if (j == indx) {
jtulach@162
    70
                continue;
jtulach@162
    71
            }
jtulach@162
    72
        }
jtulach@162
    73
    }
jtulach@162
    74
jtulach@162
    75
    int indexOf(String ic) {
jtulach@162
    76
        for (int i = 0; i < arr.length; i++) {
jtulach@162
    77
            if (ic.equals(arr[i])) {
jtulach@162
    78
                return i;
jtulach@162
    79
            }
jtulach@162
    80
        }
jtulach@162
    81
        return -1;
jtulach@162
    82
    }
jtulach@162
    83
    
jtulach@162
    84
}