2 * Back 2 Browser Bytecode Translator
3 * Copyright (C) 2012 Jaroslav Tulach <jaroslav.tulach@apidesign.org>
5 * This program is free software: you can redistribute it and/or modify
6 * it under the terms of the GNU General Public License as published by
7 * the Free Software Foundation, version 2 of the License.
9 * This program is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 * GNU General Public License for more details.
14 * You should have received a copy of the GNU General Public License
15 * along with this program. Look for COPYING file in the top folder.
16 * If not, see http://opensource.org/licenses/GPL-2.0.
18 package org.apidesign.vm4brwsr;
20 import java.io.UnsupportedEncodingException;
21 import org.apidesign.bck2brwsr.core.JavaScriptBody;
25 * @author Jaroslav Tulach <jtulach@netbeans.org>
27 public class StringSample {
28 public static final String HELLO = "Hello World!";
29 private static int counter;
31 private final int cnt;
32 public StringSample() {
37 public static char sayHello(int indx) {
38 return HELLO.charAt(indx);
41 public static boolean equalToHello(int from, int to) {
42 return "Hello".equals(HELLO.substring(from, to));
45 public static String fromChars(char a, char b, char c) {
46 char[] arr = { a, b, c };
47 return new String(arr).toString();
50 public static String charsFromNumbers() {
51 return chars((char)65, (char)66, (char)67);
54 public static String charsFromChars() {
55 return chars('A', 'B', 'C');
58 public static String chars(char a, char b, char c) {
59 return ("" + a + b +c).toString();
62 public static String replace(String s, char a, char b) {
63 return s.replace(a, b);
66 public static int hashCode(String h) {
70 public static boolean isStringInstance() {
71 return chars('a', (char)30, 'b') instanceof String;
74 public static String getBytes(String s) throws UnsupportedEncodingException {
75 byte[] arr = s.getBytes("UTF-8");
76 StringBuilder sb = new StringBuilder();
77 for (int i = 0; i < arr.length; i++) {
78 sb.append(arr[i]).append(" ");
80 return sb.toString().toString();
83 public static String unicode() {
84 return "\r\n\u2028\u2029]";
87 public static String insertBuffer() {
88 StringBuilder sb = new StringBuilder();
90 sb.insert(0, "Ahoj ");
92 return sb.toString().toString();
95 public static int countAB(String txt) {
97 for (int i = 0; i < txt.length(); i++) {
98 switch (txt.charAt(i)) {
99 case 'A': cnt++; break;
100 case 'B': cnt += 2; break;
106 public static int stringSwitch(String txt) {
108 case "jedna": return 1;
109 case "dve": return 2;
110 case "tri": return 3;
111 case "ctyri": return 4;
116 public static String toStringTest(int howMuch) {
118 StringSample ss = null;
119 for (int i = 0; i < howMuch; i++) {
120 ss = new StringSample();
122 return ss.toString().toString();
125 public static String concatStrings() {
126 return (toStringTest(1) + "\\\n\r\t").toString();
129 public static int compare(String a, String b) {
130 return a.compareTo(b);
134 public String toString() {
138 @JavaScriptBody(args = {}, body = "return [1, 2];")
139 private static native Object crtarr();
140 @JavaScriptBody(args = { "o" }, body = "return o.toString();")
141 private static native String toStrng(Object o);
143 public static String toStringArray(boolean fakeArr, boolean toString) {
144 final Object arr = fakeArr ? crtarr() : new Object[2];
145 final String whole = toString ? arr.toString() : toStrng(arr);
146 int zav = whole.indexOf('@');
148 zav = whole.length();
150 return whole.substring(0, zav).toString().toString();