code: @Override
      public boolean contains(ChronoElement<?> element) {
  
          if (element == null) {
              return false;
          }
  
          Object[] keys = this.keys;
  
          if (keys == null) {
              if (element == PlainDate.YEAR) {
                  return (this.ints[0] != Integer.MIN_VALUE);
              } else if (element == PlainDate.MONTH_AS_NUMBER) {
                  return (this.ints[1] != Integer.MIN_VALUE);
              } else if (element == PlainDate.DAY_OF_MONTH) {
                  return (this.ints[2] != Integer.MIN_VALUE);
              } else if (element == PlainTime.DIGITAL_HOUR_OF_DAY) {
                  return (this.len != Integer.MIN_VALUE);
              } else if (element == PlainTime.MINUTE_OF_HOUR) {
                  return (this.mask != Integer.MIN_VALUE);
              } else if (element == PlainTime.SECOND_OF_MINUTE) {
                  return (this.threshold != Integer.MIN_VALUE);
              } else if (element == PlainTime.NANO_OF_SECOND) {
                  return (this.count != Integer.MIN_VALUE);
              } else {
                  Map<ChronoElement<?>, Object> m = this.map;
                  return ((m != null) && m.containsKey(element));
              }
          }
  
          Object current;
          int pos;
  
          if (((current = keys[pos = (mix(element.hashCode()) & this.mask)]) == null)) {
              return false;
          }
  
          if (element.equals(current)) {
              return true;
          }
  
          while (true) {
              if (((current = keys[pos = ((pos + 1) & this.mask)]) == null)) {
                  return false;
              }
              if (element.equals(current)) {
                  return true;
              }
          }
  
      }
docs: ~ Methoden ----------------------------------------------------------