Example usage for com.google.common.collect ImmutableMap.Builder ImmutableMap.Builder

List of usage examples for com.google.common.collect ImmutableMap.Builder ImmutableMap.Builder

Introduction

In this page you can find the example usage for com.google.common.collect ImmutableMap.Builder ImmutableMap.Builder.

Prototype

ImmutableMap.Builder

Source Link

Usage

From source file:org.grammaticalframework.reader.Abstract.java

public Abstract(String name, Map<String, RLiteral> _flags, AbsFun[] _absFuns, AbsCat[] _absCats) {
    this.name = name;
    flags = _flags;//from   w  ww  . j  ava 2 s  . c  o  m
    absFuns = _absFuns;
    absCats = _absCats;
    ImmutableMap.Builder<String, AbsCat> catBuilder = new ImmutableMap.Builder<String, AbsCat>();
    for (AbsCat c : absCats)
        catBuilder.put(c.name, c);
    categories = catBuilder.build();

    ImmutableMap.Builder<String, AbsFun> funBuilder = new ImmutableMap.Builder<String, AbsFun>();
    for (AbsFun f : absFuns)
        funBuilder.put(f.name, f);
    functions = funBuilder.build();
}

From source file:com.sk89q.intake.argument.CommandContext.java

/**
 * Parse the given array of arguments.//from ww  w.  ja  v  a  2s.  com
 * 
 * <p>Empty arguments are removed from the list of arguments.</p>
 *
 * @param args             an array with arguments
 * @param expectedValueFlags       a set containing all value flags (pass null to disable value flag parsing)
 * @param allowHangingFlag true if hanging flags are allowed
 * @param namespace        the locals, null to create empty one
 * @throws CommandException thrown on a parsing error
 */
public CommandContext(String[] args, Set<Character> expectedValueFlags, boolean allowHangingFlag,
        Namespace namespace) throws CommandException {
    if (expectedValueFlags == null) {
        expectedValueFlags = Collections.emptySet();
    }

    originalArgs = args;
    command = args[0];
    this.namespace = namespace != null ? namespace : new Namespace();
    boolean isHanging = false;
    SuggestionContext suggestionContext = SuggestionContext.hangingValue();

    // Eliminate empty args and combine multiword args first
    List<Integer> argIndexList = new ArrayList<Integer>(args.length);
    List<String> argList = new ArrayList<String>(args.length);
    for (int i = 1; i < args.length; ++i) {
        isHanging = false;

        String arg = args[i];
        if (arg.isEmpty()) {
            isHanging = true;
            continue;
        }

        argIndexList.add(i);

        switch (arg.charAt(0)) {
        case '\'':
        case '"':
            final StringBuilder build = new StringBuilder();
            final char quotedChar = arg.charAt(0);

            int endIndex;
            for (endIndex = i; endIndex < args.length; ++endIndex) {
                final String arg2 = args[endIndex];
                if (arg2.charAt(arg2.length() - 1) == quotedChar && arg2.length() > 1) {
                    if (endIndex != i)
                        build.append(' ');
                    build.append(arg2.substring(endIndex == i ? 1 : 0, arg2.length() - 1));
                    break;
                } else if (endIndex == i) {
                    build.append(arg2.substring(1));
                } else {
                    build.append(' ').append(arg2);
                }
            }

            if (endIndex < args.length) {
                arg = build.toString();
                i = endIndex;
            }

            // In case there is an empty quoted string
            if (arg.isEmpty()) {
                continue;
            }
            // else raise exception about hanging quotes?
        }
        argList.add(arg);
    }

    // Then flags

    List<Integer> originalArgIndices = Lists.newArrayListWithCapacity(argIndexList.size());
    List<String> parsedArgs = Lists.newArrayListWithCapacity(argList.size());
    Map<Character, String> valueFlags = Maps.newHashMap();
    List<Character> booleanFlags = Lists.newArrayList();

    for (int nextArg = 0; nextArg < argList.size();) {
        // Fetch argument
        String arg = argList.get(nextArg++);
        suggestionContext = SuggestionContext.hangingValue();

        // Not a flag?
        if (arg.charAt(0) != '-' || arg.length() == 1 || !arg.matches("^-[a-zA-Z\\?]+$")) {
            if (!isHanging) {
                suggestionContext = SuggestionContext.lastValue();
            }

            originalArgIndices.add(argIndexList.get(nextArg - 1));
            parsedArgs.add(arg);
            continue;
        }

        // Handle flag parsing terminator --
        if (arg.equals("--")) {
            while (nextArg < argList.size()) {
                originalArgIndices.add(argIndexList.get(nextArg));
                parsedArgs.add(argList.get(nextArg++));
            }
            break;
        }

        // Go through the flag characters
        for (int i = 1; i < arg.length(); ++i) {
            char flagName = arg.charAt(i);

            if (expectedValueFlags.contains(flagName)) {
                if (valueFlags.containsKey(flagName)) {
                    throw new CommandException("Value flag '" + flagName + "' already given");
                }

                if (nextArg >= argList.size()) {
                    if (allowHangingFlag) {
                        suggestionContext = SuggestionContext.flag(flagName);
                        break;
                    } else {
                        throw new CommandException("No value specified for the '-" + flagName + "' flag.");
                    }
                }

                // If it is a value flag, read another argument and add it
                valueFlags.put(flagName, argList.get(nextArg++));
                if (!isHanging) {
                    suggestionContext = SuggestionContext.flag(flagName);
                }
            } else {
                booleanFlags.add(flagName);
            }
        }
    }

    ImmutableMap.Builder<Character, String> allFlagsBuilder = new ImmutableMap.Builder<Character, String>()
            .putAll(valueFlags);
    for (Character flag : booleanFlags) {
        allFlagsBuilder.put(flag, "true");
    }

    this.parsedArgs = ImmutableList.copyOf(parsedArgs);
    this.originalArgIndices = ImmutableList.copyOf(originalArgIndices);
    this.booleanFlags = ImmutableSet.copyOf(booleanFlags);
    this.valueFlags = ImmutableMap.copyOf(valueFlags);
    this.allFlags = allFlagsBuilder.build();
    this.suggestionContext = suggestionContext;
}

