test_class.declarator: SLASH = "/"
test_class.modifier: private static final
test_class.original_string: private static final String SLASH = "/";
test_class.type: String
test_class.var_name: SLASH
test_class.declarator: KNOWN_STRING = "KNOWN_STRING"
test_class.modifier: private static final
test_class.original_string: private static final String KNOWN_STRING = "KNOWN_STRING";
test_class.type: String
test_class.var_name: KNOWN_STRING
test_class.declarator: KNOWN_FEATURE_ID = "feature1"
test_class.modifier: private static final
test_class.original_string: private static final String KNOWN_FEATURE_ID = "feature1";
test_class.type: String
test_class.var_name: KNOWN_FEATURE_ID
test_class.declarator: KNOWN_FEATURE = "features/" + KNOWN_FEATURE_ID
test_class.modifier: private static final
test_class.original_string: private static final String KNOWN_FEATURE = "features/" + KNOWN_FEATURE_ID;
test_class.type: String
test_class.var_name: KNOWN_FEATURE
test_class.declarator: KNOWN_FEATURE_PROPERTY_WITH_ID =
              "features/" + KNOWN_FEATURE_ID + "/properties/" + KNOWN_STRING
test_class.modifier: private static final
test_class.original_string: private static final String KNOWN_FEATURE_PROPERTY_WITH_ID =
              "features/" + KNOWN_FEATURE_ID + "/properties/" + KNOWN_STRING;
test_class.type: String
test_class.var_name: KNOWN_FEATURE_PROPERTY_WITH_ID
test_class.declarator: KNOWN_THING_DEFINITION = "definition/example:test:definition"
test_class.modifier: private static final
test_class.original_string: private static final String KNOWN_THING_DEFINITION = "definition/example:test:definition";
test_class.type: String
test_class.var_name: KNOWN_THING_DEFINITION
test_class.declarator: ef = new ThingsFieldExpressionFactoryImpl()
test_class.modifier: private final
test_class.original_string: private final ThingsFieldExpressionFactory ef = new ThingsFieldExpressionFactoryImpl();
test_class.type: ThingsFieldExpressionFactory
test_class.var_name: ef
test_class.file: model/query/src/test/java/org/eclipse/ditto/model/query/expression/ThingsFieldExpressionFactoryImplTest.java
test_class.identifier: ThingsFieldExpressionFactoryImplTest
test_case.body: @Test(expected = NullPointerException.class)
      public void existsByWithNullPropertyName() {
          ef.existsBy(null);
      }
