test_class.declarator: THING_ID = ThingId.of("namespace:myThing")
test_class.modifier: private static final
test_class.original_string: private static final ThingId THING_ID = ThingId.of("namespace:myThing");
test_class.type: ThingId
test_class.var_name: THING_ID
test_class.file: services/concierge/enforcement/src/test/java/org/eclipse/ditto/services/concierge/enforcement/placeholders/references/ReferencePlaceholderTest.java
test_class.identifier: ReferencePlaceholderTest
test_case.body: @Test
      public void fromCharSequenceWithInvalidPlaceholderIsEmpty() {
          assertThat(ReferencePlaceholder.fromCharSequence("{{things/" + THING_ID + "/policyId}}")).isNotPresent();
          assertThat(ReferencePlaceholder.fromCharSequence("{{ref:things" + THING_ID + "/policyId}}")).isNotPresent();
          assertThat(ReferencePlaceholder.fromCharSequence("{{ref:things/ " + THING_ID + "/policyId}}")).isNotPresent();
          assertThat(ReferencePlaceholder.fromCharSequence("{{ref:things/" + THING_ID + "}}")).isNotPresent();
  
          assertThat(ReferencePlaceholder.fromCharSequence(null)).isNotPresent();
      }
test_case.class_method_signature: ReferencePlaceholderTest.fromCharSequenceWithInvalidPlaceholderIsEmpty()
test_case.full_signature: @Test public void fromCharSequenceWithInvalidPlaceholderIsEmpty()
test_case.identifier: fromCharSequenceWithInvalidPlaceholderIsEmpty
test_case.invocations: isNotPresent assertThat fromCharSequence isNotPresent assertThat fromCharSequence isNotPresent assertThat fromCharSequence isNotPresent assertThat fromCharSequence isNotPresent assertThat fromCharSequence
test_case.modifiers: @Test public
test_case.parameters: ()
test_case.return: void
test_case.signature: void fromCharSequenceWithInvalidPlaceholderIsEmpty()
focal_class.declarator: placeholderBeginning = "\\{\\{\\s?"
focal_class.modifier: private static
focal_class.original_string: private static String placeholderBeginning = "\\{\\{\\s?";
focal_class.type: String
focal_class.var_name: placeholderBeginning
focal_class.declarator: placeholderEnding = "\\s?}}"
focal_class.modifier: private static
focal_class.original_string: private static String placeholderEnding = "\\s?}}";
focal_class.type: String
focal_class.var_name: placeholderEnding
focal_class.declarator: referenceKeyword = "ref"
focal_class.modifier: private static
focal_class.original_string: private static String referenceKeyword = "ref";
focal_class.type: String
focal_class.var_name: referenceKeyword
focal_class.declarator: everythingExceptFrontSlashesAndSpaces = "[^/\\s]"
focal_class.modifier: private static
focal_class.original_string: private static String everythingExceptFrontSlashesAndSpaces = "[^/\\s]";
focal_class.type: String
focal_class.var_name: everythingExceptFrontSlashesAndSpaces
focal_class.declarator: everythingExceptSpaces = "[^\\s]"
focal_class.modifier: private static
focal_class.original_string: private static String everythingExceptSpaces = "[^\\s]";
focal_class.type: String
focal_class.var_name: everythingExceptSpaces
focal_class.declarator: entityTypeGroup = "(" + everythingExceptFrontSlashesAndSpaces + "+)"
focal_class.modifier: private static
focal_class.original_string: private static String entityTypeGroup = "(" + everythingExceptFrontSlashesAndSpaces + "+)";
focal_class.type: String
focal_class.var_name: entityTypeGroup
focal_class.declarator: entityIdGroup = "(" + everythingExceptFrontSlashesAndSpaces + "+)"
focal_class.modifier: private static
focal_class.original_string: private static String entityIdGroup = "(" + everythingExceptFrontSlashesAndSpaces + "+)";
focal_class.type: String
focal_class.var_name: entityIdGroup
focal_class.declarator: fieldSelectorGroup = "(" + everythingExceptSpaces + "+)"
focal_class.modifier: private static
focal_class.original_string: private static String fieldSelectorGroup = "(" + everythingExceptSpaces + "+)";
focal_class.type: String
focal_class.var_name: fieldSelectorGroup
focal_class.declarator: referencePlaceholderPattern = Pattern.compile(
              placeholderBeginning + referenceKeyword + ":" + entityTypeGroup + "/" + entityIdGroup + "/" +
                      fieldSelectorGroup + placeholderEnding)
focal_class.modifier: private static
focal_class.original_string: private static Pattern referencePlaceholderPattern = Pattern.compile(
              placeholderBeginning + referenceKeyword + ":" + entityTypeGroup + "/" + entityIdGroup + "/" +
                      fieldSelectorGroup + placeholderEnding);
