Example usage for java.text Collator NO_DECOMPOSITION

List of usage examples for java.text Collator NO_DECOMPOSITION

Introduction

In this page you can find the example usage for java.text Collator NO_DECOMPOSITION.

Prototype

int NO_DECOMPOSITION

To view the source code for java.text Collator NO_DECOMPOSITION.

Click Source Link

Document

Decomposition mode value.

Usage

From source file:Decomposition.java

public void compare(Collator c, String a, String b) {
    switch (c.getDecomposition()) {
    case Collator.NO_DECOMPOSITION:
        System.out.print(" NO DECOMPOSITION: ");
        break;// w  ww . j a v a2s . c o m
    case Collator.CANONICAL_DECOMPOSITION:
        System.out.print(" CANONICAL DECOMPOSITION: ");
        break;
    case Collator.FULL_DECOMPOSITION:
        System.out.print(" FULL DECOMPOSITION: ");
        break;
    default:
        System.out.print(" UNKNOWN DECOMPOSITION: ");
    }

    if (c.equals(a, b))
        System.out.println("The strings are equal.");
    else
        System.out.println("The strings are NOT equal.");
}

From source file:Decomposition.java

public Decomposition() {
    String pairs[][] = new String[3][3];
    pairs[0][0] = "Half-Width and full-width A";
    pairs[0][1] = "A";
    pairs[0][2] = "\uFF21"; // full-width A
    pairs[1][0] = "A with Ring and Angstrom Sign";
    pairs[1][1] = "\u00c5"; // A with ring
    pairs[1][2] = "\u212b"; // Angstrom
    pairs[2][0] = "a + umlaut and precomposed a-umlaut";
    pairs[2][1] = "a\u0308";
    pairs[2][2] = "\u00e4";

    for (int i = 0; i < 3; i++) {
        Collator collate = Collator.getInstance(Locale.US);
        collate.setStrength(Collator.IDENTICAL);

        System.out.println("Comparing " + pairs[i][0]);
        collate.setDecomposition(Collator.NO_DECOMPOSITION);
        compare(collate, pairs[i][1], pairs[i][2]);

        collate.setDecomposition(Collator.CANONICAL_DECOMPOSITION);
        compare(collate, pairs[i][1], pairs[i][2]);

        collate.setDecomposition(Collator.FULL_DECOMPOSITION);
        compare(collate, pairs[i][1], pairs[i][2]);
        System.out.println("");
    }//from ww  w.ja  v  a2 s.c  o m
}

From source file:io.gravitee.gateway.services.sync.SyncManager.java

private boolean hasMatchingTags(Api api) {
    final Optional<List<String>> optTagList = gatewayConfiguration.shardingTags();

    if (optTagList.isPresent()) {
        List<String> tagList = optTagList.get();
        if (api.getTags() != null) {
            final List<String> inclusionTags = tagList.stream().map(String::trim)
                    .filter(tag -> !tag.startsWith("!")).collect(Collectors.toList());

            final List<String> exclusionTags = tagList.stream().map(String::trim)
                    .filter(tag -> tag.startsWith("!")).map(tag -> tag.substring(1))
                    .collect(Collectors.toList());

            if (inclusionTags.stream().filter(exclusionTags::contains).count() > 0) {
                throw new IllegalArgumentException("You must not configure a tag to be included and excluded");
            }/* w w w.  j av  a2s .c o m*/

            final boolean hasMatchingTags = inclusionTags.stream()
                    .anyMatch(tag -> api.getTags().stream().anyMatch(apiTag -> {
                        final Collator collator = Collator.getInstance();
                        collator.setStrength(Collator.NO_DECOMPOSITION);
                        return collator.compare(tag, apiTag) == 0;
                    })) || (!exclusionTags.isEmpty() && exclusionTags.stream()
                            .noneMatch(tag -> api.getTags().stream().anyMatch(apiTag -> {
                                final Collator collator = Collator.getInstance();
                                collator.setStrength(Collator.NO_DECOMPOSITION);
                                return collator.compare(tag, apiTag) == 0;
                            })));

            if (!hasMatchingTags) {
                logger.info("The API {} has been ignored because not in configured tags {}", api.getName(),
                        tagList);
            }
            return hasMatchingTags;
        }
        logger.info("Tags {} are configured on gateway instance but not found on the API {}", tagList,
                api.getName());
        return false;
    }
    // no tags configured on this gateway instance
    return true;
}

From source file:org.apache.solr.analysis.CollationKeyFilterFactory.java

