/** * Counts substring occurrences in a source string. * * @param source source string * @param sub substring to count * @return number of substring occurrences */ public static int count(String source, String sub) { return count(source, sub, 0); } public static int count(String source, String sub, int start) {
@Test void testCount() { String s = "qwertywer"; assertEquals(0, StringUtil.count(s, "xxx")); assertEquals(0, StringUtil.count(s, "")); assertEquals(1, StringUtil.count(s, "qwe")); assertEquals(0, StringUtil.count(s, "qwe", 1)); assertEquals(0, StringUtil.count(s, "qwe", 50)); assertEquals(1, StringUtil.count(s, "qwe", -1)); assertEquals(1, StringUtil.count(s, "qwertywer")); assertEquals(2, StringUtil.count(s, "we")); assertEquals(0, StringUtil.count(s, '0')); assertEquals(1, StringUtil.count(s, 'q')); assertEquals(2, StringUtil.count(s, 'w')); assertEquals(0, StringUtil.countIgnoreCase(s, "xxx")); assertEquals(0, StringUtil.countIgnoreCase(s, "")); assertEquals(1, StringUtil.countIgnoreCase(s, "qwe")); assertEquals(1, StringUtil.countIgnoreCase(s, "qwertywer")); assertEquals(2, StringUtil.countIgnoreCase(s, "we")); }
public static int count(String source, char c) { return count(source, c, 0); } public static int count(String source, char c, int start) {
public static int count(final String source, final char c) { return count(source, c, 0); } public static int count(final String source, final char c, final int start) {
/** * Counts substring occurrences in a source string. * * @param source source string * @param sub substring to count * @return number of substring occurrences */ public static int count(final String source, final String sub) { return count(source, sub, 0); } public static int count(final String source, final String sub, final int start) {
/** * Loads array class using component type. */ protected Class loadArrayClassByComponentType(String className, ClassLoader classLoader) throws ClassNotFoundException { int ndx = className.indexOf('['); int multi = StringUtil.count(className, '['); String componentTypeName = className.substring(0, ndx); Class componentType = loadClass(componentTypeName, classLoader); if (multi == 1) { return Array.newInstance(componentType, 0).getClass(); } int[] multiSizes; if (multi == 2) { multiSizes = new int[] {0, 0}; } else if (multi == 3) { multiSizes = new int[] {0, 0, 0}; } else { multiSizes = (int[]) Array.newInstance(int.class, multi); } return Array.newInstance(componentType, multiSizes).getClass(); }
/** * Prepares classname for loading, respecting the arrays. * Returns <code>null</code> if class name is not an array. */ public static String prepareArrayClassnameForLoading(String className) { int bracketCount = StringUtil.count(className, '['); if (bracketCount == 0) { // not an array return null; } String brackets = StringUtil.repeat('[', bracketCount); int bracketIndex = className.indexOf('['); className = className.substring(0, bracketIndex); int primitiveNdx = getPrimitiveClassNameIndex(className); if (primitiveNdx >= 0) { className = String.valueOf(PRIMITIVE_BYTECODE_NAME[primitiveNdx]); return brackets + className; } else { return brackets + 'L' + className + ';'; } }
/** * Loads array class using component type. */ protected Class loadArrayClassByComponentType(final String className, final ClassLoader classLoader) throws ClassNotFoundException { int ndx = className.indexOf('['); int multi = StringUtil.count(className, '['); String componentTypeName = className.substring(0, ndx); Class componentType = loadClass(componentTypeName, classLoader); if (multi == 1) { return Array.newInstance(componentType, 0).getClass(); } int[] multiSizes; if (multi == 2) { multiSizes = new int[] {0, 0}; } else if (multi == 3) { multiSizes = new int[] {0, 0, 0}; } else { multiSizes = (int[]) Array.newInstance(int.class, multi); } return Array.newInstance(componentType, multiSizes).getClass(); }
/** * Prepares classname for loading, respecting the arrays. * Returns <code>null</code> if class name is not an array. */ public static String prepareArrayClassnameForLoading(String className) { int bracketCount = StringUtil.count(className, '['); if (bracketCount == 0) { // not an array return null; } String brackets = StringUtil.repeat('[', bracketCount); int bracketIndex = className.indexOf('['); className = className.substring(0, bracketIndex); int primitiveNdx = getPrimitiveClassNameIndex(className); if (primitiveNdx >= 0) { className = String.valueOf(PRIMITIVE_BYTECODE_NAME[primitiveNdx]); return brackets + className; } else { return brackets + 'L' + className + ';'; } }
String suffix = separators[2]; macrosCount = StringUtil.count(actionPath, prefix);
type = '['; int arrayCount = StringUtil.count(typeName, '['); String arrayDepth = StringUtil.repeat('[', arrayCount);
@Test void testCircularDependency_property() { JsonParsers.forEachParser(jsonParser -> { A a1 = new A(); a1.setName("a1"); A a2 = new A(); a2.setName("a2"); B b = new B(); b.setProp("value"); b.setA(a1); // b -> a1, has circ.dep. // circular reference a1.setPi(b); JsonSerializer serializer = new JsonSerializer().deep(true); String json = serializer.serialize(a1); jsonParser.parse(json); assertEquals(1, StringUtil.count(json, "a1")); assertEquals(0, StringUtil.count(json, "a2")); assertEquals(1, StringUtil.count(json, "pi")); }); }
@Test void testCircularDependency_propertyArray() { JsonParsers.forEachParser(jsonParser -> { A a1 = new A(); a1.setName("a1"); A a2 = new A(); a2.setName("a2"); B b = new B(); b.setProp("value"); b.setA(a1); // b -> a1, has circ.dep. b.addP(a1); b.addP(a2); // circular reference a1.setPi(b); JsonSerializer serializer = new JsonSerializer().deep(true); String json = serializer.serialize(a1); jsonParser.parse(json); assertEquals(1, StringUtil.count(json, "a1")); assertEquals(1, StringUtil.count(json, "a2")); }); } }
@Test void testNoClassHintsForCollections() { JsonParser.Defaults.classMetadataName = "class"; JsonSerializer.Defaults.classMetadataName = "class"; JsonParsers.forEachParser(jsonParser -> { Hero superman = creator.createSuperman(); String json = new JsonSerializer() .include("powers") // redudant .include("powers.class") .withSerializer("powers.class", new SimpleClassnameTransformer()) .exclude("*.class") .serialize(superman); int count = StringUtil.count(json, "***"); assertEquals(4, count); json = StringUtil.remove(json, "***"); Hero jsonSuperMan = jsonParser .map("lair", SecretLair.class) .map("secretIdentity", SecretIdentity.class) .parse(json, Hero.class); assertEquals("Fortress of Solitude", jsonSuperMan.getLair().getName()); assertHeroHasSuperPowers(jsonSuperMan); }); }
/** * Counts substring occurrences in a source string. * * @param source source string * @param sub substring to count * @return number of substring occurrences */ public static int count(String source, String sub) { return count(source, sub, 0); }
/** * Counts substring occurrences in a source string. * * @param source source string * @param sub substring to count * @return number of substring occurrences */ public static int count(final String source, final String sub) { return count(source, sub, 0); } public static int count(final String source, final String sub, final int start) {
public static int count(final String source, final char c) { return count(source, c, 0); } public static int count(final String source, final char c, final int start) {
public static int count(String source, char c) { return count(source, c, 0); }
@Test public void testDuplicateProjectedFieldExclusion() throws ParseException, LensException { String colsSelected = " union_join_ctx_cityid , union_join_ctx_msr1_greater_than_100, " + " sum(union_join_ctx_msr1) "; String whereCond = " union_join_ctx_zipcode = 'a' and union_join_ctx_cityid = 'b' and " + "(" + TWO_MONTHS_RANGE_UPTO_DAYS + ")"; String rewrittenQuery = rewrite("select " + colsSelected + " from basecube where " + whereCond, conf); assertTrue(rewrittenQuery.contains("UNION ALL")); assertEquals(StringUtil.count(rewrittenQuery, "sum((basecube.union_join_ctx_msr1))"), 2); }