class MetadataCollection extends ArrayList<MetadataElement> {

  public static Properties asProperties(Collection<MetadataElement> col) {
    Properties result = new Properties();
    if (col == null) return result;
    for (MetadataElement e : col) {
      result.setProperty(e.getKey(), e.getValue());
    }
    return result;
  }

  public  MetadataCollection();
  public  MetadataCollection(@NotNull Set<MetadataElement> elements);
  public  MetadataCollection(@NotNull MetadataCollection metadataCollection);
  public  MetadataCollection(@NotNull KeyValuePairBag elements);
  public  MetadataCollection(@NotNull Map<String, String> elements);
  public  MetadataCollection(@NotNull MetadataElement... elements);

}