test_class.declarator: folder = new TemporaryFolder(new File("target"))
test_class.modifier: private final
test_class.original_string: private final TemporaryFolder folder = new TemporaryFolder(new File("target"));
test_class.type: TemporaryFolder
test_class.var_name: folder
test_class.declarator: fileStore = new TemporaryFileStore(folder, false)
test_class.modifier: private final
test_class.original_string: private final TemporaryFileStore fileStore = new TemporaryFileStore(folder, false);
test_class.type: TemporaryFileStore
test_class.var_name: fileStore
test_class.declarator: chain = RuleChain.outerRule(folder)
          .around(fileStore)
test_class.modifier: @Rule
      public
test_class.original_string: @Rule
      public RuleChain chain = RuleChain.outerRule(folder)
          .around(fileStore);
test_class.type: RuleChain
test_class.var_name: chain
test_class.file: oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/LoggingHookTest.java
test_class.identifier: LoggingHookTest
test_case.body: @Test
      public void testPropertyAdded() throws Exception {
          assertCommitProduces(
              lines(
                  "p+ a+string <STRING> = a+string/slash:colon%25percent%24dollar%5Cbackslash%0Anewline",
                  "n!"
              ),
              root -> root.setProperty("a string", "a string/slash:colon%percent$dollar\\backslash\nnewline")
          );
          assertCommitProduces(
              lines(
                  "p+ strings <STRINGS> = [a+string,another+string]",
                  "n!"
              ),
              root -> root.setProperty("strings", Arrays.asList("a string", "another string"), STRINGS)
          );
          assertCommitProduces(
              lines(
                  "p+ a+long <LONG> = 42",
                  "n!"
              ),
              root -> root.setProperty("a long", 42L)
          );
          assertCommitProduces(
              lines(
                  "p+ longs <LONGS> = [42,99]",
                  "n!"
              ),
              root -> root.setProperty("longs", Arrays.asList(42L, 99L), LONGS)
          );
          assertCommitProduces(
              lines(
                  "p+ an+int <LONG> = 42",
                  "n!"
              ),
              root -> root.setProperty("an int", 42)
          );
          assertCommitProduces(
              lines(
                  "p+ a+date <DATE> = Jan+02+01:00:00+CET+1970",
                  "n!"
              ),
              root -> root.setProperty("a date", "Jan 02 01:00:00 CET 1970", DATE)
          );
          assertCommitProduces(
              lines(
                  "p+ a+binary <BINARY> = 68656C6C6F",
                  "n!"
              ),
              root -> root.setProperty("a binary", "hello".getBytes())
          );
      }
