rt/vm/src/main/java/org/apidesign/vm4brwsr/StringArray.java
author Jaroslav Tulach <jaroslav.tulach@apidesign.org>
Tue, 26 Feb 2013 16:54:16 +0100
changeset 772 d382dacfd73f
parent 272 vm/src/main/java/org/apidesign/vm4brwsr/StringArray.java@a6a23aa7a546
child 874 2bcbe348dbec
permissions -rw-r--r--
Moving modules around so the runtime is under one master pom and can be built without building other modules that are in the repository
jtulach@165
     1
/**
jtulach@165
     2
 * Back 2 Browser Bytecode Translator
jtulach@165
     3
 * Copyright (C) 2012 Jaroslav Tulach <jaroslav.tulach@apidesign.org>
jtulach@165
     4
 *
jtulach@165
     5
 * This program is free software: you can redistribute it and/or modify
jtulach@165
     6
 * it under the terms of the GNU General Public License as published by
jtulach@165
     7
 * the Free Software Foundation, version 2 of the License.
jtulach@165
     8
 *
jtulach@165
     9
 * This program is distributed in the hope that it will be useful,
jtulach@165
    10
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
jtulach@165
    11
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
jtulach@165
    12
 * GNU General Public License for more details.
jtulach@165
    13
 *
jtulach@165
    14
 * You should have received a copy of the GNU General Public License
jtulach@165
    15
 * along with this program. Look for COPYING file in the top folder.
jtulach@165
    16
 * If not, see http://opensource.org/licenses/GPL-2.0.
jtulach@162
    17
 */
jtulach@162
    18
package org.apidesign.vm4brwsr;
jtulach@162
    19
jtulach@162
    20
/**
jtulach@162
    21
 *
jtulach@162
    22
 * @author Jaroslav Tulach <jtulach@netbeans.org>
jtulach@162
    23
 */
jtulach@162
    24
class StringArray {
jtulach@162
    25
    private String[] arr;
jtulach@162
    26
jtulach@162
    27
    public StringArray() {
jtulach@162
    28
    }
jtulach@162
    29
jtulach@162
    30
    private StringArray(String[] arr) {
jtulach@162
    31
        this.arr = arr;
jtulach@162
    32
    }
jtulach@162
    33
    
jtulach@162
    34
    public void add(String s) {
jtulach@162
    35
        if (arr == null) {
jtulach@162
    36
            arr = new String[1];
jtulach@162
    37
        } else {
jtulach@162
    38
            String[] tmp = new String[arr.length + 1];
jtulach@162
    39
            for (int i = 0; i < arr.length; i++) {
jtulach@162
    40
                tmp[i] = arr[i];
jtulach@162
    41
            }
jtulach@162
    42
            arr = tmp;
jtulach@162
    43
        }
jtulach@162
    44
        arr[arr.length - 1] = s;
jtulach@162
    45
    }
jtulach@162
    46
    
jtulach@162
    47
    public String[] toArray() {
jtulach@162
    48
        return arr == null ? new String[0] : arr;
jtulach@162
    49
    }
jtulach@162
    50
    
jaroslav@272
    51
    static StringArray asList(String... names) {
jtulach@162
    52
        return new StringArray(names);
jtulach@162
    53
    }
jtulach@162
    54
jtulach@162
    55
    void reverse() {
jtulach@162
    56
        for (int i = 0, j = arr.length; i < j; i++) {
jtulach@162
    57
            String s = arr[i];
jtulach@162
    58
            arr[i] = arr[--j];
jtulach@162
    59
            arr[j] = s;
jtulach@162
    60
        }
jtulach@162
    61
    }
jtulach@162
    62
jtulach@162
    63
    boolean contains(String n) {
jtulach@162
    64
        if (arr == null) {
jtulach@162
    65
            return false;
jtulach@162
    66
        }
jtulach@162
    67
        for (int i = 0; i < arr.length; i++) {
jtulach@162
    68
            if (n.equals(arr[i])) {
jtulach@162
    69
                return true;
jtulach@162
    70
            }
jtulach@162
    71
        }
jtulach@162
    72
        return false;
jtulach@162
    73
    }
jtulach@162
    74
jtulach@162
    75
    void delete(int indx) {
Martin@243
    76
        if (arr == null || indx < 0 || indx >= arr.length) {
jtulach@162
    77
            return;
jtulach@162
    78
        }
jtulach@162
    79
        String[] tmp = new String[arr.length - 1];
jtulach@162
    80
        for (int i = 0, j = 0; i < arr.length; i++) {
Martin@243
    81
            if (i != indx) {
Martin@243
    82
                tmp[j++] = arr[i];
jtulach@162
    83
            }
jtulach@162
    84
        }
Martin@243
    85
        arr = tmp;
jtulach@162
    86
    }
jtulach@162
    87
jtulach@162
    88
    int indexOf(String ic) {
jtulach@162
    89
        for (int i = 0; i < arr.length; i++) {
jtulach@162
    90
            if (ic.equals(arr[i])) {
jtulach@162
    91
                return i;
jtulach@162
    92
            }
jtulach@162
    93
        }
jtulach@162
    94
        return -1;
jtulach@162
    95
    }
jtulach@162
    96
    
jtulach@162
    97
}