All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.github.ykrasik.jaci.util.trie.Tries Maven / Gradle / Ivy

/******************************************************************************
 * Copyright (C) 2014 Yevgeny Krasik                                          *
 *                                                                            *
 * Licensed under the Apache License, Version 2.0 (the "License");            *
 * you may not use this file except in compliance with the License.           *
 * You may obtain a copy of the License at                                    *
 *                                                                            *
 * http://www.apache.org/licenses/LICENSE-2.0                                 *
 *                                                                            *
 * Unless required by applicable law or agreed to in writing, software        *
 * distributed under the License is distributed on an "AS IS" BASIS,          *
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.   *
 * See the License for the specific language governing permissions and        *
 * limitations under the License.                                             *
 ******************************************************************************/

package com.github.ykrasik.jaci.util.trie;

import java.util.Arrays;
import java.util.List;

/**
 * Trie related utilities.
 *
 * @author Yevgeny Krasik
 */
// TODO: I think this class can be deleted.
public final class Tries {
    private Tries() { }

    /**
     * @param  Type of {@link Trie}.
     * @return An empty {@link Trie}.
     */
    // TODO: Only used from CliDirectory...
    public static  Trie emptyTrie() {
        return TrieNode.emptyTrie();
    }

    /**
     * Sometimes a Trie's values aren't important, only the words matter.
     * Convenience method that associates each word with an empty value.
     *
     * @param words Words to put in the Trie.
     * @return A Trie where each word is associated to an empty value.
     */
    // TODO: This is only used in tests now, so find a more suitable place for it.
    public static Trie toStringTrie(String... words) {
        return toStringTrie(Arrays.asList(words));
    }

    /**
     * Sometimes a Trie's values aren't important, only the words matter.
     * Convenience method that associates each word with an empty value.
     *
     * @param words Words to put in the Trie.
     * @return A Trie where each word is associated to an empty value.
     */
    public static Trie toStringTrie(List words) {
        final TrieBuilder builder = new TrieBuilder<>();
        for (String word : words) {
            builder.add(word, "");
        }
        return builder.build();
    }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy