private static void addToTable(Table<String, String, List<Rule>> table, DefaultRule r) { if (r.internalKey() == null) { return; } List<Rule> ruleList = table.get(r.key().repository(), r.internalKey()); if (ruleList == null) { ruleList = new LinkedList<>(); } ruleList.add(r); table.put(r.key().repository(), r.internalKey(), ruleList); }
DefaultRules(Collection<NewRule> newRules) { Map<RuleKey, Rule> rulesByRuleKeyBuilder = new HashMap<>(); ImmutableListMultimap.Builder<String, Rule> builder = ImmutableListMultimap.builder(); Table<String, String, List<Rule>> tableBuilder = HashBasedTable.create(); for (NewRule newRule : newRules) { DefaultRule r = new DefaultRule(newRule); rulesByRuleKeyBuilder.put(r.key(), r); builder.put(r.key().repository(), r); addToTable(tableBuilder, r); } rulesByRuleKey = Collections.unmodifiableMap(rulesByRuleKeyBuilder); rulesByRepository = builder.build(); rulesByRepositoryAndInternalKey = ImmutableTable.copyOf(tableBuilder); }
private static void addToTable(Table<String, String, List<Rule>> table, DefaultRule r) { if (r.internalKey() == null) { return; } List<Rule> ruleList = table.get(r.key().repository(), r.internalKey()); if (ruleList == null) { ruleList = new LinkedList<>(); } ruleList.add(r); table.put(r.key().repository(), r.internalKey(), ruleList); }
DefaultRules(Collection<NewRule> newRules) { Map<RuleKey, Rule> rulesByRuleKeyBuilder = new HashMap<>(); ImmutableListMultimap.Builder<String, Rule> builder = ImmutableListMultimap.builder(); Table<String, String, List<Rule>> tableBuilder = HashBasedTable.create(); for (NewRule newRule : newRules) { DefaultRule r = new DefaultRule(newRule); rulesByRuleKeyBuilder.put(r.key(), r); builder.put(r.key().repository(), r); addToTable(tableBuilder, r); } rulesByRuleKey = Collections.unmodifiableMap(rulesByRuleKeyBuilder); rulesByRepository = builder.build(); rulesByRepositoryAndInternalKey = ImmutableTable.copyOf(tableBuilder); }
DefaultRules(Collection<NewRule> newRules) { ImmutableListMultimap.Builder<String, Rule> builder = ImmutableListMultimap.builder(); for (NewRule newRule : newRules) { DefaultRule r = new DefaultRule(newRule); builder.put(r.key().repository(), r); } rulesByRepository = builder.build(); }