test_class.file: services/thingsearch/persistence/src/test/java/org/eclipse/ditto/services/thingsearch/persistence/read/expression/visitors/GetSortBsonVisitorTest.java
test_class.identifier: GetSortBsonVisitorTest
test_case.body: @Test
      public void handlesNullValues() {
          final SortFieldExpression expression = new AttributeExpressionImpl("a/b/c/d/e/f/g");
          final SortOption sortOption = new SortOption(expression, SortDirection.ASC);
  
          GetSortBsonVisitor.sortValuesAsArray(new Document(), Collections.singletonList(sortOption));
      }
test_case.class_method_signature: GetSortBsonVisitorTest.handlesNullValues()
test_case.full_signature: @Test public void handlesNullValues()
test_case.identifier: handlesNullValues
test_case.invocations: sortValuesAsArray singletonList
test_case.modifiers: @Test public
test_case.parameters: ()
test_case.return: void
test_case.signature: void handlesNullValues()
focal_class.file: services/thingsearch/persistence/src/main/java/org/eclipse/ditto/services/thingsearch/persistence/read/expression/visitors/GetSortBsonVisitor.java
focal_class.identifier: GetSortBsonVisitor
focal_class.interfaces: implements SortFieldExpressionVisitor<String>
focal_class.class_method_signature: GetSortBsonVisitor.GetSortBsonVisitor()
focal_class.full_signature: private  GetSortBsonVisitor()
focal_class.identifier: GetSortBsonVisitor
focal_class.modifiers: private
focal_class.parameters: ()
focal_class.signature:  GetSortBsonVisitor()
focal_class.class_method_signature: GetSortBsonVisitor.apply(final SortFieldExpression expression, final SortDirection sortDirection)
focal_class.full_signature: public static List<Bson> apply(final SortFieldExpression expression, final SortDirection sortDirection)
focal_class.identifier: apply
focal_class.modifiers: public static
focal_class.parameters: (final SortFieldExpression expression, final SortDirection sortDirection)
focal_class.return: List<Bson>
focal_class.signature: List<Bson> apply(final SortFieldExpression expression, final SortDirection sortDirection)
focal_class.class_method_signature: GetSortBsonVisitor.projections(final List<SortOption> sortOptions)
focal_class.full_signature: public static Document projections(final List<SortOption> sortOptions)
focal_class.identifier: projections
focal_class.modifiers: public static
focal_class.parameters: (final List<SortOption> sortOptions)
focal_class.return: Document
focal_class.signature: Document projections(final List<SortOption> sortOptions)
focal_class.class_method_signature: GetSortBsonVisitor.sortValuesAsArray(final Document document, final List<SortOption> sortOptions)
focal_class.full_signature: public static JsonArray sortValuesAsArray(final Document document, final List<SortOption> sortOptions)
focal_class.identifier: sortValuesAsArray
focal_class.modifiers: public static
focal_class.parameters: (final Document document, final List<SortOption> sortOptions)
focal_class.return: JsonArray
focal_class.signature: JsonArray sortValuesAsArray(final Document document, final List<SortOption> sortOptions)
focal_class.class_method_signature: GetSortBsonVisitor.path(final SortFieldExpression expression)
focal_class.full_signature: public static String path(final SortFieldExpression expression)
focal_class.identifier: path
focal_class.modifiers: public static
focal_class.parameters: (final SortFieldExpression expression)
focal_class.return: String
focal_class.signature: String path(final SortFieldExpression expression)
focal_class.class_method_signature: GetSortBsonVisitor.visitAttribute(final String key)
focal_class.full_signature: @Override public String visitAttribute(final String key)
focal_class.identifier: visitAttribute
focal_class.modifiers: @Override public
focal_class.parameters: (final String key)
focal_class.return: String
focal_class.signature: String visitAttribute(final String key)
focal_class.class_method_signature: GetSortBsonVisitor.visitFeatureIdProperty(final String featureId, final String property)
focal_class.full_signature: @Override public String visitFeatureIdProperty(final String featureId, final String property)
focal_class.identifier: visitFeatureIdProperty
focal_class.modifiers: @Override public
focal_class.parameters: (final String featureId, final String property)
focal_class.return: String
focal_class.signature: String visitFeatureIdProperty(final String featureId, final String property)
focal_class.class_method_signature: GetSortBsonVisitor.visitSimple(final String fieldName)
focal_class.full_signature: @Override public String visitSimple(final String fieldName)
focal_class.identifier: visitSimple
focal_class.modifiers: @Override public
focal_class.parameters: (final String fieldName)
focal_class.return: String
focal_class.signature: String visitSimple(final String fieldName)
focal_class.class_method_signature: GetSortBsonVisitor.getSortBson(final SortDirection sortDirection, final String sortKey)
focal_class.full_signature: private static List<Bson> getSortBson(final SortDirection sortDirection, final String sortKey)
focal_class.identifier: getSortBson
focal_class.modifiers: private static
focal_class.parameters: (final SortDirection sortDirection, final String sortKey)
focal_class.return: List<Bson>
focal_class.signature: List<Bson> getSortBson(final SortDirection sortDirection, final String sortKey)
focal_class.class_method_signature: GetSortBsonVisitor.seekToPath(final Document document)
focal_class.full_signature: private static Function<String, Object> seekToPath(final Document document)
focal_class.identifier: seekToPath
focal_class.modifiers: private static
focal_class.parameters: (final Document document)
focal_class.return: Function<String, Object>
focal_class.signature: Function<String, Object> seekToPath(final Document document)
focal_class.class_method_signature: GetSortBsonVisitor.seekToPathImpl(final Document document, final String[] segments, final int i)
focal_class.full_signature: private static Object seekToPathImpl(final Document document, final String[] segments, final int i)
focal_class.identifier: seekToPathImpl
focal_class.modifiers: private static
focal_class.parameters: (final Document document, final String[] segments, final int i)
focal_class.return: Object
focal_class.signature: Object seekToPathImpl(final Document document, final String[] segments, final int i)
focal_method.body: public static JsonArray sortValuesAsArray(final Document document, final List<SortOption> sortOptions) {
          final JsonArrayBuilder builder = JsonFactory.newArrayBuilder();
          sortOptions.stream()
                  .map(SortOption::getSortExpression)
                  .map(GetSortBsonVisitor::path)
                  .map(seekToPath(document))
                  .forEach(value -> builder.add(JsonValue.of(value)));
          return builder.build();
      }
focal_method.class_method_signature: GetSortBsonVisitor.sortValuesAsArray(final Document document, final List<SortOption> sortOptions)
focal_method.full_signature: public static JsonArray sortValuesAsArray(final Document document, final List<SortOption> sortOptions)
focal_method.identifier: sortValuesAsArray
focal_method.invocations: newArrayBuilder forEach map map map stream seekToPath add of build
focal_method.modifiers: public static
focal_method.parameters: (final Document document, final List<SortOption> sortOptions)
focal_method.return: JsonArray
focal_method.signature: JsonArray sortValuesAsArray(final Document document, final List<SortOption> sortOptions)