@Override public boolean equals(Object o) { if (this == o) { return true; } if (!(o instanceof DefaultDocument)) { return false; } Document that = (Document) o; return Objects.equals(name, that.getName()) && Objects.equals(value, that.getValue()); }
private static void appendCondition(StringBuilder aql, Map<String, Object> params, char entity, Document document, String condition) { String nameParam = getNameParam(document.getName(), params); aql.append(SEPARATOR).append(entity).append('.').append(document.getName()) .append(condition).append(PARAM_APPENDER).append(nameParam); if(IN.equals(condition)) { params.put(nameParam, ValueUtil.convertToList(document.getValue())); } else { params.put(nameParam, document.get()); } }
private static Object convert(Value value) { Object val = ValueUtil.convert(value); if (Document.class.isInstance(val)) { Document document = Document.class.cast(val); return singletonMap(document.getName(), convert(document.getValue())); } if (isSudDocument(val)) { return getMap(val); } if (isSudDocumentList(val)) { return StreamSupport.stream(Iterable.class.cast(val).spliterator(), false) .map(ArangoDBUtil::getMap).collect(toList()); } return val; }
private static void appendCondition(StringBuilder query, List<Object> params, Document document, String condition, List<ORecordId> ids) { if(OrientDBConverter.RID_FIELD.equals(document.getName())) { ids.add(new ORecordId(document.get(String.class))); return; } query.append(document.getName()) .append(condition).append(PARAM_APPENDER); if(IN.equals(condition)) { params.add(ValueUtil.convertToList(document.getValue())); } else { params.add(document.get()); } }
static BaseDocument getBaseDocument(DocumentEntity entity) { Map<String, Object> map = new HashMap<>(); for (Document document : entity.getDocuments()) { map.put(document.getName(), convert(document.getValue())); } return new BaseDocument(map); }
private static void toDocument(Map<String, Object> entityValues, Document document) { Object value = ValueUtil.convert(document.getValue()); if (Document.class.isInstance(value)) { Document subDocument = Document.class.cast(value); entityValues.put(document.getName(), singletonMap(subDocument.getName(), subDocument.get())); } else if (isDocumentIterable(value)) { entityValues.put(document.getName(), getMap(value)); } else if (isSudDocumentList(value)) { entityValues.put(document.getName(), StreamSupport.stream(Iterable.class.cast(value).spliterator(), false) .map(OrientDBConverter::getMap).collect(toList())); } else { entityValues.put(document.getName(), value); } }
private static Consumer<Document> toJsonObject(JsonObject jsonObject) { return d -> { Object value = ValueUtil.convert(d.getValue()); if (Document.class.isInstance(value)) { convertDocument(jsonObject, d, value); } else if (Iterable.class.isInstance(value)) { convertIterable(jsonObject, d, value); } else { jsonObject.put(d.getName(), value); } }; }
@Override public <T> void convert(T instance, List<Document> documents, Optional<Document> document, FieldRepresentation field, AbstractDocumentEntityConverter converter) { Value value = document.get().getValue(); Optional<Class<? extends AttributeConverter>> optionalConverter = field.getConverter(); if (optionalConverter.isPresent()) { AttributeConverter attributeConverter = converter.getConverters().get(optionalConverter.get()); Object attributeConverted = attributeConverter.convertToEntityAttribute(value.get()); converter.getReflections().setValue(instance, field.getNativeField(), field.getValue(Value.of(attributeConverted))); } else { converter.getReflections().setValue(instance, field.getNativeField(), field.getValue(value)); } } }