/** * Adds mappers from the end of the stack that exist as updates within those mappers. * Returns the next unprocessed index from nameParts. */ private static int expandCommonMappers(List<ObjectMapper> parentMappers, String[] nameParts, int i) { ObjectMapper last = parentMappers.get(parentMappers.size() - 1); while (i < nameParts.length - 1 && last.getMapper(nameParts[i]) != null) { Mapper newLast = last.getMapper(nameParts[i]); assert newLast instanceof ObjectMapper; last = (ObjectMapper) newLast; parentMappers.add(last); ++i; } return i; }
private static Mapper getMapper(ObjectMapper objectMapper, String fieldName, String[] subfields) { for (int i = 0; i < subfields.length - 1; ++i) { Mapper mapper = objectMapper.getMapper(subfields[i]); if (mapper == null || (mapper instanceof ObjectMapper) == false) { return null; } objectMapper = (ObjectMapper)mapper; if (objectMapper.nested().isNested()) { throw new MapperParsingException("Cannot add a value for field [" + fieldName + "] since one of the intermediate objects is mapped as a nested object: [" + mapper.name() + "]"); } } return objectMapper.getMapper(subfields[subfields.length - 1]); } }
/** Build an update for the parent which will contain the given mapper and any intermediate fields. */ private static ObjectMapper createUpdate(ObjectMapper parent, String[] nameParts, int i, Mapper mapper) { List<ObjectMapper> parentMappers = new ArrayList<>(); ObjectMapper previousIntermediate = parent; for (; i < nameParts.length - 1; ++i) { Mapper intermediate = previousIntermediate.getMapper(nameParts[i]); assert intermediate != null : "Field " + previousIntermediate.name() + " does not have a subfield " + nameParts[i]; assert intermediate instanceof ObjectMapper; parentMappers.add((ObjectMapper)intermediate); previousIntermediate = (ObjectMapper)intermediate; } if (parentMappers.isEmpty() == false) { // add the new mapper to the stack, and pop down to the original parent level addToLastMapper(parentMappers, mapper, false); popMappers(parentMappers, 1, false); mapper = parentMappers.get(0); } return parent.mappingUpdate(mapper); }
/** * Adds mappers from the end of the stack that exist as updates within those mappers. * Returns the next unprocessed index from nameParts. */ private static int expandCommonMappers(List<ObjectMapper> parentMappers, String[] nameParts, int i) { ObjectMapper last = parentMappers.get(parentMappers.size() - 1); while (i < nameParts.length - 1 && last.getMapper(nameParts[i]) != null) { Mapper newLast = last.getMapper(nameParts[i]); assert newLast instanceof ObjectMapper; last = (ObjectMapper) newLast; parentMappers.add(last); ++i; } return i; }
/** * Adds mappers from the end of the stack that exist as updates within those mappers. * Returns the next unprocessed index from nameParts. */ private static int expandCommonMappers(List<ObjectMapper> parentMappers, String[] nameParts, int i) { ObjectMapper last = parentMappers.get(parentMappers.size() - 1); while (i < nameParts.length - 1 && last.getMapper(nameParts[i]) != null) { Mapper newLast = last.getMapper(nameParts[i]); assert newLast instanceof ObjectMapper; last = (ObjectMapper) newLast; parentMappers.add(last); ++i; } return i; }
/** * Adds mappers from the end of the stack that exist as updates within those mappers. * Returns the next unprocessed index from nameParts. */ private static int expandCommonMappers(List<ObjectMapper> parentMappers, String[] nameParts, int i) { ObjectMapper last = parentMappers.get(parentMappers.size() - 1); while (i < nameParts.length - 1 && last.getMapper(nameParts[i]) != null) { Mapper newLast = last.getMapper(nameParts[i]); assert newLast instanceof ObjectMapper; last = (ObjectMapper) newLast; parentMappers.add(last); ++i; } return i; }
private static Mapper getMapper(ObjectMapper objectMapper, String fieldName, String[] subfields) { for (int i = 0; i < subfields.length - 1; ++i) { Mapper mapper = objectMapper.getMapper(subfields[i]); if (mapper == null || (mapper instanceof ObjectMapper) == false) { return null; } objectMapper = (ObjectMapper)mapper; if (objectMapper.nested().isNested()) { throw new MapperParsingException("Cannot add a value for field [" + fieldName + "] since one of the intermediate objects is mapped as a nested object: [" + mapper.name() + "]"); } } return objectMapper.getMapper(subfields[subfields.length - 1]); } }
private static Mapper getMapper(ObjectMapper objectMapper, String fieldName, String[] subfields) { for (int i = 0; i < subfields.length - 1; ++i) { Mapper mapper = objectMapper.getMapper(subfields[i]); if (mapper == null || (mapper instanceof ObjectMapper) == false) { return null; } objectMapper = (ObjectMapper)mapper; if (objectMapper.nested().isNested()) { throw new MapperParsingException("Cannot add a value for field [" + fieldName + "] since one of the intermediate objects is mapped as a nested object: [" + mapper.name() + "]"); } } return objectMapper.getMapper(subfields[subfields.length - 1]); } }
/** Build an update for the parent which will contain the given mapper and any intermediate fields. */ private static ObjectMapper createUpdate(ObjectMapper parent, String[] nameParts, int i, Mapper mapper) { List<ObjectMapper> parentMappers = new ArrayList<>(); ObjectMapper previousIntermediate = parent; for (; i < nameParts.length - 1; ++i) { Mapper intermediate = previousIntermediate.getMapper(nameParts[i]); assert intermediate != null : "Field " + previousIntermediate.name() + " does not have a subfield " + nameParts[i]; assert intermediate instanceof ObjectMapper; parentMappers.add((ObjectMapper)intermediate); previousIntermediate = (ObjectMapper)intermediate; } if (parentMappers.isEmpty() == false) { // add the new mapper to the stack, and pop down to the original parent level addToLastMapper(parentMappers, mapper, false); popMappers(parentMappers, 1, false); mapper = parentMappers.get(0); } return parent.mappingUpdate(mapper); }
/** Build an update for the parent which will contain the given mapper and any intermediate fields. */ private static ObjectMapper createUpdate(ObjectMapper parent, String[] nameParts, int i, Mapper mapper) { List<ObjectMapper> parentMappers = new ArrayList<>(); ObjectMapper previousIntermediate = parent; for (; i < nameParts.length - 1; ++i) { Mapper intermediate = previousIntermediate.getMapper(nameParts[i]); assert intermediate != null : "Field " + previousIntermediate.name() + " does not have a subfield " + nameParts[i]; assert intermediate instanceof ObjectMapper; parentMappers.add((ObjectMapper)intermediate); previousIntermediate = (ObjectMapper)intermediate; } if (parentMappers.isEmpty() == false) { // add the new mapper to the stack, and pop down to the original parent level addToLastMapper(parentMappers, mapper, false); popMappers(parentMappers, 1, false); mapper = parentMappers.get(0); } return parent.mappingUpdate(mapper); }
/** Build an update for the parent which will contain the given mapper and any intermediate fields. */ private static ObjectMapper createUpdate(ObjectMapper parent, String[] nameParts, int i, Mapper mapper) { List<ObjectMapper> parentMappers = new ArrayList<>(); ObjectMapper previousIntermediate = parent; for (; i < nameParts.length - 1; ++i) { Mapper intermediate = previousIntermediate.getMapper(nameParts[i]); assert intermediate != null : "Field " + previousIntermediate.name() + " does not have a subfield " + nameParts[i]; assert intermediate instanceof ObjectMapper; parentMappers.add((ObjectMapper)intermediate); previousIntermediate = (ObjectMapper)intermediate; } if (parentMappers.isEmpty() == false) { // add the new mapper to the stack, and pop down to the original parent level addToLastMapper(parentMappers, mapper, false); popMappers(parentMappers, 1, false); mapper = parentMappers.get(0); } return parent.mappingUpdate(mapper); }
static Mapper getMapper(ObjectMapper objectMapper, String fieldName) { String[] subfields = splitAndValidatePath(fieldName); for (int i = 0; i < subfields.length - 1; ++i) { Mapper mapper = objectMapper.getMapper(subfields[i]); if (mapper == null || (mapper instanceof ObjectMapper) == false) { return null; } objectMapper = (ObjectMapper)mapper; if (objectMapper.nested().isNested()) { throw new MapperParsingException("Cannot add a value for field [" + fieldName + "] since one of the intermediate objects is mapped as a nested object: [" + mapper.name() + "]"); } } return objectMapper.getMapper(subfields[subfields.length - 1]); } }
toXContent(builder, ((ObjectMapper)mapper).getMapper(subField), subField, subValue); } else if (mapper instanceof BaseGeoPointFieldMapper) { BaseGeoPointFieldMapper geoMapper = (BaseGeoPointFieldMapper)mapper;
Mapper subMapper = null; if (mapper != null && mapper instanceof ObjectMapper) subMapper = ((ObjectMapper)mapper).getMapper(fieldName); Object value = (components[i] == null) ? null : deserialize(ctype, components[i], subMapper); mapValue.put(fieldName, value); if (mapper != null) { assert mapper instanceof ObjectMapper : "Expecting an object mapper for MapType"; subMapper = ((ObjectMapper)mapper).getMapper(key);
Mapper subMapper = objectMapper.getMapper(entry.getKey()); subMapper = newObjectMapper.getMapper(entry.getKey()); try { if ((subMapper = objectMapper.getMapper(entry.getKey())) == null) { final String valueType = ClusterService.cqlMapping.get(((MapType)ctype).getValuesType().asCQL3Type().toString()); final DynamicTemplate dynamicTemplate = docMapper.root().findTemplate(path, objectMapper.name()+"."+entry.getKey(), null); DocumentMapper docMapper = indexInfo.indexService.mapperService().documentMapper(indexInfo.type); ObjectMapper newObjectMapper = docMapper.objectMappers().get(mapper.name()); subMapper = newObjectMapper.getMapper(entry.getKey());
map = new HashMap<String , Map<String, Object>>(lbb.size()); for(String key : lbb.keySet()) { map.put(key, deserialize(elementType, lbb.get(key), objectMapper.getMapper(key))); map = new HashMap<String, Object>(map2.size()); for(String key : map2.keySet()) { FieldMapper subMapper = (FieldMapper)objectMapper.getMapper(key); map.put(key, value(subMapper, map2.get(key), valueForSearch) );
AbstractType<?> subType = udt.fieldType(j); Object subValue = mapValue.get(subName); Mapper subMapper = (mapper instanceof ObjectMapper) ? ((ObjectMapper) mapper).getMapper(subName) : null; components[i++]=serialize(ksName, cfName, subType, subName, subValue, subMapper);