@Override public FastStr prepend(FastStr s) { return s.append(this); }
@Override public FastStr prepend(FastStr s) { return s.append(this); }
@Override public FastStr padRight(char c, int times) { char[] ca = new char[times]; $.fill(c, ca); return append(ca); }
@Override public FastStr padRight(char c, int times) { char[] ca = new char[times]; $.fill(c, ca); return append(ca); }
public static File sourceFile(List<File> sourceRoots, String className) { FastStr s = FastStr.of(className).beforeFirst('$'); s = s.replace('.', File.separatorChar).append(".java"); for (File sourceRoot : sourceRoots) { File file = new File(sourceRoot, s.toString()); if (file.canRead()) { return file; } } return null; }
public static File sourceFile(List<File> sourceRoots, String className) { FastStr s = FastStr.of(className).beforeFirst('$'); s = s.replace('.', File.separatorChar).append(".java"); for (File sourceRoot : sourceRoots) { File file = new File(sourceRoot, s.toString()); if (file.canRead()) { return file; } } return null; }
@Override public boolean apply(JSONSerializer serializer, Object source, String name) { if (source == null) { return true; } // if context path is "$.bar.zee" or "$[0].bar.zee" and name is "foo" // then path should be "bar.zee.foo" String path; FastStr fs = FastStr.of(serializer.getContext().toString()).append('.').append(name); path = fs.substring(fs.indexOf('.') + 1); // skip the first "." return matches(path); }
@Override public boolean apply(JSONSerializer serializer, Object source, String name) { if (source == null) { return true; } // if context path is "$.bar.zee" or "$[0].bar.zee" and name is "foo" // then path should be "bar.zee.foo" String path; FastStr fs = FastStr.of(serializer.getContext().toString()).append('.').append(name); path = fs.substring(fs.indexOf('.') + 1); // skip the first "." return matches(path); }
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(); }
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(); }
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(); }
private String typeDesc(BeanSpec spec) { String root = classDesc(spec.rawType()); List<java.lang.reflect.Type> typeParams = spec.typeParams(); if (typeParams.isEmpty()) { return root; } S.Buffer sb = S.newBuffer("<"); for (java.lang.reflect.Type type : typeParams) { BeanSpec specx = BeanSpec.of(type, null, spec.injector(), typeParamLookup); sb.append(typeDesc(specx)); } sb.append(">"); FastStr str = FastStr.of(root); str = str.take(str.length() - 1).append(sb.toString()).append(";"); return str.toString(); }
private String typeDesc(BeanSpec spec) { String root = classDesc(spec.rawType()); List<java.lang.reflect.Type> typeParams = spec.typeParams(); if (typeParams.isEmpty()) { return root; } S.Buffer sb = S.newBuffer("<"); for (java.lang.reflect.Type type : typeParams) { BeanSpec specx = BeanSpec.of(type, null, spec.injector(), typeParamLookup); sb.append(typeDesc(specx)); } sb.append(">"); FastStr str = FastStr.of(root); str = str.take(str.length() - 1).append(sb.toString()).append(";"); return str.toString(); }