Example usage for com.google.common.base CharMatcher matchesAnyOf

List of usage examples for com.google.common.base CharMatcher matchesAnyOf

Introduction

In this page you can find the example usage for com.google.common.base CharMatcher matchesAnyOf.

Prototype

public boolean matchesAnyOf(CharSequence sequence) 

Source Link

Document

Returns true if a character sequence contains at least one matching character.

Usage

From source file:com.eucalyptus.compute.common.internal.tags.Filters.java

/**
 * Escape any wildcards in a filter value so it can be used as a literal.
 *
 * <p>Escapes \ * and ? using a \<\p>
 *
 * @param filterValue The value to escape
 * @return The escaped filter value/*from  w  ww.j ava 2  s  . c  om*/
 */
@Nonnull
public static String escape(@Nonnull final CharSequence filterValue) {
    final String escaped;
    final CharMatcher syntaxMatcher = CharMatcher.anyOf("\\*?");
    if (syntaxMatcher.matchesAnyOf(filterValue)) {
        final StringBuilder escapedBuffer = new StringBuilder(filterValue.length() + 8);
        for (int i = 0; i < filterValue.length(); i++) {
            final char character = filterValue.charAt(i);
            switch (character) {
            case '\\':
            case '*':
            case '?':
                escapedBuffer.append('\\');
                // fall through
            default:
                escapedBuffer.append(character);
            }
        }
        escaped = escapedBuffer.toString();
    } else {
        escaped = filterValue.toString();
    }

    return escaped;
}

From source file:org.opendaylight.restconf.parser.builder.YangInstanceIdentifierDeserializer.java

private static String findAndParsePercentEncoded(final String preparedPrefix) {
    if (!preparedPrefix.contains(String.valueOf(ParserBuilderConstants.Deserializer.PERCENT_ENCODING))) {
        return preparedPrefix;
    }//from  w  w  w.ja v a 2 s.co m

    final StringBuilder parsedPrefix = new StringBuilder(preparedPrefix);
    final CharMatcher matcher = CharMatcher.is(ParserBuilderConstants.Deserializer.PERCENT_ENCODING);

    while (matcher.matchesAnyOf(parsedPrefix)) {
        final int percentCharPosition = matcher.indexIn(parsedPrefix);
        parsedPrefix
                .replace(percentCharPosition,
                        percentCharPosition + ParserBuilderConstants.Deserializer.LAST_ENCODED_CHAR,
                        String.valueOf((char) Integer.parseInt(parsedPrefix.substring(
                                percentCharPosition + ParserBuilderConstants.Deserializer.FIRST_ENCODED_CHAR,
                                percentCharPosition + ParserBuilderConstants.Deserializer.LAST_ENCODED_CHAR),
                                ParserBuilderConstants.Deserializer.PERCENT_ENCODED_RADIX)));
    }

    return parsedPrefix.toString();
}

From source file:fredboat.Config.java

private static String cleanTabs(String content, String file) {
    CharMatcher tab = CharMatcher.is('\t');
    if (tab.matchesAnyOf(content)) {
        log.warn("{} contains tab characters! Trying a fix-up.", file);
        return tab.replaceFrom(content, "  ");
    } else {//from  w w  w .j av  a 2 s.  c om
        return content;
    }
}

From source file:com.eucalyptus.compute.common.internal.tags.FilterSupport.java

/**
 * Escape wildcards for like literals/* ww w.  j a va  2s  .  c  o  m*/
 *
 * Escapes \ % and _ using a \
 */
static String escapeLikeWildcards(final String literalExpression) {
    final String escaped;
    final CharMatcher syntaxMatcher = CharMatcher.anyOf("\\%_");
    if (syntaxMatcher.matchesAnyOf(literalExpression)) {
        final StringBuilder escapedBuffer = new StringBuilder();
        for (final char character : literalExpression.toCharArray()) {
            switch (character) {
            case '\\':
            case '_':
            case '%':
                escapedBuffer.append('\\');
            default:
                escapedBuffer.append(character);
            }
        }
        escaped = escapedBuffer.toString();
    } else {
        escaped = literalExpression;
    }

    return escaped;
}

From source file:com.eucalyptus.compute.common.internal.tags.FilterSupport.java

/**
 * Translate wildcards from AWS to some other syntax
 *//*  ww  w  . j  a va  2  s  .c o m*/
static boolean translateWildcards(final String filterPattern, final StringBuilder translated,
        final String matchOne, final String matchZeroOrMore, final Function<String, String> escapeFunction) {
    boolean foundWildcard = false;
    final CharMatcher syntaxMatcher = CharMatcher.anyOf("\\*?");
    if (syntaxMatcher.matchesAnyOf(filterPattern)) {
        // Process for wildcards
        boolean escaped = false;
        for (final char character : filterPattern.toCharArray()) {
            switch (character) {
            case '\\':
            case '?':
            case '*':
                if (!escaped) {
                    switch (character) {
                    case '\\':
                        escaped = true;
                        break;
                    case '?':
                        foundWildcard = true;
                        translated.append(matchOne);
                        break;
                    case '*':
                        foundWildcard = true;
                        translated.append(matchZeroOrMore);
                        break;
                    }
                    break;
                }
                escaped = false;
            default:
                if (escaped) {
                    translated.append(escapeFunction.apply("\\"));
                }
                escaped = false;
                translated.append(escapeFunction.apply(Character.toString(character)));
            }
        }
        if (escaped) {
            translated.append(escapeFunction.apply("\\"));
        }
    } else {
        translated.append(escapeFunction.apply(filterPattern));
    }

    return foundWildcard;
}