test_case.class_method_signature: LoggingHookTest.testPropertyAdded()
test_case.full_signature: @Test public void testPropertyAdded()
test_case.identifier: testPropertyAdded
test_case.invocations: assertCommitProduces lines setProperty assertCommitProduces lines setProperty asList assertCommitProduces lines setProperty assertCommitProduces lines setProperty asList assertCommitProduces lines setProperty assertCommitProduces lines setProperty assertCommitProduces lines setProperty getBytes
test_case.modifiers: @Test public
test_case.parameters: ()
test_case.return: void
test_case.signature: void testPropertyAdded()
focal_class.declarator: writer
focal_class.modifier: private final
focal_class.original_string: private final Consumer<String> writer;
focal_class.type: Consumer<String>
focal_class.var_name: writer
focal_class.file: oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/LoggingHook.java
focal_class.identifier: LoggingHook
focal_class.interfaces: implements CommitHook, NodeStateDiff
focal_class.class_method_signature: LoggingHook.LoggingHook(final Consumer<String> writer)
focal_class.full_signature: private  LoggingHook(final Consumer<String> writer)
focal_class.identifier: LoggingHook
focal_class.modifiers: private
focal_class.parameters: (final Consumer<String> writer)
focal_class.signature:  LoggingHook(final Consumer<String> writer)
focal_class.class_method_signature: LoggingHook.newLoggingHook(final Consumer<String> writer)
focal_class.full_signature: static LoggingHook newLoggingHook(final Consumer<String> writer)
focal_class.identifier: newLoggingHook
focal_class.modifiers: static
focal_class.parameters: (final Consumer<String> writer)
focal_class.return: LoggingHook
focal_class.signature: LoggingHook newLoggingHook(final Consumer<String> writer)
focal_class.class_method_signature: LoggingHook.enter(NodeState before, NodeState after)
focal_class.full_signature: public void enter(NodeState before, NodeState after)
focal_class.identifier: enter
focal_class.modifiers: public
focal_class.parameters: (NodeState before, NodeState after)
focal_class.return: void
focal_class.signature: void enter(NodeState before, NodeState after)
focal_class.class_method_signature: LoggingHook.leave(NodeState before, NodeState after)
focal_class.full_signature: public void leave(NodeState before, NodeState after)
focal_class.identifier: leave
focal_class.modifiers: public
focal_class.parameters: (NodeState before, NodeState after)
focal_class.return: void
focal_class.signature: void leave(NodeState before, NodeState after)
focal_class.class_method_signature: LoggingHook.propertyAdded(PropertyState after)
focal_class.full_signature: @Override public boolean propertyAdded(PropertyState after)
focal_class.identifier: propertyAdded
focal_class.modifiers: @Override public
focal_class.parameters: (PropertyState after)
focal_class.return: boolean
focal_class.signature: boolean propertyAdded(PropertyState after)
focal_class.class_method_signature: LoggingHook.propertyChanged(PropertyState before, PropertyState after)
focal_class.full_signature: @Override public boolean propertyChanged(PropertyState before, PropertyState after)
focal_class.identifier: propertyChanged
focal_class.modifiers: @Override public
focal_class.parameters: (PropertyState before, PropertyState after)
focal_class.return: boolean
focal_class.signature: boolean propertyChanged(PropertyState before, PropertyState after)
focal_class.class_method_signature: LoggingHook.propertyDeleted(PropertyState before)
focal_class.full_signature: @Override public boolean propertyDeleted(PropertyState before)
focal_class.identifier: propertyDeleted
focal_class.modifiers: @Override public
focal_class.parameters: (PropertyState before)
focal_class.return: boolean
focal_class.signature: boolean propertyDeleted(PropertyState before)
focal_class.class_method_signature: LoggingHook.safeEncode(String value)
focal_class.full_signature: private static String safeEncode(String value)
focal_class.identifier: safeEncode
focal_class.modifiers: private static
focal_class.parameters: (String value)
focal_class.return: String
focal_class.signature: String safeEncode(String value)
focal_class.class_method_signature: LoggingHook.childNodeAdded(String name, NodeState after)
focal_class.full_signature: @Override public boolean childNodeAdded(String name, NodeState after)
focal_class.identifier: childNodeAdded
focal_class.modifiers: @Override public
focal_class.parameters: (String name, NodeState after)
focal_class.return: boolean
focal_class.signature: boolean childNodeAdded(String name, NodeState after)
focal_class.class_method_signature: LoggingHook.childNodeChanged(String name, NodeState before, NodeState after)
focal_class.full_signature: @Override public boolean childNodeChanged(String name, NodeState before, NodeState after)
focal_class.identifier: childNodeChanged
focal_class.modifiers: @Override public
focal_class.parameters: (String name, NodeState before, NodeState after)
focal_class.return: boolean
focal_class.signature: boolean childNodeChanged(String name, NodeState before, NodeState after)
focal_class.class_method_signature: LoggingHook.childNodeDeleted(String name, NodeState before)
focal_class.full_signature: @Override public boolean childNodeDeleted(String name, NodeState before)
focal_class.identifier: childNodeDeleted
focal_class.modifiers: @Override public
focal_class.parameters: (String name, NodeState before)
focal_class.return: boolean
focal_class.signature: boolean childNodeDeleted(String name, NodeState before)
focal_class.class_method_signature: LoggingHook.toString(final PropertyState ps)
focal_class.full_signature: private static String toString(final PropertyState ps)
focal_class.identifier: toString
focal_class.modifiers: private static
focal_class.parameters: (final PropertyState ps)
focal_class.return: String
focal_class.signature: String toString(final PropertyState ps)
focal_class.class_method_signature: LoggingHook.replaceOrAppendLastChar(StringBuilder b, char oldChar, char newChar)
focal_class.full_signature: private static void replaceOrAppendLastChar(StringBuilder b, char oldChar, char newChar)
focal_class.identifier: replaceOrAppendLastChar
focal_class.modifiers: private static
focal_class.parameters: (StringBuilder b, char oldChar, char newChar)
focal_class.return: void
focal_class.signature: void replaceOrAppendLastChar(StringBuilder b, char oldChar, char newChar)
focal_class.class_method_signature: LoggingHook.appendBlob(StringBuilder sb, Blob blob)
focal_class.full_signature: private static void appendBlob(StringBuilder sb, Blob blob)
focal_class.identifier: appendBlob
focal_class.modifiers: private static
focal_class.parameters: (StringBuilder sb, Blob blob)
focal_class.return: void
focal_class.signature: void appendBlob(StringBuilder sb, Blob blob)
focal_class.class_method_signature: LoggingHook.processCommit(NodeState before, NodeState after, CommitInfo info)
focal_class.full_signature: @NotNull @Override public NodeState processCommit(NodeState before, NodeState after, CommitInfo info)
focal_class.identifier: processCommit
focal_class.modifiers: @NotNull @Override public
focal_class.parameters: (NodeState before, NodeState after, CommitInfo info)
focal_class.return: NodeState
focal_class.signature: NodeState processCommit(NodeState before, NodeState after, CommitInfo info)
focal_method.body: @Override
      public boolean propertyAdded(PropertyState after) {
          writer.accept("p+ " + toString(after));
          return true;
      }
focal_method.class_method_signature: LoggingHook.propertyAdded(PropertyState after)
focal_method.full_signature: @Override public boolean propertyAdded(PropertyState after)
focal_method.identifier: propertyAdded
focal_method.invocations: accept toString
focal_method.modifiers: @Override public
focal_method.parameters: (PropertyState after)
focal_method.return: boolean
focal_method.signature: boolean propertyAdded(PropertyState after)