focal_class.type: Pattern
focal_class.var_name: referencePlaceholderPattern
focal_class.declarator: referencedEntityType
focal_class.modifier: private final
focal_class.original_string: private final ReferencedEntityType referencedEntityType;
focal_class.type: ReferencedEntityType
focal_class.var_name: referencedEntityType
focal_class.declarator: referencedEntityId
focal_class.modifier: private final
focal_class.original_string: private final EntityId referencedEntityId;
focal_class.type: EntityId
focal_class.var_name: referencedEntityId
focal_class.declarator: referencedField
focal_class.modifier: private final
focal_class.original_string: private final JsonPointer referencedField;
focal_class.type: JsonPointer
focal_class.var_name: referencedField
focal_class.file: services/concierge/enforcement/src/main/java/org/eclipse/ditto/services/concierge/enforcement/placeholders/references/ReferencePlaceholder.java
focal_class.identifier: ReferencePlaceholder
focal_class.class_method_signature: ReferencePlaceholder.ReferencePlaceholder(final ReferencedEntityType referencedEntityType, final EntityId referencedEntityId,
              final JsonPointer referencedField)
focal_class.full_signature: private  ReferencePlaceholder(final ReferencedEntityType referencedEntityType, final EntityId referencedEntityId,
              final JsonPointer referencedField)
focal_class.identifier: ReferencePlaceholder
focal_class.modifiers: private
focal_class.parameters: (final ReferencedEntityType referencedEntityType, final EntityId referencedEntityId,
              final JsonPointer referencedField)
focal_class.signature:  ReferencePlaceholder(final ReferencedEntityType referencedEntityType, final EntityId referencedEntityId,
              final JsonPointer referencedField)
focal_class.class_method_signature: ReferencePlaceholder.fromCharSequence(@Nullable final CharSequence input)
focal_class.full_signature: public static Optional<ReferencePlaceholder> fromCharSequence(@Nullable final CharSequence input)
focal_class.identifier: fromCharSequence
focal_class.modifiers: public static
focal_class.parameters: (@Nullable final CharSequence input)
focal_class.return: Optional<ReferencePlaceholder>
focal_class.signature: Optional<ReferencePlaceholder> fromCharSequence(@Nullable final CharSequence input)
focal_class.class_method_signature: ReferencePlaceholder.getReferencedEntityType()
focal_class.full_signature:  ReferencedEntityType getReferencedEntityType()
focal_class.identifier: getReferencedEntityType
focal_class.parameters: ()
focal_class.return: ReferencedEntityType
focal_class.signature: ReferencedEntityType getReferencedEntityType()
focal_class.class_method_signature: ReferencePlaceholder.getReferencedEntityId()
focal_class.full_signature:  EntityId getReferencedEntityId()
focal_class.identifier: getReferencedEntityId
focal_class.parameters: ()
focal_class.return: EntityId
focal_class.signature: EntityId getReferencedEntityId()
focal_class.class_method_signature: ReferencePlaceholder.getReferencedField()
focal_class.full_signature:  JsonPointer getReferencedField()
focal_class.identifier: getReferencedField
focal_class.parameters: ()
focal_class.return: JsonPointer
focal_class.signature: JsonPointer getReferencedField()
focal_class.class_method_signature: ReferencePlaceholder.equals(@Nullable final Object o)
focal_class.full_signature: @Override public boolean equals(@Nullable final Object o)
focal_class.identifier: equals
focal_class.modifiers: @Override public
focal_class.parameters: (@Nullable final Object o)
focal_class.return: boolean
focal_class.signature: boolean equals(@Nullable final Object o)
focal_class.class_method_signature: ReferencePlaceholder.hashCode()
focal_class.full_signature: @Override public int hashCode()
focal_class.identifier: hashCode
focal_class.modifiers: @Override public
focal_class.parameters: ()
focal_class.return: int
focal_class.signature: int hashCode()
focal_class.class_method_signature: ReferencePlaceholder.toString()
focal_class.full_signature: @Override public String toString()
focal_class.identifier: toString
focal_class.modifiers: @Override public
focal_class.parameters: ()
focal_class.return: String
focal_class.signature: String toString()
focal_method.body: public static Optional<ReferencePlaceholder> fromCharSequence(@Nullable final CharSequence input) {
  
          if (input == null) {
              return Optional.empty();
          }
  
          final Matcher matcher = referencePlaceholderPattern.matcher(input);
          if (matcher.find()) {
              final ReferencedEntityType referencedEntityType = ReferencedEntityType.fromString(matcher.group(1));
              final EntityId entityId = DefaultEntityId.of(matcher.group(2));
              final JsonPointer referencedField = JsonPointer.of(matcher.group(3));
              return Optional.of(new ReferencePlaceholder(referencedEntityType, entityId, referencedField));
          }
  
          return Optional.empty();
      }
focal_method.class_method_signature: ReferencePlaceholder.fromCharSequence(@Nullable final CharSequence input)
focal_method.full_signature: public static Optional<ReferencePlaceholder> fromCharSequence(@Nullable final CharSequence input)
focal_method.identifier: fromCharSequence
focal_method.invocations: empty matcher find fromString group of group of group of empty
focal_method.modifiers: public static
focal_method.parameters: (@Nullable final CharSequence input)
focal_method.return: Optional<ReferencePlaceholder>
focal_method.signature: Optional<ReferencePlaceholder> fromCharSequence(@Nullable final CharSequence input)