@Override
    public String calcLabel(ValueDescriptor descriptor, EvaluationContext evaluationContext, DescriptorLabelListener listener) {
      NodeRendererSettings nodeRendererSettings = NodeRendererSettings.getInstance();
      ToStringRenderer toStringRenderer = nodeRendererSettings.getToStringRenderer();
      CompletableFuture<Boolean> toStringApplicable = CompletableFuture.completedFuture(false);
      if (toStringRenderer.isEnabled()) {
        toStringApplicable = toStringRenderer.isApplicableAsync(descriptor.getType());
      }
      CompletableFuture<NodeRenderer> renderer = toStringApplicable
        .thenApply(applicable -> applicable ? toStringRenderer : nodeRendererSettings.getClassRenderer());
      return calcLabel(renderer, descriptor, evaluationContext, listener);
    }
@Override
    public String calcLabel(ValueDescriptor descriptor, EvaluationContext evaluationContext, DescriptorLabelListener listener)