public void inform(ResourceLoader loader) {
    String custom = args.get("custom");
    String language = args.get("language");
    String country = args.get("country");
    String variant = args.get("variant");
    String strength = args.get("strength");
    String decomposition = args.get("decomposition");

    if (custom == null && language == null)
        throw new SolrException(ErrorCode.SERVER_ERROR, "Either custom or language is required.");

    if (custom != null && (language != null || country != null || variant != null))
        throw new SolrException(ErrorCode.SERVER_ERROR, "Cannot specify both language and custom. "
                + "To tailor rules for a built-in language, see the javadocs for RuleBasedCollator. "
                + "Then save the entire customized ruleset to a file, and use with the custom parameter");

    if (language != null) {
        // create from a system collator, based on Locale.
        collator = createFromLocale(language, country, variant);
    } else {/*from   ww  w .  j ava 2 s  . c  o m*/
        // create from a custom ruleset
        collator = createFromRules(custom, loader);
    }

    // set the strength flag, otherwise it will be the default.
    if (strength != null) {
        if (strength.equalsIgnoreCase("primary"))
            collator.setStrength(Collator.PRIMARY);
        else if (strength.equalsIgnoreCase("secondary"))
            collator.setStrength(Collator.SECONDARY);
        else if (strength.equalsIgnoreCase("tertiary"))
            collator.setStrength(Collator.TERTIARY);
        else if (strength.equalsIgnoreCase("identical"))
            collator.setStrength(Collator.IDENTICAL);
        else
            throw new SolrException(ErrorCode.SERVER_ERROR, "Invalid strength: " + strength);
    }

    // set the decomposition flag, otherwise it will be the default.
    if (decomposition != null) {
        if (decomposition.equalsIgnoreCase("no"))
            collator.setDecomposition(Collator.NO_DECOMPOSITION);
        else if (decomposition.equalsIgnoreCase("canonical"))
            collator.setDecomposition(Collator.CANONICAL_DECOMPOSITION);
        else if (decomposition.equalsIgnoreCase("full"))
            collator.setDecomposition(Collator.FULL_DECOMPOSITION);
        else
            throw new SolrException(ErrorCode.SERVER_ERROR, "Invalid decomposition: " + decomposition);
    }
}

From source file:org.apache.solr.schema.CollationField.java

/**
 * Setup the field according to the provided parameters
 *//*from   www.j av  a  2  s  .  com*/
private void setup(ResourceLoader loader, Map<String, String> args) {
    String custom = args.remove("custom");
    String language = args.remove("language");
    String country = args.remove("country");
    String variant = args.remove("variant");
    String strength = args.remove("strength");
    String decomposition = args.remove("decomposition");

    final Collator collator;

    if (custom == null && language == null)
        throw new SolrException(ErrorCode.SERVER_ERROR, "Either custom or language is required.");

    if (custom != null && (language != null || country != null || variant != null))
        throw new SolrException(ErrorCode.SERVER_ERROR, "Cannot specify both language and custom. "
                + "To tailor rules for a built-in language, see the javadocs for RuleBasedCollator. "
                + "Then save the entire customized ruleset to a file, and use with the custom parameter");

    if (language != null) {
        // create from a system collator, based on Locale.
        collator = createFromLocale(language, country, variant);
    } else {
        // create from a custom ruleset
        collator = createFromRules(custom, loader);
    }

    // set the strength flag, otherwise it will be the default.
    if (strength != null) {
        if (strength.equalsIgnoreCase("primary"))
            collator.setStrength(Collator.PRIMARY);
        else if (strength.equalsIgnoreCase("secondary"))
            collator.setStrength(Collator.SECONDARY);
        else if (strength.equalsIgnoreCase("tertiary"))
            collator.setStrength(Collator.TERTIARY);
        else if (strength.equalsIgnoreCase("identical"))
            collator.setStrength(Collator.IDENTICAL);
        else
            throw new SolrException(ErrorCode.SERVER_ERROR, "Invalid strength: " + strength);
    }

    // set the decomposition flag, otherwise it will be the default.
    if (decomposition != null) {
        if (decomposition.equalsIgnoreCase("no"))
            collator.setDecomposition(Collator.NO_DECOMPOSITION);
        else if (decomposition.equalsIgnoreCase("canonical"))
            collator.setDecomposition(Collator.CANONICAL_DECOMPOSITION);
        else if (decomposition.equalsIgnoreCase("full"))
            collator.setDecomposition(Collator.FULL_DECOMPOSITION);
        else
            throw new SolrException(ErrorCode.SERVER_ERROR, "Invalid decomposition: " + decomposition);
    }
    analyzer = new CollationKeyAnalyzer(collator);
}