private static void checkDbIdentifierCharacters(String identifier, String identifierDesc) { checkArgument(identifier.length() > 0, "Identifier must not be empty"); checkArgument( LOWER_CASE_ASCII_LETTERS_CHAR_MATCHER.or(DIGIT_CHAR_MATCHER).or(anyOf("_")).matchesAllOf(identifier), "%s must be lower case and contain only alphanumeric chars or '_', got '%s'", identifierDesc, identifier); checkArgument( DIGIT_CHAR_MATCHER.or(UNDERSCORE_CHAR_MATCHER).matchesNoneOf(identifier.subSequence(0, 1)), "%s must not start by a number or '_', got '%s'", identifierDesc, identifier); } }
public void testStringSplitWithTrim() { String jacksons = "arfo(Marlon)aorf, (Michael)orfa, afro(Jackie)orfa, " + "ofar(Jemaine), aff(Tito)"; Iterable<String> family = Splitter.on(",") .trimResults(CharMatcher.anyOf("afro").or(CharMatcher.whitespace())) .split(jacksons); assertThat(family) .containsExactly("(Marlon)", "(Michael)", "(Jackie)", "(Jemaine)", "(Tito)") .inOrder(); }
@GwtIncompatible // java.util.regex.Pattern public void testPatternSplitWithTrim() { String jacksons = "arfo(Marlon)aorf, (Michael)orfa, afro(Jackie)orfa, " + "ofar(Jemaine), aff(Tito)"; Iterable<String> family = Splitter.on(Pattern.compile(",")) .trimResults(CharMatcher.anyOf("afro").or(CharMatcher.whitespace())) .split(jacksons); assertThat(family) .containsExactly("(Marlon)", "(Michael)", "(Jackie)", "(Jemaine)", "(Tito)") .inOrder(); }
public void testCharacterSplitWithTrim() { String jacksons = "arfo(Marlon)aorf, (Michael)orfa, afro(Jackie)orfa, " + "ofar(Jemaine), aff(Tito)"; Iterable<String> family = COMMA_SPLITTER .trimResults(CharMatcher.anyOf("afro").or(CharMatcher.whitespace())) .split(jacksons); assertThat(family) .containsExactly("(Marlon)", "(Michael)", "(Jackie)", "(Jemaine)", "(Tito)") .inOrder(); }
@Override public String apply(JCImport input) { String importExpr = input.toString(); return CharMatcher.whitespace() .or(CharMatcher.is(';')) .trimTrailingFrom(importExpr); } }));
public void testAnyAndNone_logicalOps() throws Exception { // These are testing behavior that's never promised by the API, but since // we're lucky enough that these do pass, it saves us from having to write // more excruciating tests! Hooray! assertSame(CharMatcher.any(), CharMatcher.none().negate()); assertSame(CharMatcher.none(), CharMatcher.any().negate()); assertSame(WHATEVER, CharMatcher.any().and(WHATEVER)); assertSame(CharMatcher.any(), CharMatcher.any().or(WHATEVER)); assertSame(CharMatcher.none(), CharMatcher.none().and(WHATEVER)); assertSame(WHATEVER, CharMatcher.none().or(WHATEVER)); }
private void doTestTrimAndCollapse(String in, String out) { // Try a few different matchers which all match '-' and not 'x' for (char replacement : new char[] {'_', '-'}) { String expected = out.replace('_', replacement); assertEqualsSame(expected, in, is('-').trimAndCollapseFrom(in, replacement)); assertEqualsSame(expected, in, is('-').or(is('#')).trimAndCollapseFrom(in, replacement)); assertEqualsSame(expected, in, isNot('x').trimAndCollapseFrom(in, replacement)); assertEqualsSame(expected, in, is('x').negate().trimAndCollapseFrom(in, replacement)); assertEqualsSame(expected, in, anyOf("-").trimAndCollapseFrom(in, replacement)); assertEqualsSame(expected, in, anyOf("-#").trimAndCollapseFrom(in, replacement)); assertEqualsSame(expected, in, anyOf("-#123").trimAndCollapseFrom(in, replacement)); } }
private void doTestTrimLeadingFrom(String in, String out) { // Try a few different matchers which all match '-' and not 'x' assertEquals(out, is('-').trimLeadingFrom(in)); assertEquals(out, is('-').or(is('#')).trimLeadingFrom(in)); assertEquals(out, isNot('x').trimLeadingFrom(in)); assertEquals(out, is('x').negate().trimLeadingFrom(in)); assertEquals(out, anyOf("-#").trimLeadingFrom(in)); assertEquals(out, anyOf("-#123").trimLeadingFrom(in)); }
private void doTestTrimTrailingFrom(String in, String out) { // Try a few different matchers which all match '-' and not 'x' assertEquals(out, is('-').trimTrailingFrom(in)); assertEquals(out, is('-').or(is('#')).trimTrailingFrom(in)); assertEquals(out, isNot('x').trimTrailingFrom(in)); assertEquals(out, is('x').negate().trimTrailingFrom(in)); assertEquals(out, anyOf("-#").trimTrailingFrom(in)); assertEquals(out, anyOf("-#123").trimTrailingFrom(in)); }
private void doTestCollapse(String in, String out) { // Try a few different matchers which all match '-' and not 'x' // Try replacement chars that both do and do not change the value. for (char replacement : new char[] {'_', '-'}) { String expected = out.replace('_', replacement); assertEqualsSame(expected, in, is('-').collapseFrom(in, replacement)); assertEqualsSame(expected, in, is('-').collapseFrom(in, replacement)); assertEqualsSame(expected, in, is('-').or(is('#')).collapseFrom(in, replacement)); assertEqualsSame(expected, in, isNot('x').collapseFrom(in, replacement)); assertEqualsSame(expected, in, is('x').negate().collapseFrom(in, replacement)); assertEqualsSame(expected, in, anyOf("-").collapseFrom(in, replacement)); assertEqualsSame(expected, in, anyOf("-#").collapseFrom(in, replacement)); assertEqualsSame(expected, in, anyOf("-#123").collapseFrom(in, replacement)); } }
public static String getPhoenixType(String hiveTypeName) { if (hiveTypeName.startsWith("array")) { List<String> tokenList = Lists.newArrayList(Splitter.on(CharMatcher.is('<').or (CharMatcher.is('>'))).split(hiveTypeName)); return getPhoenixType(tokenList.get(1)) + "[]"; } else if (hiveTypeName.startsWith("int")) { return "integer"; } else if (hiveTypeName.equals("string")) { return "varchar"; } else { return hiveTypeName; } }
private void doTestTrimFrom(String in, String out) { // Try a few different matchers which all match '-' and not 'x' assertEquals(out, is('-').trimFrom(in)); assertEquals(out, is('-').or(is('#')).trimFrom(in)); assertEquals(out, isNot('x').trimFrom(in)); assertEquals(out, is('x').negate().trimFrom(in)); assertEquals(out, anyOf("-").trimFrom(in)); assertEquals(out, anyOf("-#").trimFrom(in)); assertEquals(out, anyOf("-#123").trimFrom(in)); }
public static String convertCommandNameToLogfileName(String str) { return CharMatcher.WHITESPACE.or(CharMatcher.is('/')).replaceFrom(str, '-').toLowerCase(); }
private void doTestCollapseWithNoChange(String inout) { assertSame(inout, is('-').collapseFrom(inout, '_')); assertSame(inout, is('-').or(is('#')).collapseFrom(inout, '_')); assertSame(inout, isNot('x').collapseFrom(inout, '_')); assertSame(inout, is('x').negate().collapseFrom(inout, '_')); assertSame(inout, anyOf("-").collapseFrom(inout, '_')); assertSame(inout, anyOf("-#").collapseFrom(inout, '_')); assertSame(inout, anyOf("-#123").collapseFrom(inout, '_')); assertSame(inout, CharMatcher.none().collapseFrom(inout, '_')); }
/** * The types in @template annotations must contain only letters, digits, and underscores. */ private static boolean validTemplateTypeName(String name) { return !name.isEmpty() && CharMatcher.javaLetterOrDigit().or(CharMatcher.is('_')).matchesAllOf(name); }
public void testAnyAndNone_logicalOps() throws Exception { // These are testing behavior that's never promised by the API, but since // we're lucky enough that these do pass, it saves us from having to write // more excruciating tests! Hooray! assertSame(CharMatcher.any(), CharMatcher.none().negate()); assertSame(CharMatcher.none(), CharMatcher.any().negate()); assertSame(WHATEVER, CharMatcher.any().and(WHATEVER)); assertSame(CharMatcher.any(), CharMatcher.any().or(WHATEVER)); assertSame(CharMatcher.none(), CharMatcher.none().and(WHATEVER)); assertSame(WHATEVER, CharMatcher.none().or(WHATEVER)); }