@Nullable public IndexingRule getApplicableIndexingRule(String primaryNodeType) { //This method would be invoked for every node. So be as //conservative as possible in object creation List<IndexingRule> rules = null; List<IndexingRule> r = indexRules.get(primaryNodeType); if (r != null) { rules = new ArrayList<IndexingRule>(); rules.addAll(r); } if (rules != null) { for (IndexingRule rule : rules) { if (rule.appliesTo(primaryNodeType)) { return rule; } } } // no applicable rule return null; }
if (rule.appliesTo(state)) { return rule;