docs: @Override
      protected void populateModel(final OperationContext context, final ModelNode operation, final Resource resource) throws OperationFailedException {
  
          super.populateModel(context, operation, resource);
  
          //  We need to store the address value in the 'name' instead of using
          // ReadResourceNameOperationStepHandler to avoid picky legacy controller
          // model comparison failures
          resource.getModel().get(NAME).set(context.getCurrentAddressValue());
  
          // Validate only a single socket binding group
          final PathAddress mine = context.getCurrentAddress();
          context.addStep(new OperationStepHandler() {
              @Override
              public void execute(OperationContext context, ModelNode operation) throws OperationFailedException {
  
                  // Do a non-recursive read, which will bring in placeholders for the children
                  final Resource root = context.readResourceFromRoot(context.getCurrentAddress().getParent(), false);
  
                  Set<ResourceEntry> children = root.getChildren(SOCKET_BINDING_GROUP);
                  if (children.size() > 1) {
                      for (ResourceEntry entry : children) {
                          if (!entry.getName().equals(mine.getLastElement().getValue())) {
                              throw ServerLogger.ROOT_LOGGER.cannotAddMoreThanOneSocketBindingGroupForServerOrHost(
                                      mine,
                                      PathAddress.pathAddress(PathElement.pathElement(SOCKET_BINDING_GROUP, entry.getName())));
                          }
                      }
                  }
              }
          }, OperationContext.Stage.MODEL);
      }