class DerivedAttributesMap extends ForwardingMap<String, String> {

  @Override
  public boolean containsKey(@Nullable Object key) {
    return (attributes.containsKey(key) || get(key) != null);
  }

  private  DerivedAttributesMap(Map<String, String> attributes);

}