private Document convertArrays(Document doc) { Document retVal = new Document(); for (Map.Entry<String, Object> entry : doc.entrySet()) { if (entry.getValue() != null && entry.getValue().getClass().isArray()) { retVal.put(entry.getKey(), convertArrays((Object[])entry.getValue())); } else if (entry.getValue() != null && (entry.getValue() instanceof Map || entry.getValue() instanceof Document)) { retVal.put(entry.getKey(), convertArrays(new Document((Map)entry.getValue()))); } else { retVal.put(entry.getKey(), entry.getValue()); } } return retVal; }
/** * Fills the map with the values from the DBObject. * * @param resultMap * The map to fill/ * @param obj * The object to copy values from. */ protected void fillMap(Map<String, ByteIterator> resultMap, Document obj) { for (Map.Entry<String, Object> entry : obj.entrySet()) { if (entry.getValue() instanceof Binary) { resultMap.put(entry.getKey(), new ByteArrayByteIterator(((Binary) entry.getValue()).getData())); } } } }
private static void toFlatMap(String currentPath, Object source, Map<String, Object> map) { if (source instanceof Document) { Document document = (Document) source; Iterator<Map.Entry<String, Object>> it = document.entrySet().iterator(); String pathPrefix = currentPath.isEmpty() ? "" : currentPath + '.'; while (it.hasNext()) { Map.Entry<String, Object> entry = it.next(); if (entry.getKey().startsWith("$")) { if (map.containsKey(currentPath)) { ((Document) map.get(currentPath)).put(entry.getKey(), entry.getValue()); } else { map.put(currentPath, new Document(entry.getKey(), entry.getValue())); } } else { toFlatMap(pathPrefix + entry.getKey(), entry.getValue(), map); } } } else { map.put(currentPath, source); } }
@SuppressWarnings("unchecked") private Document doPrefix(Document source) { Document result = new Document(); for (Map.Entry<String, Object> entry : source.entrySet()) { String key = prefixKey(entry.getKey()); Object value = entry.getValue(); if (entry.getValue() instanceof Collection) { Collection<Object> sourceCollection = (Collection<Object>) entry.getValue(); value = prefixCollection(sourceCollection); } result.append(key, value); } return result; }
@Override public Memory unconvert(Environment env, TraceInfo trace, Document arg) throws Throwable { if (arg == null) return Memory.NULL; ArrayMemory result = ArrayMemory.createHashed(arg.size()); for (Entry<String, Object> entry : arg.entrySet()) { if (entry.getValue() instanceof Document) { result.put(entry.getKey(), unconvert(env, trace, (Document) entry.getValue())); } else { result.put(entry.getKey(), Memory.wrap(env, entry.getValue())); } } return result; }
private Object negate(Document arg) { List<Object> list = new ArrayList<>(); for (Map.Entry<String, Object> entry : arg.entrySet()) { if (entry.getKey().equals("$or")) { list.add(asDocument("$nor", entry.getValue())); } else if (entry.getKey().equals("$and")) { List<Object> list2 = new ArrayList<>(); for (Object o : ((Collection) entry.getValue())) { list2.add(negate((Document) o)); } list.add(asDocument("$or", list2)); } else if (entry.getValue() instanceof Pattern || entry.getValue() instanceof BsonRegularExpression) { list.add(asDocument(entry.getKey(), asDocument("$not", entry.getValue()))); } else if (entry.getValue() instanceof Document) { list.add(negate(entry.getKey(), (Document) entry.getValue())); } else { list.add(asDocument(entry.getKey(), asDocument("$ne", entry.getValue()))); } } return list.size() == 1 ? list.get(0) : asDocument("$or", list); }
public IndexOptionsBuilder(final IndexOptions original, final String prefix) { super(original); if(!"".equals(original.partialFilter())) { final Document parse = Document.parse(original.partialFilter()); final Document filter = new Document(); for (final Entry<String, Object> entry : parse.entrySet()) { filter.put(prefix + "." + entry.getKey(), entry.getValue()); } partialFilter(filter.toJson()); } }
public static Object unwrapBsonable(Object value) { if (value instanceof Document) { for (Entry<String, Object> entry : ((Document) value).entrySet()) { entry.setValue(unwrapBsonable(entry.getValue())); } return value; } if (value instanceof Iterable<?>) { return ImmutableList.copyOf(unwrapBsonableIterable((Iterable<?>) value)); } if (value instanceof Constraints.ConstraintHost) { return convertToBson((Constraints.ConstraintHost) value); } if (value == null || value instanceof Number || value instanceof Boolean || value instanceof String) { return value; } if (value instanceof Adapted<?>) { return ((Adapted<?>) value).toBson(); } return String.valueOf(value); }
private Object negate(String key, Document value) { if (value.size() == 1) { return asDocument(key, asDocument("$not", value)); } else { List<Object> list2 = new ArrayList<>(); for (Map.Entry<String, Object> entry2 : value.entrySet()) { list2.add(asDocument(key, asDocument("$not", asDocument(entry2.getKey(), entry2.getValue())))); } return asDocument("$or", list2); } }
private Document updateTypeRestrictions(Document query, Example example) { Document result = new Document(); if (isTypeRestricting(example)) { result.putAll(query); this.converter.getTypeMapper().writeTypeRestrictions(result, getTypesToMatch(example)); return result; } for (Map.Entry<String, Object> entry : query.entrySet()) { if (!this.converter.getTypeMapper().isTypeKey(entry.getKey())) { result.put(entry.getKey(), entry.getValue()); } } return result; }
Iterator<Map.Entry<String, Object>> iter = source.entrySet().iterator();
Iterator<Map.Entry<String, Object>> it = doc.entrySet().iterator(); while (it.hasNext()) { Map.Entry<String, Object> entry = it.next();
private List<StatInfoEntry> createIndexSizeEntryList(Document indexSizesDocument) { LinkedList<StatInfoEntry> list = new LinkedList<>(); for (Map.Entry<String, Object> keyValueEntry : indexSizesDocument.entrySet()) { list.add(new StatInfoEntry.ByteSizeStatInfoEntry(keyValueEntry.getKey(), new Long(keyValueEntry.getValue().toString()))); //TODO need refactor } return list; }
@SuppressWarnings("unchecked") private Document doPrefix(Document source) { Document result = new Document(); for (Map.Entry<String, Object> entry : source.entrySet()) { String key = prefixKey(entry.getKey()); Object value = entry.getValue(); if (entry.getValue() instanceof Collection) { Collection<Object> sourceCollection = (Collection<Object>) entry.getValue(); value = prefixCollection(sourceCollection); } result.append(key, value); } return result; }
private static void toFlatMap(String currentPath, Object source, Map<String, Object> map) { if (source instanceof Document) { Document document = (Document) source; Iterator<Map.Entry<String, Object>> it = document.entrySet().iterator(); String pathPrefix = currentPath.isEmpty() ? "" : currentPath + '.'; while (it.hasNext()) { Map.Entry<String, Object> entry = it.next(); if (entry.getKey().startsWith("$")) { if (map.containsKey(currentPath)) { ((Document) map.get(currentPath)).put(entry.getKey(), entry.getValue()); } else { map.put(currentPath, new Document(entry.getKey(), entry.getValue())); } } else { toFlatMap(pathPrefix + entry.getKey(), entry.getValue(), map); } } } else { map.put(currentPath, source); } }
private Object negate(Document arg) { List<Object> list = new ArrayList<>(); for (Map.Entry<String, Object> entry : arg.entrySet()) { if (entry.getKey().equals("$or")) { list.add(asDocument("$nor", entry.getValue())); } else if (entry.getKey().equals("$and")) { List<Object> list2 = new ArrayList<>(); for (Object o : ((Collection) entry.getValue())) { list2.add(negate((Document) o)); } list.add(asDocument("$or", list2)); } else if (entry.getValue() instanceof Pattern || entry.getValue() instanceof BsonRegularExpression) { list.add(asDocument(entry.getKey(), asDocument("$not", entry.getValue()))); } else if (entry.getValue() instanceof Document) { list.add(negate(entry.getKey(), (Document) entry.getValue())); } else { list.add(asDocument(entry.getKey(), asDocument("$ne", entry.getValue()))); } } return list.size() == 1 ? list.get(0) : asDocument("$or", list); }
private Object negate(String key, Document value) { if (value.size() == 1) { return asDocument(key, asDocument("$not", value)); } else { List<Object> list2 = new ArrayList<>(); for (Map.Entry<String, Object> entry2 : value.entrySet()) { list2.add(asDocument(key, asDocument("$not", asDocument(entry2.getKey(), entry2.getValue())))); } return asDocument("$or", list2); } }
private Document updateTypeRestrictions(Document query, Example example) { Document result = new Document(); if (isTypeRestricting(example)) { result.putAll(query); this.converter.getTypeMapper().writeTypeRestrictions(result, getTypesToMatch(example)); return result; } for (Map.Entry<String, Object> entry : query.entrySet()) { if (!this.converter.getTypeMapper().isTypeKey(entry.getKey())) { result.put(entry.getKey(), entry.getValue()); } } return result; }
Iterator<Map.Entry<String, Object>> iter = source.entrySet().iterator();
private Tuple convert(Document document) { Tuple tuple = new Tuple(); if ( document != null ) { for ( Map.Entry<String, Object> entry : document.entrySet() ) { tuple.put( entry.getKey(), entry.getValue() ); } } return tuple; }