class MetadataCollection extends ArrayList<MetadataElement> {

  public static Map<String, String> asMap(Collection<MetadataElement> col) {
    Map<String, String> result = new HashMap<String, String>();
    if (col == null) {
      return result;
    }
    for (MetadataElement e : col) {
      result.put(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);

}