test_class.file: oak-store-spi/src/test/java/org/apache/jackrabbit/oak/spi/commit/SubtreeValidatorTest.java
test_class.identifier: SubtreeValidatorTest
test_case.body: @Test
      public void testSubtreeValidator() throws CommitFailedException {
          Validator delegate = new FailingValidator();
          Validator validator = new SubtreeValidator(delegate, "one", "two");
  
          assertNull(validator.childNodeAdded("zero", EMPTY_NODE));
          assertNull(validator.childNodeChanged("two", EMPTY_NODE, EMPTY_NODE));
          assertNull(validator.childNodeDeleted("foo", EMPTY_NODE));
  
          assertNotNull(validator.childNodeAdded("one", EMPTY_NODE));
          assertNotNull(validator.childNodeChanged("one", EMPTY_NODE, EMPTY_NODE));
          assertNotNull(validator.childNodeDeleted("one", EMPTY_NODE));
  
          // Descend to the subtree
          validator = validator.childNodeChanged("one", EMPTY_NODE, EMPTY_NODE);
          assertNull(validator.childNodeAdded("zero", EMPTY_NODE));
          assertNull(validator.childNodeChanged("one", EMPTY_NODE, EMPTY_NODE));
          assertNull(validator.childNodeDeleted("foo", EMPTY_NODE));
  
          assertEquals(delegate, validator.childNodeAdded("two", EMPTY_NODE));
          assertEquals(delegate, validator.childNodeChanged("two", EMPTY_NODE, EMPTY_NODE));
          assertEquals(delegate, validator.childNodeDeleted("two", EMPTY_NODE));
      }
test_case.class_method_signature: SubtreeValidatorTest.testSubtreeValidator()
test_case.full_signature: @Test public void testSubtreeValidator()
test_case.identifier: testSubtreeValidator
test_case.invocations: assertNull childNodeAdded assertNull childNodeChanged assertNull childNodeDeleted assertNotNull childNodeAdded assertNotNull childNodeChanged assertNotNull childNodeDeleted childNodeChanged assertNull childNodeAdded assertNull childNodeChanged assertNull childNodeDeleted assertEquals childNodeAdded assertEquals childNodeChanged assertEquals childNodeDeleted
test_case.modifiers: @Test public
test_case.parameters: ()
test_case.return: void
test_case.signature: void testSubtreeValidator()
focal_class.declarator: validator
focal_class.modifier: private final
focal_class.original_string: private final Validator validator;
focal_class.type: Validator
focal_class.var_name: validator
focal_class.declarator: head
focal_class.modifier: private final
focal_class.original_string: private final String head;
focal_class.type: String
focal_class.var_name: head
focal_class.declarator: tail
focal_class.modifier: private final
focal_class.original_string: private final List<String> tail;
focal_class.type: List<String>
focal_class.var_name: tail
focal_class.file: oak-store-spi/src/main/java/org/apache/jackrabbit/oak/spi/commit/SubtreeValidator.java
focal_class.identifier: SubtreeValidator
focal_class.class_method_signature: SubtreeValidator.SubtreeValidator(Validator validator, String... path)
focal_class.full_signature: public  SubtreeValidator(Validator validator, String... path)
focal_class.identifier: SubtreeValidator
focal_class.modifiers: public
focal_class.parameters: (Validator validator, String... path)
focal_class.signature:  SubtreeValidator(Validator validator, String... path)
focal_class.class_method_signature: SubtreeValidator.SubtreeValidator(Validator validator, List<String> path)
focal_class.full_signature: private  SubtreeValidator(Validator validator, List<String> path)
focal_class.identifier: SubtreeValidator
focal_class.modifiers: private
focal_class.parameters: (Validator validator, List<String> path)
focal_class.signature:  SubtreeValidator(Validator validator, List<String> path)
focal_class.class_method_signature: SubtreeValidator.childNodeAdded(String name, NodeState after)
focal_class.full_signature: @Override public Validator childNodeAdded(String name, NodeState after)
focal_class.identifier: childNodeAdded
focal_class.modifiers: @Override public
focal_class.parameters: (String name, NodeState after)
focal_class.return: Validator
focal_class.signature: Validator childNodeAdded(String name, NodeState after)
focal_class.class_method_signature: SubtreeValidator.childNodeChanged(
              String name, NodeState before, NodeState after)
focal_class.full_signature: @Override public Validator 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: Validator
focal_class.signature: Validator childNodeChanged(
              String name, NodeState before, NodeState after)
focal_class.class_method_signature: SubtreeValidator.childNodeDeleted(String name, NodeState before)
focal_class.full_signature: @Override public Validator childNodeDeleted(String name, NodeState before)
focal_class.identifier: childNodeDeleted
focal_class.modifiers: @Override public
focal_class.parameters: (String name, NodeState before)
focal_class.return: Validator
focal_class.signature: Validator childNodeDeleted(String name, NodeState before)
focal_class.class_method_signature: SubtreeValidator.descend(String name)
focal_class.full_signature: private Validator descend(String name)
focal_class.identifier: descend
focal_class.modifiers: private
focal_class.parameters: (String name)
focal_class.return: Validator
focal_class.signature: Validator descend(String name)
focal_class.superclass: extends DefaultValidator
focal_method.body: public SubtreeValidator(Validator validator, String... path) {
          this(validator, Arrays.asList(path));
      }
focal_method.class_method_signature: SubtreeValidator.SubtreeValidator(Validator validator, String... path)
focal_method.full_signature: public  SubtreeValidator(Validator validator, String... path)
focal_method.identifier: SubtreeValidator
focal_method.modifiers: public
focal_method.parameters: (Validator validator, String... path)
focal_method.signature:  SubtreeValidator(Validator validator, String... path)