jtulach@165: /** jtulach@165: * Back 2 Browser Bytecode Translator jtulach@165: * Copyright (C) 2012 Jaroslav Tulach jtulach@165: * jtulach@165: * This program is free software: you can redistribute it and/or modify jtulach@165: * it under the terms of the GNU General Public License as published by jtulach@165: * the Free Software Foundation, version 2 of the License. jtulach@165: * jtulach@165: * This program is distributed in the hope that it will be useful, jtulach@165: * but WITHOUT ANY WARRANTY; without even the implied warranty of jtulach@165: * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the jtulach@165: * GNU General Public License for more details. jtulach@165: * jtulach@165: * You should have received a copy of the GNU General Public License jtulach@165: * along with this program. Look for COPYING file in the top folder. jtulach@165: * If not, see http://opensource.org/licenses/GPL-2.0. jtulach@162: */ jtulach@162: package org.apidesign.vm4brwsr; jtulach@162: jtulach@162: /** jtulach@162: * jtulach@162: * @author Jaroslav Tulach jtulach@162: */ jtulach@162: class StringArray { jtulach@162: private String[] arr; jtulach@162: jtulach@162: public StringArray() { jtulach@162: } jtulach@162: jtulach@162: private StringArray(String[] arr) { jtulach@162: this.arr = arr; jtulach@162: } jtulach@162: jtulach@162: public void add(String s) { jtulach@162: if (arr == null) { jtulach@162: arr = new String[1]; jtulach@162: } else { jtulach@162: String[] tmp = new String[arr.length + 1]; jtulach@162: for (int i = 0; i < arr.length; i++) { jtulach@162: tmp[i] = arr[i]; jtulach@162: } jtulach@162: arr = tmp; jtulach@162: } jtulach@162: arr[arr.length - 1] = s; jtulach@162: } jtulach@162: jtulach@162: public String[] toArray() { jtulach@162: return arr == null ? new String[0] : arr; jtulach@162: } jtulach@162: jaroslav@272: static StringArray asList(String... names) { jtulach@162: return new StringArray(names); jtulach@162: } jtulach@162: jtulach@162: void reverse() { jtulach@162: for (int i = 0, j = arr.length; i < j; i++) { jtulach@162: String s = arr[i]; jtulach@162: arr[i] = arr[--j]; jtulach@162: arr[j] = s; jtulach@162: } jtulach@162: } jtulach@162: jtulach@162: boolean contains(String n) { jtulach@162: if (arr == null) { jtulach@162: return false; jtulach@162: } jtulach@162: for (int i = 0; i < arr.length; i++) { jtulach@162: if (n.equals(arr[i])) { jtulach@162: return true; jtulach@162: } jtulach@162: } jtulach@162: return false; jtulach@162: } jtulach@162: jtulach@162: void delete(int indx) { Martin@243: if (arr == null || indx < 0 || indx >= arr.length) { jtulach@162: return; jtulach@162: } jtulach@162: String[] tmp = new String[arr.length - 1]; jtulach@162: for (int i = 0, j = 0; i < arr.length; i++) { Martin@243: if (i != indx) { Martin@243: tmp[j++] = arr[i]; jtulach@162: } jtulach@162: } Martin@243: arr = tmp; jtulach@162: } jtulach@162: jtulach@162: int indexOf(String ic) { jtulach@162: for (int i = 0; i < arr.length; i++) { jtulach@162: if (ic.equals(arr[i])) { jtulach@162: return i; jtulach@162: } jtulach@162: } jtulach@162: return -1; jtulach@162: } jtulach@162: jtulach@162: }