@Override public FastStr padLeft(char c, int times) { char[] ca = new char[times]; $.fill(c, ca); return prepend(ca); }
@Override public FastStr padLeft(char c, int times) { char[] ca = new char[times]; $.fill(c, ca); return prepend(ca); }
public static String classNameToClassFileName(String className, boolean keepInnerClass) { FastStr fs = FastStr.of(className); if (!keepInnerClass && className.contains("$")) { fs = fs.beforeFirst('$'); } fs = fs.replace('.', '/').append(".class").prepend('/'); return fs.toString(); }
@Override public FastStr prepend(String s) { int sz = size(); if (0 == sz) return of(s); int sz2 = s.length(); if (0 == sz2) return this; if (sz2 == 1) { return prepend(s.charAt(0)); } int newSz = sz + sz2; char[] newBuf = new char[newSz]; boolean done = false; if (sz2 > 512) { try { char[] sBuf = Unsafe.bufOf(s); System.arraycopy(sBuf, 0, newBuf, 0, sz2); done = true; } catch (RuntimeException e) { // ignore } } if (!done) { for (int i = 0; i < sz2; ++i) { newBuf[i] = s.charAt(i); } } copyTo(newBuf, sz2); return new FastStr(newBuf, 0, newSz); }
public static String classNameToClassFileName(String className, boolean keepInnerClass) { FastStr fs = FastStr.of(className); if (!keepInnerClass && className.contains("$")) { fs = fs.beforeFirst('$'); } fs = fs.replace('.', '/').append(".class").prepend('/'); return fs.toString(); }
@Override public FastStr prepend(String s) { int sz = size(); if (0 == sz) return of(s); int sz2 = s.length(); if (0 == sz2) return this; if (sz2 == 1) { return prepend(s.charAt(0)); } int newSz = sz + sz2; char[] newBuf = new char[newSz]; boolean done = false; if (sz2 > 512) { try { char[] sBuf = Unsafe.bufOf(s); System.arraycopy(sBuf, 0, newBuf, 0, sz2); done = true; } catch (RuntimeException e) { // ignore } } if (!done) { for (int i = 0; i < sz2; ++i) { newBuf[i] = s.charAt(i); } } copyTo(newBuf, sz2); return new FastStr(newBuf, 0, newSz); }
@Override public FastStr prepend(char... chars) { int sz = size(); if (0 == sz) return of(chars); int sz2 = chars.length; if (0 == sz2) return this; if (1 == sz2) { return prepend(chars[0]); } int newSz = sz + sz2; char[] newBuf = new char[newSz]; for (int i = 0; i < sz2; ++i) { newBuf[i] = chars[i]; } copyTo(newBuf, sz2); return new FastStr(newBuf, 0, newSz); }
@Override public FastStr prepend(char... chars) { int sz = size(); if (0 == sz) return of(chars); int sz2 = chars.length; if (0 == sz2) return this; if (1 == sz2) { return prepend(chars[0]); } int newSz = sz + sz2; char[] newBuf = new char[newSz]; for (int i = 0; i < sz2; ++i) { newBuf[i] = chars[i]; } copyTo(newBuf, sz2); return new FastStr(newBuf, 0, newSz); }
@Override public FastStr prepend(C.List<Character> list) { int sz = size(); if (0 == sz) return of(list); int sz2 = list.size(); if (0 == sz2) return this; if (1 == sz2) { return prepend(list.get(0)); } int newSz = sz + sz2; char[] newBuf = new char[newSz]; for (int i = 0; i < sz2; ++i) { newBuf[i] = list.get(i); } copyTo(newBuf, sz2); return new FastStr(newBuf, 0, newSz); }
@Override public FastStr prepend(C.List<Character> list) { int sz = size(); if (0 == sz) return of(list); int sz2 = list.size(); if (0 == sz2) return this; if (1 == sz2) { return prepend(list.get(0)); } int newSz = sz + sz2; char[] newBuf = new char[newSz]; for (int i = 0; i < sz2; ++i) { newBuf[i] = list.get(i); } copyTo(newBuf, sz2); return new FastStr(newBuf, 0, newSz); }
static void hashCodeMethodEnd(MethodVisitor mv, int fieldCnt) { FastStr signature; if (fieldCnt < 6) { signature = FastStr.of("Ljava/lang/Object;").times(fieldCnt); } else { signature = FastStr.of("Ljava/lang/Object;").times(5).append("[Ljava/lang/Object;"); } signature = signature.prepend("(").append(")I"); mv.visitMethodInsn(INVOKESTATIC, "org/osgl/Osgl", "hc", signature.toString(), false); mv.visitInsn(IRETURN); mv.visitMaxs(0, 0); // just pass any number and have ASM to calculate mv.visitEnd(); }
static void hashCodeMethodEnd(MethodVisitor mv, int fieldCnt) { FastStr signature; if (fieldCnt < 6) { signature = FastStr.of("Ljava/lang/Object;").times(fieldCnt); } else { signature = FastStr.of("Ljava/lang/Object;").times(5).append("[Ljava/lang/Object;"); } signature = signature.prepend("(").append(")I"); mv.visitMethodInsn(INVOKESTATIC, "org/osgl/Osgl", "hc", signature.toString(), false); mv.visitInsn(IRETURN); mv.visitMaxs(0, 0); // just pass any number and have ASM to calculate mv.visitEnd(); }