test_class.file: oak-search/src/test/java/org/apache/jackrabbit/oak/plugins/index/search/CompositePropertyUpdateCallbackTest.java
test_class.identifier: CompositePropertyUpdateCallbackTest
test_case.body: @Test
      public void propertyUpdated() {
          List<PropertyUpdateCallback> delegates = new LinkedList<>();
          delegates.add(mock(PropertyUpdateCallback.class));
          delegates.add(mock(PropertyUpdateCallback.class));
          CompositePropertyUpdateCallback compositePropertyUpdateCallback = new CompositePropertyUpdateCallback(delegates);
          String path = "/foo";
          String relativePath = "bar";
          PropertyDefinition pd = mock(PropertyDefinition.class);
          PropertyState before = mock(PropertyState.class);
          PropertyState after = mock(PropertyState.class);
          compositePropertyUpdateCallback.propertyUpdated(path, relativePath, pd, before, after);
      }
test_case.class_method_signature: CompositePropertyUpdateCallbackTest.propertyUpdated()
test_case.full_signature: @Test public void propertyUpdated()
test_case.identifier: propertyUpdated
test_case.invocations: add mock add mock mock mock mock propertyUpdated
test_case.modifiers: @Test public
test_case.parameters: ()
test_case.return: void
test_case.signature: void propertyUpdated()
focal_class.declarator: callbacks
focal_class.modifier: private final
focal_class.original_string: private final Collection<PropertyUpdateCallback> callbacks;
focal_class.type: Collection<PropertyUpdateCallback>
focal_class.var_name: callbacks
focal_class.file: oak-search/src/main/java/org/apache/jackrabbit/oak/plugins/index/search/CompositePropertyUpdateCallback.java
focal_class.identifier: CompositePropertyUpdateCallback
focal_class.interfaces: implements PropertyUpdateCallback
focal_class.class_method_signature: CompositePropertyUpdateCallback.CompositePropertyUpdateCallback(@NotNull Collection<PropertyUpdateCallback> callbacks)
focal_class.full_signature: public  CompositePropertyUpdateCallback(@NotNull Collection<PropertyUpdateCallback> callbacks)
focal_class.identifier: CompositePropertyUpdateCallback
focal_class.modifiers: public
focal_class.parameters: (@NotNull Collection<PropertyUpdateCallback> callbacks)
focal_class.signature:  CompositePropertyUpdateCallback(@NotNull Collection<PropertyUpdateCallback> callbacks)
focal_class.class_method_signature: CompositePropertyUpdateCallback.propertyUpdated(String nodePath, String propertyRelativePath, PropertyDefinition pd,
                                  @Nullable PropertyState before, @Nullable PropertyState after)
focal_class.full_signature: @Override public void propertyUpdated(String nodePath, String propertyRelativePath, PropertyDefinition pd,
                                  @Nullable PropertyState before, @Nullable PropertyState after)
focal_class.identifier: propertyUpdated
focal_class.modifiers: @Override public
focal_class.parameters: (String nodePath, String propertyRelativePath, PropertyDefinition pd,
                                  @Nullable PropertyState before, @Nullable PropertyState after)
focal_class.return: void
focal_class.signature: void propertyUpdated(String nodePath, String propertyRelativePath, PropertyDefinition pd,
                                  @Nullable PropertyState before, @Nullable PropertyState after)
focal_class.class_method_signature: CompositePropertyUpdateCallback.done()
focal_class.full_signature: @Override public void done()
focal_class.identifier: done
focal_class.modifiers: @Override public
focal_class.parameters: ()
focal_class.return: void
focal_class.signature: void done()
focal_method.body: @Override
      public void propertyUpdated(String nodePath, String propertyRelativePath, PropertyDefinition pd,
                                  @Nullable PropertyState before, @Nullable PropertyState after) {
          for (PropertyUpdateCallback callback : callbacks) {
              callback.propertyUpdated(nodePath, propertyRelativePath, pd, before, after);
          }
      }
focal_method.class_method_signature: CompositePropertyUpdateCallback.propertyUpdated(String nodePath, String propertyRelativePath, PropertyDefinition pd,
                                  @Nullable PropertyState before, @Nullable PropertyState after)
focal_method.full_signature: @Override public void propertyUpdated(String nodePath, String propertyRelativePath, PropertyDefinition pd,
                                  @Nullable PropertyState before, @Nullable PropertyState after)
focal_method.identifier: propertyUpdated
focal_method.invocations: propertyUpdated
focal_method.modifiers: @Override public
focal_method.parameters: (String nodePath, String propertyRelativePath, PropertyDefinition pd,
                                  @Nullable PropertyState before, @Nullable PropertyState after)
focal_method.return: void
focal_method.signature: void propertyUpdated(String nodePath, String propertyRelativePath, PropertyDefinition pd,
                                  @Nullable PropertyState before, @Nullable PropertyState after)