code: @Override
      public int print(
          ChronoDisplay formattable,
          Appendable buffer,
          AttributeQuery attributes,
          Set<ElementPosition> positions, // optional
          boolean quickPath
      ) throws IOException {
  
          if (quickPath && this.optPrinter) {
              attributes = ChronoFormatter.class.cast(this.printer).getAttributes();
          }
  
          // special optimization avoiding double conversion from Moment to ZonalDateTime
          if (this.passThroughZDT && (formattable instanceof ZonalDateTime) && (positions == null)) {
              ChronoFormatter<?> cf = (ChronoFormatter<?>) this.printer;
              cf.print(formattable, buffer, attributes, false);
              return Integer.MAX_VALUE; // unknown number of printed characters
          }
  
          V value = formattable.get(this.element);
          StringBuilder collector = new StringBuilder();
  
          if ((positions != null) && (buffer instanceof CharSequence)) {
              int offset = ((CharSequence) buffer).length();
  
              if (this.printer instanceof ChronoFormatter) {
                  ChronoFormatter<?> cf = ChronoFormatter.class.cast(this.printer);
                  Set<ElementPosition> result = print(cf, value, collector, attributes);
                  Set<ElementPosition> set = new LinkedHashSet<>();
                  for (ElementPosition ep : result) {
                      set.add(
                          new ElementPosition(
                              ep.getElement(),
                              offset + ep.getStartIndex(),
                              offset + ep.getEndIndex()));
                  }
                  positions.addAll(set);
              } else {
                  this.printer.print(value, collector, attributes);
              }
  
              positions.add(
                  new ElementPosition(
                      this.element,
                      offset,
                      offset + collector.length()));
          } else {
              this.printer.print(value, collector, attributes);
          }
  
          buffer.append(collector);
          return collector.length();
  
      }
docs: ~ Methoden ----------------------------------------------------------