test_case.class_method_signature: ThingsFieldExpressionFactoryImplTest.existsByWithNullPropertyName()
test_case.full_signature: @Test(expected = NullPointerException.class) public void existsByWithNullPropertyName()
test_case.identifier: existsByWithNullPropertyName
test_case.invocations: existsBy
test_case.modifiers: @Test(expected = NullPointerException.class) public
test_case.parameters: ()
test_case.return: void
test_case.signature: void existsByWithNullPropertyName()
focal_class.declarator: mongoSimpleFieldMappings = new HashMap<>()
focal_class.modifier: private static final
focal_class.original_string: private static final Map<String, String> mongoSimpleFieldMappings = new HashMap<>();
focal_class.type: Map<String, String>
focal_class.var_name: mongoSimpleFieldMappings
focal_class.declarator: simpleFieldMappings
focal_class.modifier: private final
focal_class.original_string: private final Map<String, String> simpleFieldMappings;
focal_class.type: Map<String, String>
focal_class.var_name: simpleFieldMappings
focal_class.file: model/query/src/main/java/org/eclipse/ditto/model/query/expression/ThingsFieldExpressionFactoryImpl.java
focal_class.identifier: ThingsFieldExpressionFactoryImpl
focal_class.interfaces: implements ThingsFieldExpressionFactory
focal_class.class_method_signature: ThingsFieldExpressionFactoryImpl.ThingsFieldExpressionFactoryImpl()
focal_class.full_signature: public  ThingsFieldExpressionFactoryImpl()
focal_class.identifier: ThingsFieldExpressionFactoryImpl
focal_class.modifiers: public
focal_class.parameters: ()
focal_class.signature:  ThingsFieldExpressionFactoryImpl()
focal_class.class_method_signature: ThingsFieldExpressionFactoryImpl.ThingsFieldExpressionFactoryImpl(final Map<String, String> simpleFieldMappings)
focal_class.full_signature: public  ThingsFieldExpressionFactoryImpl(final Map<String, String> simpleFieldMappings)
focal_class.identifier: ThingsFieldExpressionFactoryImpl
focal_class.modifiers: public
focal_class.parameters: (final Map<String, String> simpleFieldMappings)
focal_class.signature:  ThingsFieldExpressionFactoryImpl(final Map<String, String> simpleFieldMappings)
focal_class.class_method_signature: ThingsFieldExpressionFactoryImpl.filterBy(final String propertyNameWithOptionalLeadingSlash)
focal_class.full_signature: @Override public FilterFieldExpression filterBy(final String propertyNameWithOptionalLeadingSlash)
focal_class.identifier: filterBy
focal_class.modifiers: @Override public
focal_class.parameters: (final String propertyNameWithOptionalLeadingSlash)
focal_class.return: FilterFieldExpression
focal_class.signature: FilterFieldExpression filterBy(final String propertyNameWithOptionalLeadingSlash)
focal_class.class_method_signature: ThingsFieldExpressionFactoryImpl.existsBy(final String propertyNameWithOptionalLeadingSlash)
focal_class.full_signature: @Override public ExistsFieldExpression existsBy(final String propertyNameWithOptionalLeadingSlash)
focal_class.identifier: existsBy
focal_class.modifiers: @Override public
focal_class.parameters: (final String propertyNameWithOptionalLeadingSlash)
focal_class.return: ExistsFieldExpression
focal_class.signature: ExistsFieldExpression existsBy(final String propertyNameWithOptionalLeadingSlash)
focal_class.class_method_signature: ThingsFieldExpressionFactoryImpl.sortBy(final String propertyNameWithOptionalLeadingSlash)
focal_class.full_signature: @Override public SortFieldExpression sortBy(final String propertyNameWithOptionalLeadingSlash)
focal_class.identifier: sortBy
focal_class.modifiers: @Override public
focal_class.parameters: (final String propertyNameWithOptionalLeadingSlash)
focal_class.return: SortFieldExpression
focal_class.signature: SortFieldExpression sortBy(final String propertyNameWithOptionalLeadingSlash)
focal_class.class_method_signature: ThingsFieldExpressionFactoryImpl.stripLeadingSlash(final String propertyName)
focal_class.full_signature: private static String stripLeadingSlash(final String propertyName)
focal_class.identifier: stripLeadingSlash
focal_class.modifiers: private static
focal_class.parameters: (final String propertyName)
focal_class.return: String
focal_class.signature: String stripLeadingSlash(final String propertyName)
focal_class.class_method_signature: ThingsFieldExpressionFactoryImpl.common(final String propertyName)
focal_class.full_signature: private FieldExpression common(final String propertyName)
focal_class.identifier: common
focal_class.modifiers: private
focal_class.parameters: (final String propertyName)
focal_class.return: FieldExpression
focal_class.signature: FieldExpression common(final String propertyName)
focal_method.body: @Override
      public ExistsFieldExpression existsBy(final String propertyNameWithOptionalLeadingSlash) {
  
          requireNonNull(propertyNameWithOptionalLeadingSlash);
          final String propertyName = stripLeadingSlash(propertyNameWithOptionalLeadingSlash);
  
          return FieldExpressionUtil.parseFeatureField(requireNonNull(propertyName))
                  .flatMap(f -> f.getFeatureId()
                          .map(id -> f.getProperty()
                                  .<ExistsFieldExpression>map(property ->
                                          new FeatureIdPropertyExpressionImpl(id, property))
                                  // we have a feature id but no property path
                                  .orElseGet(() -> new FeatureExpressionImpl(id))
                          )
                  )
                  // we have no feature at all, continue with the other possibilities
                  .orElseGet(() -> (ExistsFieldExpression) common(propertyName));
      }
focal_method.class_method_signature: ThingsFieldExpressionFactoryImpl.existsBy(final String propertyNameWithOptionalLeadingSlash)
focal_method.full_signature: @Override public ExistsFieldExpression existsBy(final String propertyNameWithOptionalLeadingSlash)
focal_method.identifier: existsBy
focal_method.invocations: requireNonNull stripLeadingSlash orElseGet flatMap parseFeatureField requireNonNull map getFeatureId orElseGet map getProperty common
focal_method.modifiers: @Override public
focal_method.parameters: (final String propertyNameWithOptionalLeadingSlash)
focal_method.return: ExistsFieldExpression
focal_method.signature: ExistsFieldExpression existsBy(final String propertyNameWithOptionalLeadingSlash)