From source file:com.android.tools.idea.wizard.TemplateParameterStep2.java

private Map<String, Object> getImplicitParameters() {
    ImmutableMap.Builder<String, Object> builder = new ImmutableMap.Builder<String, Object>();
    for (Key<String> parameter : AddAndroidActivityPath.IMPLICIT_PARAMETERS) {
        String value = myState.get(parameter);
        if (value != null) {
            builder.put(parameter.name, value);
        }/*from www .ja  va 2 s  . com*/
    }
    return builder.build();
}

From source file:com.android.tools.idea.npw.TemplateParameterStep2.java

private Map<String, Object> getImplicitParameters() {
    ImmutableMap.Builder<String, Object> builder = new ImmutableMap.Builder<>();
    for (Key<?> parameter : AddAndroidActivityPath.IMPLICIT_PARAMETERS) {
        Object value = myState.get(parameter);
        if (value != null) {
            builder.put(parameter.name, value);
        }//from   w  w w  .j  a v  a 2s . c  o m
    }
    return builder.build();
}

From source file:edu.cmu.lti.oaqa.baseqa.passage.rerank.scorers.LuceneInMemoryPassageScorer.java

@Override
public Map<String, Double> score(JCas jcas, Passage result) {
    ImmutableMap.Builder<String, Double> ret = new ImmutableMap.Builder<>();
    String uri = TypeUtil.getUriOffsets(result, ":");
    for (String conf : confs) {
        double rank = uri2conf2rank.contains(uri, conf) ? 1.0 / (uri2conf2rank.get(uri, conf) + 1.0) : 0.0;
        ret.put(conf + "/rank", rank);
        double score = uri2conf2score.contains(uri, conf) ? uri2conf2score.get(uri, conf) : 0.0;
        ret.put(conf + "/score", score);
    }//from   www . jav  a 2s  .c o m
    return ret.build();
}

From source file:edu.cmu.lti.oaqa.baseqa.document.rerank.scorers.LuceneDocumentScorer.java

@Override
public Map<String, Double> score(JCas jcas, Document result) {
    ImmutableMap.Builder<String, Double> ret = new ImmutableMap.Builder<>();
    String uri = result.getUri();
    for (String conf : confs) {
        double rank = uri2conf2rank.contains(uri, conf) ? 1.0 / (uri2conf2rank.get(uri, conf) + 1.0) : 0.0;
        ret.put(conf + "/rank", rank);
        double score = uri2conf2score.contains(uri, conf) ? uri2conf2score.get(uri, conf) : 0.0;
        ret.put(conf + "/score", score);
    }/* w ww  .j a va  2 s.com*/
    return ret.build();
}

From source file:edu.cmu.lti.oaqa.baseqa.concept.rerank.scorers.LuceneConceptScorer.java

@Override
public Map<String, Double> score(JCas jcas, ConceptSearchResult result) {
    ImmutableMap.Builder<String, Double> ret = new ImmutableMap.Builder<>();
    String uri = result.getUri();
    for (String conf : confs) {
        double rank = uri2conf2rank.contains(uri, conf) ? 1.0 / (uri2conf2rank.get(uri, conf) + 1.0) : 0.0;
        ret.put(conf + "/rank", rank);
        double score = uri2conf2score.contains(uri, conf) ? uri2conf2score.get(uri, conf) : 0.0;
        ret.put(conf + "/score", score);
    }/* www  .j  a va2s.  c om*/
    return ret.build();
}