/** * Returns all the fields that match the given pattern. If the pattern is prefixed with a type * then the fields will be returned with a type prefix. */ public Set<String> simpleMatchToIndexNames(String pattern) { if (!Regex.isSimpleMatchPattern(pattern)) { return ImmutableSet.of(pattern); } int dotIndex = pattern.indexOf('.'); if (dotIndex != -1) { String possibleType = pattern.substring(0, dotIndex); DocumentMapper possibleDocMapper = mappers.get(possibleType); if (possibleDocMapper != null) { Set<String> typedFields = Sets.newHashSet(); for (String indexName : possibleDocMapper.mappers().simpleMatchToIndexNames(pattern)) { typedFields.add(possibleType + "." + indexName); } return typedFields; } } return fieldMappers.simpleMatchToIndexNames(pattern); }
private void removeObjectAndFieldMappers(DocumentMapper docMapper) { synchronized (mappersMutex) { fieldMappers.removeMappers(docMapper.mappers()); ImmutableOpenMap.Builder<String, ObjectMappers> fullPathObjectMappers = ImmutableOpenMap.builder(this.fullPathObjectMappers); for (ObjectMapper mapper : docMapper.objectMappers().values()) { ObjectMappers mappers = fullPathObjectMappers.get(mapper.fullPath()); if (mappers != null) { mappers = mappers.remove(mapper); if (mappers.isEmpty()) { fullPathObjectMappers.remove(mapper.fullPath()); } else { fullPathObjectMappers.put(mapper.fullPath(), mappers); } } } this.fullPathObjectMappers = fullPathObjectMappers.build(); } }
/** * Returns the {@link FieldMappers} of all the {@link FieldMapper}s that are registered under the * give fullName across all the different {@link DocumentMapper} types. * * @param fullName The full name * @return All teh {@link FieldMappers} across all the {@link DocumentMapper}s for the given * fullName. */ public FieldMappers fullName(String fullName) { return fieldMappers.fullName(fullName); }
/** * Returns {@link FieldMappers} for all the {@link FieldMapper}s that are registered under the * given indexName across all the different {@link DocumentMapper} types. * * @param indexName The indexName to return all the {@link FieldMappers} for across all {@link * DocumentMapper}s. * @return All the {@link FieldMappers} across all {@link DocumentMapper}s for the given * indexName. */ public FieldMappers indexName(String indexName) { return fieldMappers.indexName(indexName); }
/** * Returns {@link FieldMappers} for all the {@link FieldMapper}s that are registered under the * given name across all the different {@link DocumentMapper} types. * * @param name The name to return all the {@link FieldMappers} for across all {@link * DocumentMapper}s. * @return All the {@link FieldMappers} for across all {@link DocumentMapper}s */ public FieldMappers name(String name) { return fieldMappers.name(name); }